Skip to content

Instantly share code, notes, and snippets.

@gitpusha
Created July 24, 2020 14:48
Show Gist options
  • Save gitpusha/949102b20ca8d52850ac7fef61af251e to your computer and use it in GitHub Desktop.
Save gitpusha/949102b20ca8d52850ac7fef61af251e to your computer and use it in GitHub Desktop.
const stringA =
"0x6080604052600436106100865760003560e01c8063a6ba9bc611610059578063a6ba9bc614610118578063a7f3a2731461012b578063bdd85b961461013e578063ca0090ac1461013e578063eb9e71261461016057610086565b806342929d441461008b57806350c4adfd146100ad5780637b9b9348146100d6578063919afeb7146100f8575b600080fd5b34801561009757600080fd5b506100ab6100a6366004610abb565b610180565b005b6100c06100bb366004610b2f565b6102ff565b6040516100cd9190610e2a565b60405180910390f35b3480156100e257600080fd5b506100eb61036e565b6040516100cd9190610da6565b34801561010457600080fd5b506100c0610113366004610abb565b610392565b6100c0610126366004610aef565b6103ec565b6100ab610139366004610b2f565b61044a565b34801561014a57600080fd5b50610153610491565b6040516100cd9190610e21565b34801561016c57600080fd5b506100c061017b366004610bb0565b6104ac565b6040518060400160405280601581526020017420b1ba34b7b72a3930b739b332b91730b1ba34b7b760591b815250306001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415816040516020016101f59190610cc0565b6040516020818303038152906040529061022b5760405162461bcd60e51b81526004016102229190610e2a565b60405180910390fd5b506001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146102e05760408051808201909152601681527520b1ba34b7b72a3930b739b332b91730b1ba34b7b71d60511b6020820152849061029d906001600160a01b038316908590879063ffffffff6106c916565b7fa3962413469e3e186dc9c3d23adcc804ccbf804e93c1cba74ae5bba055368dbc308686866040516102d29493929190610dba565b60405180910390a1506102f9565b6102f96001600160a01b0383168463ffffffff61072016565b50505050565b606060008061031084860186610a4f565b9092509050600061032560646044898b610ed1565b8101906103329190610a2c565b905061033f838383610180565b8282604051602001610352929190610de5565b6040516020818303038152906040529350505050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606342929d4460e01b8484846040516024016103b193929190610dfe565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290509392505050565b6060600080806103ff8560048189610ed1565b81019061040c9190610a7a565b92509250925061041d838383610180565b8282604051602001610430929190610de5565b604051602081830303815290604052935050505092915050565b60008061045983850185610a4f565b9092509050600061046e60646044888a610ed1565b81019061047b9190610a2c565b9050610488838383610180565b50505050505050565b600060405161049f90610d8a565b6040518091039020905090565b60606104b886866107c1565b6001600160e01b0319166310a4a75160e21b146104ef57604051806060016040528060278152602001610fcd6027913990506106be565b60018460038111156104fd57fe5b14806105145750600384600381111561051257fe5b145b15610539576040518060600160405280603d8152602001610f68603d913990506106be565b60008061054a60446004898b610ed1565b8101906105579190610a4f565b90925090506001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156105ba5780896001600160a01b03163110156105b557604051806060016040528060288152602001610fa560289139925050506106be565b61069e565b6040516370a0823160e01b81526001600160a01b038316906370a08231906105e6908c90600401610da6565b60206040518083038186803b1580156105fe57600080fd5b505afa92505050801561062e575060408051601f3d908101601f1916820190925261062b91810190610b98565b60015b610671576040518060400160405280601e81526020017f416374696f6e5472616e736665723a204572726f7242616c616e63654f660000815250925050506106be565b8181101561069c576040518060600160405280602a8152602001610f3e602a913993505050506106be565b505b604051806040016040528060028152602001614f4b60f01b815250925050505b979650505050505050565b6102f98463a9059cbb60e01b85856040516024016106e8929190610de5565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915283610853565b804710156107405760405162461bcd60e51b815260040161022290610e9a565b6000826001600160a01b03168260405161075990610da3565b60006040518083038185875af1925050503d8060008114610796576040519150601f19603f3d011682016040523d82523d6000602084013e61079b565b606091505b50509050806107bc5760405162461bcd60e51b815260040161022290610e3d565b505050565b60006018838360038181106107d257fe5b909101356001600160f81b03191690911c90506010848460028181106107f457fe5b909101356001600160f81b03191690911c905060088585600181811061081657fe5b909101356001600160f81b03191690911c9050858560008161083457fe5b9050013560f81c60f81b6001600160f81b031916171717905092915050565b610865836001600160a01b03166109a9565b816040516020016108769190610d49565b604051602081830303815290604052906108a35760405162461bcd60e51b81526004016102229190610e2a565b5060006060846001600160a01b0316846040516108c09190610c63565b6000604051808303816000865af19150503d80600081146108fd576040519150601f19603f3d011682016040523d82523d6000602084013e610902565b606091505b509150915081836040516020016109199190610c7f565b604051602081830303815290604052906109465760405162461bcd60e51b81526004016102229190610e2a565b508051156109a257808060200190518101906109629190610acf565b836040516020016109739190610cf5565b604051602081830303815290604052906109a05760405162461bcd60e51b81526004016102229190610e2a565b505b5050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906109dd5750808214155b949350505050565b60008083601f8401126109f6578182fd5b50813567ffffffffffffffff811115610a0d578182fd5b602083019150836020828501011115610a2557600080fd5b9250929050565b600060208284031215610a3d578081fd5b8135610a4881610f25565b9392505050565b60008060408385031215610a61578081fd5b8235610a6c81610f25565b946020939093013593505050565b600080600060608486031215610a8e578081fd5b8335610a9981610f25565b9250602084013591506040840135610ab081610f25565b809150509250925092565b600080600060608486031215610a8e578283fd5b600060208284031215610ae0578081fd5b81518015158114610a48578182fd5b60008060208385031215610b01578182fd5b823567ffffffffffffffff811115610b17578283fd5b610b23858286016109e5565b90969095509350505050565b60008060008060408587031215610b44578081fd5b843567ffffffffffffffff80821115610b5b578283fd5b610b67888389016109e5565b90965094506020870135915080821115610b7f578283fd5b50610b8c878288016109e5565b95989497509550505050565b600060208284031215610ba9578081fd5b5051919050565b600080600080600080600060c0888a031215610bca578283fd5b873596506020880135610bdc81610f25565b9550604088013567ffffffffffffffff811115610bf7578384fd5b610c038a828b016109e5565b909650945050606088013560048110610c1a578384fd5b969995985093969295946080840135945060a09093013592915050565b60008151808452610c4f816020860160208601610ef9565b601f01601f19169290920160200192915050565b60008251610c75818460208701610ef9565b9190910192915050565b60008251610c91818460208701610ef9565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564920191825250602001919050565b60008251610cd2818460208701610ef9565b703a64656c656761746563616c6c4f6e6c7960781b920191825250601101919050565b60008251610d07818460208701610ef9565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e920191825250691bdd081cdd58d8d9595960b21b6020820152602a01919050565b60008251610d5b818460208701610ef9565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400920191825250601f01919050565b6c2a27a5a2a7162aa4a72a191a9b60991b8152600d0190565b90565b6001600160a01b0391909116815260200190565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0393841681526020810192909252909116604082015260600190565b90815260200190565b600060208252610a486020830184610c37565b6020808252603a908201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260408201527f6563697069656e74206d61792068617665207265766572746564000000000000606082015260800190565b6020808252601d908201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604082015260600190565b60008085851115610ee0578182fd5b83861115610eec578182fd5b5050820193919092039150565b60005b83811015610f14578181015183820152602001610efc565b838111156102f95750506000910152565b6001600160a01b0381168114610f3a57600080fd5b5056fe416374696f6e5472616e736665723a204e6f744f6b5573657250726f7879455243323042616c616e6365416374696f6e5472616e736665723a207465726d734f6b20636865636b20696e76616c69646174656420627920696e626f756e642044617461466c6f77416374696f6e5472616e736665723a204e6f744f6b5573657250726f787945544842616c616e6365416374696f6e5472616e736665723a20696e76616c696420616374696f6e2073656c6563746f72a2646970667358221220717be3053aab667edf5cc62c8c19e0ba05213892be1882358446acbf9c95bdc864736f6c634300060a0033";
const stringE =
"0x6080604052600436106100865760003560e01c8063a6ba9bc611610059578063a6ba9bc614610118578063a7f3a2731461012b578063bdd85b961461013e578063ca0090ac1461013e578063eb9e71261461016057610086565b806342929d441461008b57806350c4adfd146100ad5780637b9b9348146100d6578063919afeb7146100f8575b600080fd5b34801561009757600080fd5b506100ab6100a6366004610abb565b610180565b005b6100c06100bb366004610b2f565b6102ff565b6040516100cd9190610e2a565b60405180910390f35b3480156100e257600080fd5b506100eb61036e565b6040516100cd9190610da6565b34801561010457600080fd5b506100c0610113366004610abb565b610392565b6100c0610126366004610aef565b6103ec565b6100ab610139366004610b2f565b61044a565b34801561014a57600080fd5b50610153610491565b6040516100cd9190610e21565b34801561016c57600080fd5b506100c061017b366004610bb0565b6104ac565b6040518060400160405280601581526020017420b1ba34b7b72a3930b739b332b91730b1ba34b7b760591b815250306001600160a01b03167f000000000000000000000000bbcc89979bf7ee4efa6cc40805ab4576630ce5a96001600160a01b03161415816040516020016101f59190610cc0565b6040516020818303038152906040529061022b5760405162461bcd60e51b81526004016102229190610e2a565b60405180910390fd5b506001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146102e05760408051808201909152601681527520b1ba34b7b72a3930b739b332b91730b1ba34b7b71d60511b6020820152849061029d906001600160a01b038316908590879063ffffffff6106c916565b7fa3962413469e3e186dc9c3d23adcc804ccbf804e93c1cba74ae5bba055368dbc308686866040516102d29493929190610dba565b60405180910390a1506102f9565b6102f96001600160a01b0383168463ffffffff61072016565b50505050565b606060008061031084860186610a4f565b9092509050600061032560646044898b610ed1565b8101906103329190610a2c565b905061033f838383610180565b8282604051602001610352929190610de5565b6040516020818303038152906040529350505050949350505050565b7f000000000000000000000000bbcc89979bf7ee4efa6cc40805ab4576630ce5a981565b60606342929d4460e01b8484846040516024016103b193929190610dfe565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290509392505050565b6060600080806103ff8560048189610ed1565b81019061040c9190610a7a565b92509250925061041d838383610180565b8282604051602001610430929190610de5565b604051602081830303815290604052935050505092915050565b60008061045983850185610a4f565b9092509050600061046e60646044888a610ed1565b81019061047b9190610a2c565b9050610488838383610180565b50505050505050565b600060405161049f90610d8a565b6040518091039020905090565b60606104b886866107c1565b6001600160e01b0319166310a4a75160e21b146104ef57604051806060016040528060278152602001610fcd6027913990506106be565b60018460038111156104fd57fe5b14806105145750600384600381111561051257fe5b145b15610539576040518060600160405280603d8152602001610f68603d913990506106be565b60008061054a60446004898b610ed1565b8101906105579190610a4f565b90925090506001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156105ba5780896001600160a01b03163110156105b557604051806060016040528060288152602001610fa560289139925050506106be565b61069e565b6040516370a0823160e01b81526001600160a01b038316906370a08231906105e6908c90600401610da6565b60206040518083038186803b1580156105fe57600080fd5b505afa92505050801561062e575060408051601f3d908101601f1916820190925261062b91810190610b98565b60015b610671576040518060400160405280601e81526020017f416374696f6e5472616e736665723a204572726f7242616c616e63654f660000815250925050506106be565b8181101561069c576040518060600160405280602a8152602001610f3e602a913993505050506106be565b505b604051806040016040528060028152602001614f4b60f01b815250925050505b979650505050505050565b6102f98463a9059cbb60e01b85856040516024016106e8929190610de5565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915283610853565b804710156107405760405162461bcd60e51b815260040161022290610e9a565b6000826001600160a01b03168260405161075990610da3565b60006040518083038185875af1925050503d8060008114610796576040519150601f19603f3d011682016040523d82523d6000602084013e61079b565b606091505b50509050806107bc5760405162461bcd60e51b815260040161022290610e3d565b505050565b60006018838360038181106107d257fe5b909101356001600160f81b03191690911c90506010848460028181106107f457fe5b909101356001600160f81b03191690911c905060088585600181811061081657fe5b909101356001600160f81b03191690911c9050858560008161083457fe5b9050013560f81c60f81b6001600160f81b031916171717905092915050565b610865836001600160a01b03166109a9565b816040516020016108769190610d49565b604051602081830303815290604052906108a35760405162461bcd60e51b81526004016102229190610e2a565b5060006060846001600160a01b0316846040516108c09190610c63565b6000604051808303816000865af19150503d80600081146108fd576040519150601f19603f3d011682016040523d82523d6000602084013e610902565b606091505b509150915081836040516020016109199190610c7f565b604051602081830303815290604052906109465760405162461bcd60e51b81526004016102229190610e2a565b508051156109a257808060200190518101906109629190610acf565b836040516020016109739190610cf5565b604051602081830303815290604052906109a05760405162461bcd60e51b81526004016102229190610e2a565b505b5050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906109dd5750808214155b949350505050565b60008083601f8401126109f6578182fd5b50813567ffffffffffffffff811115610a0d578182fd5b602083019150836020828501011115610a2557600080fd5b9250929050565b600060208284031215610a3d578081fd5b8135610a4881610f25565b9392505050565b60008060408385031215610a61578081fd5b8235610a6c81610f25565b946020939093013593505050565b600080600060608486031215610a8e578081fd5b8335610a9981610f25565b9250602084013591506040840135610ab081610f25565b809150509250925092565b600080600060608486031215610a8e578283fd5b600060208284031215610ae0578081fd5b81518015158114610a48578182fd5b60008060208385031215610b01578182fd5b823567ffffffffffffffff811115610b17578283fd5b610b23858286016109e5565b90969095509350505050565b60008060008060408587031215610b44578081fd5b843567ffffffffffffffff80821115610b5b578283fd5b610b67888389016109e5565b90965094506020870135915080821115610b7f578283fd5b50610b8c878288016109e5565b95989497509550505050565b600060208284031215610ba9578081fd5b5051919050565b600080600080600080600060c0888a031215610bca578283fd5b873596506020880135610bdc81610f25565b9550604088013567ffffffffffffffff811115610bf7578384fd5b610c038a828b016109e5565b909650945050606088013560048110610c1a578384fd5b969995985093969295946080840135945060a09093013592915050565b60008151808452610c4f816020860160208601610ef9565b601f01601f19169290920160200192915050565b60008251610c75818460208701610ef9565b9190910192915050565b60008251610c91818460208701610ef9565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564920191825250602001919050565b60008251610cd2818460208701610ef9565b703a64656c656761746563616c6c4f6e6c7960781b920191825250601101919050565b60008251610d07818460208701610ef9565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e920191825250691bdd081cdd58d8d9595960b21b6020820152602a01919050565b60008251610d5b818460208701610ef9565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400920191825250601f01919050565b6c2a27a5a2a7162aa4a72a191a9b60991b8152600d0190565b90565b6001600160a01b0391909116815260200190565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0393841681526020810192909252909116604082015260600190565b90815260200190565b600060208252610a486020830184610c37565b6020808252603a908201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260408201527f6563697069656e74206d61792068617665207265766572746564000000000000606082015260800190565b6020808252601d908201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604082015260600190565b60008085851115610ee0578182fd5b83861115610eec578182fd5b5050820193919092039150565b60005b83811015610f14578181015183820152602001610efc565b838111156102f95750506000910152565b6001600160a01b0381168114610f3a57600080fd5b5056fe416374696f6e5472616e736665723a204e6f744f6b5573657250726f7879455243323042616c616e6365416374696f6e5472616e736665723a207465726d734f6b20636865636b20696e76616c69646174656420627920696e626f756e642044617461466c6f77416374696f6e5472616e736665723a204e6f744f6b5573657250726f787945544842616c616e6365416374696f6e5472616e736665723a20696e76616c696420616374696f6e2073656c6563746f72a2646970667358221220717be3053aab667edf5cc62c8c19e0ba05213892be1882358446acbf9c95bdc864736f6c634300060a0033";
let i = 0;
for (const char of stringA) {
if (char == stringE[i]) {
i++;
continue;
} else {
console.log(`Mismatch at index ${i}`);
console.log(`${char} vs. ${stringE[i]}`);
i++;
//console.log("stringA start: " + stringA.slice(i) + "\n\n");
//console.log("stringE start: " + stringE.slice(i));
//break;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment