remove byte unpad

pull/7/head
yann300 8 years ago
parent e6f86fac08
commit 7a2324ce7a
  1. 3
      src/solidity/types/FixedByteArray.js
  2. 108
      test/solidity/contracts/byteStorage.js
  3. 126
      test/solidity/storageDecoder.js

@ -1,6 +1,5 @@
'use strict'
var util = require('./util')
var utileth = require('ethereumjs-util')
function FixedByteArray (storageBytes) {
this.storageSlots = 1
@ -10,7 +9,7 @@ function FixedByteArray (storageBytes) {
FixedByteArray.prototype.decodeFromStorage = function (location, storageContent) {
var value = util.extractHexByte(location, storageContent, this.storageBytes)
return '0x' + utileth.unpad(value).toUpperCase()
return '0x' + value.toUpperCase()
}
module.exports = FixedByteArray

@ -8,40 +8,40 @@ module.exports = {
bool b1 = false;
address a1 = 0xfe350f199f244ac9a79038d254400b632a633225;
bool b2 = true;
bytes dynb1 = 'dynamicbytes';
bytes dynb1 = "dynamicbytes";
byte stab = 0x1;
bytes1 stab1 = 0x12;
bytes2 stab2 = 0x1579;
bytes3 stab3 = 0x359356;
bytes4 stab4 = 0x2375;
bytes5 stab5 = 0x2357645;
bytes6 stab6 = 0x324435;
bytes7 stab7 = 0x324324;
bytes8 stab8 = 0x324554645765;
bytes9 stab9 = 0x3434543;
bytes10 stab10 = 0x4543543654657;
bytes11 stab11 = 0x54354654;
bytes12 stab12 = 0x3;
bytes13 stab13 = 0x3243242345435;
bytes14 stab14 = 0x32454354354353;
bytes15 stab15 = 0x32454434435;
bytes16 stab16 = 0x3245435444;
bytes17 stab17 = 0x32454343243243245;
bytes18 stab18 = 0x324534325435435;
bytes19 stab19 = 0x324543435435435;
bytes20 stab20 = 0x32454543543AB35;
bytes21 stab21 = 0x32454432423435;
bytes22 stab22 = 0x324543AEF5;
bytes23 stab23 = 0x3245435FFF;
bytes24 stab24 = 0x3245435F;
bytes25 stab25 = 0x3245435F;
bytes26 stab26 = 0x3245435F;
bytes27 stab27 = 0x3245FFFFFFF;
bytes28 stab28 = 0x3241235;
bytes29 stab29 = 0x325213213;
bytes30 stab30 = 0x3245435232423;
bytes31 stab31 = 0x3245435123;
bytes32 stab32 = 0x324324423432543543AB;
bytes1 stab1 = hex"12";
bytes2 stab2 = hex"1579";
bytes3 stab3 = hex"359356";
bytes4 stab4 = hex"2375";
bytes5 stab5 = hex"02357645";
bytes6 stab6 = hex"324435";
bytes7 stab7 = hex"004324";
bytes8 stab8 = hex"324554645765";
bytes9 stab9 = hex"03434543";
bytes10 stab10 = hex"04543543654657";
bytes11 stab11 = hex"54354654";
bytes12 stab12 = hex"03";
bytes13 stab13 = hex"03243242345435";
bytes14 stab14 = hex"32454354354353";
bytes15 stab15 = hex"032454434435";
bytes16 stab16 = hex"3245435444";
bytes17 stab17 = hex"032454343243243245";
bytes18 stab18 = hex"0324534325435435";
bytes19 stab19 = hex"0324543435435435";
bytes20 stab20 = hex"032454543543AB35";
bytes21 stab21 = hex"32454432423435";
bytes22 stab22 = hex"324543AEF5";
bytes23 stab23 = hex"3245435FFF";
bytes24 stab24 = hex"3245435F";
bytes25 stab25 = hex"3245435F";
bytes26 stab26 = hex"3245435F";
bytes27 stab27 = hex"03245FFFFFFF";
bytes28 stab28 = hex"03241235";
bytes29 stab29 = hex"0325213213";
bytes30 stab30 = hex"03245435232423";
bytes31 stab31 = hex"3245435123";
bytes32 stab32 = hex"324324423432543543AB";
enum1 enumDec = enum1.e240;
string str1 = 'short';
string str2 = 'long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long';
@ -50,27 +50,27 @@ module.exports = {
storage: {
'0x0000000000000000000000000000000000000000000000000000000000000000': '0x0000000000000000000001fe350f199f244ac9a79038d254400b632a63322500',
'0x0000000000000000000000000000000000000000000000000000000000000001': '0x64796e616d696362797465730000000000000000000000000000000000000018',
'0x0000000000000000000000000000000000000000000000000000000000000002': '0x0000000000000032432400000032443500023576450000237535935615791201',
'0x0000000000000000000000000000000000000000000000000000000000000003': '0x0000000000000000045435436546570000000000034345430000324554645765',
'0x0000000000000000000000000000000000000000000000000000000000000004': '0x0000000000000000000000000000000000000000030000000000000054354654',
'0x0000000000000000000000000000000000000000000000000000000000000005': '0x0000000000000000000000003245435435435300000000000003243242345435',
'0x0000000000000000000000000000000000000000000000000000000000000006': '0x0000000000000000000000003245435444000000000000000000032454434435',
'0x0000000000000000000000000000000000000000000000000000000000000007': '0x0000000000000000000000000000000000000000000000032454343243243245',
'0x0000000000000000000000000000000000000000000000000000000000000008': '0x0000000000000000000000000000000000000000000000000324534325435435',
'0x0000000000000000000000000000000000000000000000000000000000000009': '0x0000000000000000000000000000000000000000000000000324543435435435',
'0x000000000000000000000000000000000000000000000000000000000000000a': '0x000000000000000000000000000000000000000000000000032454543543ab35',
'0x000000000000000000000000000000000000000000000000000000000000000b': '0x0000000000000000000000000000000000000000000000000032454432423435',
'0x000000000000000000000000000000000000000000000000000000000000000c': '0x000000000000000000000000000000000000000000000000000000324543aef5',
'0x000000000000000000000000000000000000000000000000000000000000000d': '0x0000000000000000000000000000000000000000000000000000003245435fff',
'0x000000000000000000000000000000000000000000000000000000000000000e': '0x000000000000000000000000000000000000000000000000000000003245435f',
'0x000000000000000000000000000000000000000000000000000000000000000f': '0x000000000000000000000000000000000000000000000000000000003245435f',
'0x0000000000000000000000000000000000000000000000000000000000000010': '0x000000000000000000000000000000000000000000000000000000003245435f',
'0x0000000000000000000000000000000000000000000000000000000000000011': '0x000000000000000000000000000000000000000000000000000003245fffffff',
'0x0000000000000000000000000000000000000000000000000000000000000012': '0x0000000000000000000000000000000000000000000000000000000003241235',
'0x0000000000000000000000000000000000000000000000000000000000000013': '0x0000000000000000000000000000000000000000000000000000000325213213',
'0x0000000000000000000000000000000000000000000000000000000000000014': '0x0000000000000000000000000000000000000000000000000003245435232423',
'0x0000000000000000000000000000000000000000000000000000000000000015': '0x0000000000000000000000000000000000000000000000000000003245435123',
'0x0000000000000000000000000000000000000000000000000000000000000016': '0x00000000000000000000000000000000000000000000324324423432543543ab',
'0x0000000000000000000000000000000000000000000000000000000000000002': '0x0000000043240000000032443500000002357645002375000035935615791201',
'0x0000000000000000000000000000000000000000000000000000000000000003': '0x0000000000045435436546570000000343454300000000003245546457650000',
'0x0000000000000000000000000000000000000000000000000000000000000004': '0x0000000000000000000300000000000000000000005435465400000000000000',
'0x0000000000000000000000000000000000000000000000000000000000000005': '0x0000000000324543543543530000000000000003243242345435000000000000',
'0x0000000000000000000000000000000000000000000000000000000000000006': '0x0032454354440000000000000000000000032454434435000000000000000000',
'0x0000000000000000000000000000000000000000000000000000000000000007': '0x0000000000000000000000000000000324543432432432450000000000000000',
'0x0000000000000000000000000000000000000000000000000000000000000008': '0x0000000000000000000000000000032453432543543500000000000000000000',
'0x0000000000000000000000000000000000000000000000000000000000000009': '0x0000000000000000000000000003245434354354350000000000000000000000',
'0x000000000000000000000000000000000000000000000000000000000000000a': '0x000000000000000000000000032454543543ab35000000000000000000000000',
'0x000000000000000000000000000000000000000000000000000000000000000b': '0x0000000000000000000000324544324234350000000000000000000000000000',
'0x000000000000000000000000000000000000000000000000000000000000000c': '0x00000000000000000000324543aef50000000000000000000000000000000000',
'0x000000000000000000000000000000000000000000000000000000000000000d': '0x0000000000000000003245435fff000000000000000000000000000000000000',
'0x000000000000000000000000000000000000000000000000000000000000000e': '0x00000000000000003245435f0000000000000000000000000000000000000000',
'0x000000000000000000000000000000000000000000000000000000000000000f': '0x000000000000003245435f000000000000000000000000000000000000000000',
'0x0000000000000000000000000000000000000000000000000000000000000010': '0x0000000000003245435f00000000000000000000000000000000000000000000',
'0x0000000000000000000000000000000000000000000000000000000000000011': '0x000000000003245fffffff000000000000000000000000000000000000000000',
'0x0000000000000000000000000000000000000000000000000000000000000012': '0x0000000003241235000000000000000000000000000000000000000000000000',
'0x0000000000000000000000000000000000000000000000000000000000000013': '0x0000000325213213000000000000000000000000000000000000000000000000',
'0x0000000000000000000000000000000000000000000000000000000000000014': '0x0000032454352324230000000000000000000000000000000000000000000000',
'0x0000000000000000000000000000000000000000000000000000000000000015': '0x0032454351230000000000000000000000000000000000000000000000000000',
'0x0000000000000000000000000000000000000000000000000000000000000016': '0x324324423432543543ab00000000000000000000000000000000000000000000',
'0x0000000000000000000000000000000000000000000000000000000000000017': '0x00000000000000000000000000000000000000000000000000000000000000f0',
'0x0000000000000000000000000000000000000000000000000000000000000018': '0x73686f727400000000000000000000000000000000000000000000000000000a',
'0x0000000000000000000000000000000000000000000000000000000000000019': '0x000000000000000000000000000000000000000000000000000000000000023d',

@ -61,39 +61,39 @@ function testByteStorage (st) {
st.equal(decoded['b2'], true)
st.equal(decoded['dynb1'].value, '0x64796e616d69636279746573')
st.equal(decoded['dynb1'].length, '0xc')
st.equal(decoded['stab'], '0x1')
st.equal(decoded['stab'], '0x01')
st.equal(decoded['stab1'], '0x12')
st.equal(decoded['stab2'], '0x1579')
st.equal(decoded['stab3'], '0x359356')
st.equal(decoded['stab4'], '0x2375')
st.equal(decoded['stab5'], '0x2357645')
st.equal(decoded['stab6'], '0x324435')
st.equal(decoded['stab7'], '0x324324')
st.equal(decoded['stab8'], '0x324554645765')
st.equal(decoded['stab9'], '0x3434543')
st.equal(decoded['stab10'], '0x4543543654657')
st.equal(decoded['stab11'], '0x54354654')
st.equal(decoded['stab12'], '0x3')
st.equal(decoded['stab13'], '0x3243242345435')
st.equal(decoded['stab14'], '0x32454354354353')
st.equal(decoded['stab15'], '0x32454434435')
st.equal(decoded['stab16'], '0x3245435444')
st.equal(decoded['stab17'], '0x32454343243243245')
st.equal(decoded['stab18'], '0x324534325435435')
st.equal(decoded['stab19'], '0x324543435435435')
st.equal(decoded['stab20'], '0x32454543543AB35')
st.equal(decoded['stab21'], '0x32454432423435')
st.equal(decoded['stab22'], '0x324543AEF5')
st.equal(decoded['stab23'], '0x3245435FFF')
st.equal(decoded['stab24'], '0x3245435F')
st.equal(decoded['stab25'], '0x3245435F')
st.equal(decoded['stab26'], '0x3245435F')
st.equal(decoded['stab27'], '0x3245FFFFFFF')
st.equal(decoded['stab28'], '0x3241235')
st.equal(decoded['stab29'], '0x325213213')
st.equal(decoded['stab30'], '0x3245435232423')
st.equal(decoded['stab31'], '0x3245435123')
st.equal(decoded['stab32'], '0x324324423432543543AB')
st.equal(decoded['stab4'], '0x23750000')
st.equal(decoded['stab5'], '0x0235764500')
st.equal(decoded['stab6'], '0x324435000000')
st.equal(decoded['stab7'], '0x00432400000000')
st.equal(decoded['stab8'], '0x3245546457650000')
st.equal(decoded['stab9'], '0x034345430000000000')
st.equal(decoded['stab10'], '0x04543543654657000000')
st.equal(decoded['stab11'], '0x5435465400000000000000')
st.equal(decoded['stab12'], '0x030000000000000000000000')
st.equal(decoded['stab13'], '0x03243242345435000000000000')
st.equal(decoded['stab14'], '0x3245435435435300000000000000')
st.equal(decoded['stab15'], '0x032454434435000000000000000000')
st.equal(decoded['stab16'], '0x32454354440000000000000000000000')
st.equal(decoded['stab17'], '0x0324543432432432450000000000000000')
st.equal(decoded['stab18'], '0x032453432543543500000000000000000000')
st.equal(decoded['stab19'], '0x03245434354354350000000000000000000000')
st.equal(decoded['stab20'], '0x032454543543AB35000000000000000000000000')
st.equal(decoded['stab21'], '0x324544324234350000000000000000000000000000')
st.equal(decoded['stab22'], '0x324543AEF50000000000000000000000000000000000')
st.equal(decoded['stab23'], '0x3245435FFF000000000000000000000000000000000000')
st.equal(decoded['stab24'], '0x3245435F0000000000000000000000000000000000000000')
st.equal(decoded['stab25'], '0x3245435F000000000000000000000000000000000000000000')
st.equal(decoded['stab26'], '0x3245435F00000000000000000000000000000000000000000000')
st.equal(decoded['stab27'], '0x03245FFFFFFF000000000000000000000000000000000000000000')
st.equal(decoded['stab28'], '0x03241235000000000000000000000000000000000000000000000000')
st.equal(decoded['stab29'], '0x0325213213000000000000000000000000000000000000000000000000')
st.equal(decoded['stab30'], '0x032454352324230000000000000000000000000000000000000000000000')
st.equal(decoded['stab31'], '0x32454351230000000000000000000000000000000000000000000000000000')
st.equal(decoded['stab32'], '0x324324423432543543AB00000000000000000000000000000000000000000000')
st.equal(decoded['enumDec'], 'e240')
st.equal(decoded['str1'].value, 'short')
st.equal(decoded['str2'].value, 'long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long')
@ -105,39 +105,39 @@ function testByteStorage (st) {
st.equal(decoded['b2'], false)
st.equal(decoded['dynb1'].value, '0x')
st.equal(decoded['dynb1'].length, '0x0')
st.equal(decoded['stab'], '0x')
st.equal(decoded['stab1'], '0x')
st.equal(decoded['stab2'], '0x')
st.equal(decoded['stab3'], '0x')
st.equal(decoded['stab4'], '0x')
st.equal(decoded['stab5'], '0x')
st.equal(decoded['stab6'], '0x')
st.equal(decoded['stab7'], '0x')
st.equal(decoded['stab8'], '0x')
st.equal(decoded['stab9'], '0x')
st.equal(decoded['stab10'], '0x')
st.equal(decoded['stab11'], '0x')
st.equal(decoded['stab12'], '0x')
st.equal(decoded['stab13'], '0x')
st.equal(decoded['stab14'], '0x')
st.equal(decoded['stab15'], '0x')
st.equal(decoded['stab16'], '0x')
st.equal(decoded['stab17'], '0x')
st.equal(decoded['stab18'], '0x')
st.equal(decoded['stab19'], '0x')
st.equal(decoded['stab20'], '0x')
st.equal(decoded['stab21'], '0x')
st.equal(decoded['stab22'], '0x')
st.equal(decoded['stab23'], '0x')
st.equal(decoded['stab24'], '0x')
st.equal(decoded['stab25'], '0x')
st.equal(decoded['stab26'], '0x')
st.equal(decoded['stab27'], '0x')
st.equal(decoded['stab28'], '0x')
st.equal(decoded['stab29'], '0x')
st.equal(decoded['stab30'], '0x')
st.equal(decoded['stab31'], '0x')
st.equal(decoded['stab32'], '0x')
st.equal(decoded['stab'], '0x00')
st.equal(decoded['stab1'], '0x00')
st.equal(decoded['stab2'], '0x0000')
st.equal(decoded['stab3'], '0x000000')
st.equal(decoded['stab4'], '0x00000000')
st.equal(decoded['stab5'], '0x0000000000')
st.equal(decoded['stab6'], '0x000000000000')
st.equal(decoded['stab7'], '0x00000000000000')
st.equal(decoded['stab8'], '0x0000000000000000')
st.equal(decoded['stab9'], '0x000000000000000000')
st.equal(decoded['stab10'], '0x00000000000000000000')
st.equal(decoded['stab11'], '0x0000000000000000000000')
st.equal(decoded['stab12'], '0x000000000000000000000000')
st.equal(decoded['stab13'], '0x00000000000000000000000000')
st.equal(decoded['stab14'], '0x0000000000000000000000000000')
st.equal(decoded['stab15'], '0x000000000000000000000000000000')
st.equal(decoded['stab16'], '0x00000000000000000000000000000000')
st.equal(decoded['stab17'], '0x0000000000000000000000000000000000')
st.equal(decoded['stab18'], '0x000000000000000000000000000000000000')
st.equal(decoded['stab19'], '0x00000000000000000000000000000000000000')
st.equal(decoded['stab20'], '0x0000000000000000000000000000000000000000')
st.equal(decoded['stab21'], '0x000000000000000000000000000000000000000000')
st.equal(decoded['stab22'], '0x00000000000000000000000000000000000000000000')
st.equal(decoded['stab23'], '0x0000000000000000000000000000000000000000000000')
st.equal(decoded['stab24'], '0x000000000000000000000000000000000000000000000000')
st.equal(decoded['stab25'], '0x00000000000000000000000000000000000000000000000000')
st.equal(decoded['stab26'], '0x0000000000000000000000000000000000000000000000000000')
st.equal(decoded['stab27'], '0x000000000000000000000000000000000000000000000000000000')
st.equal(decoded['stab28'], '0x00000000000000000000000000000000000000000000000000000000')
st.equal(decoded['stab29'], '0x0000000000000000000000000000000000000000000000000000000000')
st.equal(decoded['stab30'], '0x000000000000000000000000000000000000000000000000000000000000')
st.equal(decoded['stab31'], '0x00000000000000000000000000000000000000000000000000000000000000')
st.equal(decoded['stab32'], '0x0000000000000000000000000000000000000000000000000000000000000000')
st.equal(decoded['enumDec'], 'e0')
st.equal(decoded['str1'].length, '0x0')
st.equal(decoded['str2'].length, '0x0')

Loading…
Cancel
Save