diff --git a/README.md b/README.md index 5c188f48..e5968fbb 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ of the protocol stack. Write across chains
Examples: + ERC 20 Token Bridge
Write across chains
diff --git a/application/appcontracts/erc20/src/main/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/CrosschainERC20.java b/application/appcontracts/erc20/src/main/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/CrosschainERC20.java index 0fe4c25b..5fabf0b1 100644 --- a/application/appcontracts/erc20/src/main/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/CrosschainERC20.java +++ b/application/appcontracts/erc20/src/main/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/CrosschainERC20.java @@ -41,7 +41,7 @@ */ @SuppressWarnings("rawtypes") public class CrosschainERC20 extends Contract { - public static final String BINARY = "60806040523480156200001157600080fd5b5060405162002e1038038062002e1083398101604081905262000034916200023a565b600080546001600160a01b031916339081178255604051859285928592839282917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b03929092169190911790558251620000b0906007906020860190620000dd565b508151620000c6906008906020850190620000dd565b5050600580555050600a600655506200031a915050565b828054620000eb90620002c7565b90600052602060002090601f0160209004810192826200010f57600085556200015a565b82601f106200012a57805160ff19168380011785556200015a565b828001600101855582156200015a579182015b828111156200015a5782518255916020019190600101906200013d565b50620001689291506200016c565b5090565b5b808211156200016857600081556001016200016d565b600082601f8301126200019557600080fd5b81516001600160401b0380821115620001b257620001b262000304565b604051601f8301601f19908116603f01168101908282118183101715620001dd57620001dd62000304565b81604052838152602092508683858801011115620001fa57600080fd5b600091505b838210156200021e5785820183015181830184015290820190620001ff565b83821115620002305760008385830101525b9695505050505050565b6000806000606084860312156200025057600080fd5b83516001600160401b03808211156200026857600080fd5b620002768783880162000183565b945060208601519150808211156200028d57600080fd5b506200029c8682870162000183565b604086015190935090506001600160a01b0381168114620002bc57600080fd5b809150509250925092565b600181811c90821680620002dc57607f821691505b60208210811415620002fe57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b612ae6806200032a6000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063715018a61161011a578063a9059cbb116100ad578063dd62ed3e1161007c578063dd62ed3e14610418578063f2fde38b1461042b578063f50249fc1461043e578063f6aacfb114610446578063fcdb37101461046857600080fd5b8063a9059cbb146103c1578063bd1b1afd146103d4578063be42152f146103dc578063d71aaa42146103ef57600080fd5b806395d89b41116100e957806395d89b411461038057806397879e0f1461038857806399eb5d4c1461039b578063a457c2d7146103ae57600080fd5b8063715018a6146103375780637785eebd1461033f5780637b0919b2146103485780638da5cb5b1461035b57600080fd5b80633aca7144116101925780634f6e9e73116101615780634f6e9e73146102f657806359ad3fe014610309578063691448c21461031157806370a082311461032457600080fd5b80633aca7144146102b457806340490cc2146102bd578063409b223e146102d057806342b9e74f146102e357600080fd5b8063313ce567116101ce578063313ce5671461026a57806332a7ef501461027957806335c01fc31461028e57806339509351146102a157600080fd5b806306fdde0314610200578063095ea7b31461021e57806318160ddd1461024157806323b872dd14610257575b600080fd5b61020861047b565b60405161021591906128b7565b60405180910390f35b61023161022c366004612747565b61050d565b6040519015158152602001610215565b6102496105ef565b604051908152602001610215565b61023161026536600461270b565b610664565b60405160128152602001610215565b61028c610287366004612747565b6106b7565b005b61028c61029c366004612809565b61079e565b6102316102af366004612747565b6107e2565b61024960055481565b6102496102cb3660046126b6565b6107ef565b6102496102de3660046126d8565b610872565b61028c6102f1366004612845565b61094a565b61028c610304366004612771565b610974565b6102496109d9565b61024961031f3660046126d8565b610a48565b6102496103323660046126b6565b610b16565b61028c610b91565b61024960065481565b61028c610356366004612809565b610c05565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610215565b610208610c41565b6102496103963660046126b6565b610c50565b61028c6103a93660046127d2565b610ccb565b6102316103bc366004612747565b610d7f565b6102316103cf366004612747565b610e01565b610249610e0e565b61028c6103ea366004612822565b610e7d565b6103686103fd366004612809565b6009602052600090815260409020546001600160a01b031681565b6102496104263660046126d8565b610fa7565b61028c6104393660046126b6565b611075565b61024961115f565b610231610454366004612809565b600090815260036020526040902054151590565b6102496104763660046126d8565b6111ce565b60606007805461048a90612a26565b80601f01602080910402602001604051908101604052809291908181526020018280546104b690612a26565b80156105035780601f106104d857610100808354040283529160200191610503565b820191906000526020600020905b8154815290600101906020018083116104e657829003601f168201915b5050505050905090565b60015460408051635a61dbab60e11b815290516000926001600160a01b03169163b4c3b756916004808301926020929190829003018186803b15801561055257600080fd5b505afa158015610566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058a91906127b5565b6105db5760405162461bcd60e51b815260206004820152601e60248201527f4d7573742062652073696e676c6520626c6f636b636861696e2063616c6c000060448201526064015b60405180910390fd5b6105e633848461129c565b50600192915050565b600080805b600654811015610627576106096004826114e5565b61061390836129f7565b91508061061f81612a5b565b9150506105f4565b5060005b60065481101561065e576106406005826114e5565b61064a9083612a0f565b91508061065681612a5b565b91505061062b565b50919050565b6000610671848484611535565b33600061067e8683610a48565b9050838110156106a05760405162461bcd60e51b81526004016105d29061290c565b6106ab868386611661565b50600195945050505050565b6001546001600160a01b031633146107115760405162461bcd60e51b815260206004820152601f60248201527f4d7573742062652070617274206f662063726f7373636861696e2063616c6c0060448201526064016105d2565b60008061071c6117b8565b60008281526009602052604090205491945092508291506001600160a01b0380831691161461078d5760405162461bcd60e51b815260206004820152601b60248201527f536f75726365206973206e6f7420636f7272656374204552433230000000000060448201526064016105d2565b61079785856117f0565b5050505050565b6000546001600160a01b031633146107c85760405162461bcd60e51b81526004016105d290612954565b80600660008282546107da91906129f7565b909155505050565b60006105e633848461189f565b60006001600160a01b03821681805b60055481101561083257610814600084836119f6565b61081e90836129f7565b91508061082a81612a5b565b9150506107fe565b5060005b60055481101561086a5761084c60018483611a48565b6108569083612a0f565b91508061086281612a5b565b915050610836565b509392505050565b60006001600160a01b03831661089a5760405162461bcd60e51b81526004016105d290612989565b6001600160a01b0382166108c05760405162461bcd60e51b81526004016105d2906128ca565b6001600160a01b038084169083166000805b600554811015610907576108e96002858584611a85565b6108f390836129f7565b9150806108ff81612a5b565b9150506108d2565b5060005b600554811015610940576109226003858584611ad3565b61092c9083612a0f565b91508061093881612a5b565b91505061090b565b5095945050505050565b60015433906001600160a01b03168114156109625750325b61096e84828585611b27565b50505050565b60015433906001600160a01b031681141561098c5750325b61099884868585611b27565b60006109a48683610a48565b9050828110156109c65760405162461bcd60e51b81526004016105d29061290c565b6109d1868385611661565b505050505050565b600080805b600654811015610a11576109f36004826114e5565b6109fd90836129f7565b915080610a0981612a5b565b9150506109de565b5060005b60065481101561065e57610a2a600582611cae565b610a349083612a0f565b915080610a4081612a5b565b915050610a15565b60006001600160a01b038316610a705760405162461bcd60e51b81526004016105d290612989565b6001600160a01b038216610a965760405162461bcd60e51b81526004016105d2906128ca565b6001600160a01b038084169083166000805b600554811015610add57610abf6002858584611ad3565b610ac990836129f7565b915080610ad581612a5b565b915050610aa8565b5060005b60055481101561094057610af86003858584611a85565b610b029083612a0f565b915080610b0e81612a5b565b915050610ae1565b60006001600160a01b03821681805b600554811015610b5957610b3b600084836119f6565b610b4590836129f7565b915080610b5181612a5b565b915050610b25565b5060005b60055481101561086a57610b73600184836119f6565b610b7d9083612a0f565b915080610b8981612a5b565b915050610b5d565b6000546001600160a01b03163314610bbb5760405162461bcd60e51b81526004016105d290612954565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c2f5760405162461bcd60e51b81526004016105d290612954565b80600560008282546107da91906129f7565b60606008805461048a90612a26565b60006001600160a01b03821681805b600554811015610c9357610c7560008483611a48565b610c7f90836129f7565b915080610c8b81612a5b565b915050610c5f565b5060005b60055481101561086a57610cad60018483611a48565b610cb79083612a0f565b915080610cc381612a5b565b915050610c97565b60005b600082815260046020526040902054811015610d63576000828152600460205260408120805483908110610d0457610d04612a8c565b906000526020600020015490508315610d4257600081815260036020526040902054610d3290600190612a0f565b6000828152600260205260409020555b60009081526003602052604081205580610d5b81612a5b565b915050610cce565b506000818152600460205260408120610d7b91612660565b5050565b600080610d8c3385610a48565b905082811015610dec5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105d2565b610df7338585611661565b5060019392505050565b60006105e6338484611535565b600080805b600654811015610e4657610e28600482611cae565b610e3290836129f7565b915080610e3e81612a5b565b915050610e13565b5060005b60065481101561065e57610e5f600582611cae565b610e699083612a0f565b915080610e7581612a5b565b915050610e4a565b6000546001600160a01b03163314610ea75760405162461bcd60e51b81526004016105d290612954565b600160009054906101000a90046001600160a01b03166001600160a01b031663b4c3b7566040518163ffffffff1660e01b815260040160206040518083038186803b158015610ef557600080fd5b505afa158015610f09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2d91906127b5565b610f795760405162461bcd60e51b815260206004820152601e60248201527f4d7573742062652073696e676c6520626c6f636b636861696e2063616c6c000060448201526064016105d2565b60009182526009602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b60006001600160a01b038316610fcf5760405162461bcd60e51b81526004016105d290612989565b6001600160a01b038216610ff55760405162461bcd60e51b81526004016105d2906128ca565b6001600160a01b038084169083166000805b60055481101561103c5761101e6002858584611ad3565b61102890836129f7565b91508061103481612a5b565b915050611007565b5060005b600554811015610940576110576003858584611ad3565b6110619083612a0f565b91508061106d81612a5b565b915050611040565b6000546001600160a01b0316331461109f5760405162461bcd60e51b81526004016105d290612954565b6001600160a01b0381166111045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105d2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080805b60065481101561119757611179600482611cae565b61118390836129f7565b91508061118f81612a5b565b915050611164565b5060005b60065481101561065e576111b06005826114e5565b6111ba9083612a0f565b9150806111c681612a5b565b91505061119b565b60006001600160a01b0383166111f65760405162461bcd60e51b81526004016105d290612989565b6001600160a01b03821661121c5760405162461bcd60e51b81526004016105d2906128ca565b6001600160a01b038084169083166000805b600554811015611263576112456002858584611a85565b61124f90836129f7565b91508061125b81612a5b565b91505061122e565b5060005b6005548110156109405761127e6003858584611a85565b6112889083612a0f565b91508061129481612a5b565b915050611267565b6001600160a01b0383166112c25760405162461bcd60e51b81526004016105d290612989565b6001600160a01b0382166112e85760405162461bcd60e51b81526004016105d2906128ca565b6001600160a01b038084169083166000805b600554811015611389576113116002858584611cf1565b1561135e5760405162461bcd60e51b815260206004820152601e60248201527f496e63726561736520616c6c6f77616e636520736c6f74206c6f636b6564000060448201526064016105d2565b61136b6002858584611d47565b61137590836129f7565b91508061138181612a5b565b9150506112fa565b5060005b60055481101561141c576113a46003858584611cf1565b156113f15760405162461bcd60e51b815260206004820152601e60248201527f446563726561736520616c6c6f77616e636520736c6f74206c6f636b6564000060448201526064016105d2565b6113fe6003858584611d47565b6114089083612a0f565b91508061141481612a5b565b91505061138d565b5083811015611460576000611435600285856000611d47565b905061145a6002858560008661144b8b886129f7565b6114559190612a0f565b611d8b565b50611490565b83811115611490576000611478600385856000611d47565b905061148e6003858560008961144b88886129f7565b505b846001600160a01b0316866001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925866040516114d591815260200190565b60405180910390a3505050505050565b6000808383604051602001611504929190918252602082015260400190565b60408051601f198184030181529181528151602092830120600081815260029093529120549091505b949350505050565b6001600160a01b0383166115995760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105d2565b6001600160a01b0382166115fb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105d2565b6116058382611dcd565b61160f8282611f65565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161165491815260200190565b60405180910390a3505050565b6001600160a01b0383166116875760405162461bcd60e51b81526004016105d290612989565b6001600160a01b0382166116ad5760405162461bcd60e51b81526004016105d2906128ca565b6001600160a01b038084169083166000805b600554811015611719576116d66003858584611cf1565b611707576001915060006116ed6003868685611d47565b905061170160038686856114558b876129f7565b50611719565b8061171181612a5b565b9150506116bf565b50806117735760405162461bcd60e51b815260206004820152602360248201527f416c6c20646563726561736520616c6c6f77616e636520736c6f747320696e2060448201526275736560e81b60648201526084016105d2565b846001600160a01b0316866001600160a01b03167fca00ac413b8c2013d4efc4a5ea887318bf432aa5d2a4c8ec87ad5660c28ef5d8866040516114d591815260200190565b600080808036806020605f19820184376000519550602060408203600037600051945060208082036000376000519350505050909192565b6001600160a01b0382166118465760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105d2565b61184f81612089565b6118598282611f65565b6040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b6001600160a01b0383166118c55760405162461bcd60e51b81526004016105d290612989565b6001600160a01b0382166118eb5760405162461bcd60e51b81526004016105d2906128ca565b6001600160a01b038084169083166000805b600554811015611957576119146002858584611cf1565b6119455760019150600061192b6002868685611d47565b905061193f60028686856114558b876129f7565b50611957565b8061194f81612a5b565b9150506118fd565b50806119b15760405162461bcd60e51b815260206004820152602360248201527f416c6c20696e63726561736520616c6c6f77616e636520736c6f747320696e2060448201526275736560e81b60648201526084016105d2565b846001600160a01b0316866001600160a01b03167fae0962182a7df59bce5a3518382b8a4a909b354b6ba0f4114215654490399b4b866040516114d591815260200190565b604080516020810185905290810183905260608101829052600090819060800160408051601f198184030181529181528151602092830120600081815260029093529120549091505b95945050505050565b60408051602080820186905281830185905260608083018590528351808403909101815260809092019092528051910120600090611a3f81612143565b6040805160208082018790528183018690526060820185905260808083018590528351808403909101815260a09092019092528051910120600090611ac981612143565b9695505050505050565b60408051602081018690529081018490526060810183905260808101829052600090819060a00160408051601f19818403018152918152815160209283012060008181526002909352912054909150611ac9565b6001546001600160a01b03163314611b815760405162461bcd60e51b815260206004820152601f60248201527f4d7573742062652070617274206f662063726f7373636861696e2063616c6c0060448201526064016105d2565b611b8b838261218b565b6000848152600960205260409020546001600160a01b031680611c035760405162461bcd60e51b815260206004820152602a60248201527f4e6f20455243203230207265676973746572656420666f722072656d6f746520604482015269313637b1b5b1b430b4b760b11b60648201526084016105d2565b600154604080516001600160a01b038681166024830152604480830187905283518084039091018152606490920183526020820180516001600160e01b031663032a7ef560e41b17905291516392b2c33560e01b815291909216916392b2c33591611c759189918691906004016129cd565b600060405180830381600087803b158015611c8f57600080fd5b505af1158015611ca3573d6000803e3d6000fd5b505050505050505050565b6000808383604051602001611ccd929190918252602082015260400190565b60405160208183030381529060405280519060200120905061152d8160001c612143565b60408051602081018690529081018490526060810183905260808101829052600090819060a00160408051601f198184030181529181528151602092830120600081815260039093529120549091501515611ac9565b6040805160208082018790528183018690526060820185905260808083018590528351808403909101815260a09092019092528051910120600090611ac98161223c565b6040805160208082018890528183018790526060820186905260808083018690528351808403909101815260a090920190925280519101206109d18183612298565b6001600160a01b038216611e2d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a2046726f6d206163636f756e743a207a65726f206164647265736044820152607360f81b60648201526084016105d2565b6000611e38836107ef565b905081811015611ea35760405162461bcd60e51b815260206004820152603060248201527f45524332303a20616d6f756e742065786365656473206d696e2062616c616e6360448201526f329037b310232927a69039b2b73232b960811b60648201526084016105d2565b6001600160a01b0383166000805b600554811015611f0d57611ec760018483612421565b611efb57600191506000611edd60018584612470565b9050611ef560018584611ef08a866129f7565b6124ad565b50611f0d565b80611f0581612a5b565b915050611eb1565b50806107975760405162461bcd60e51b815260206004820152602160248201527f416c6c2064656372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b60648201526084016105d2565b6001600160a01b038216611fcc5760405162461bcd60e51b815260206004820152602860248201527f45524332303a20726563697069656e74206163636f756e74206973207a65726f604482015267206164647265737360c01b60648201526084016105d2565b6001600160a01b0382166000805b60055481101561203157611ff060008483612421565b61201f5760019150600061200660008584612470565b905061201960008584611ef089866129f7565b50612031565b8061202981612a5b565b915050611fda565b508061096e5760405162461bcd60e51b815260206004820152602160248201527f416c6c20696e6372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b60648201526084016105d2565b6000805b6006548110156120e6576120a26004826124e8565b6120d4576001915060006120b7600483612536565b90506120ce6004836120c987856129f7565b612579565b506120e6565b806120de81612a5b565b91505061208d565b5080610d7b5760405162461bcd60e51b815260206004820152602660248201527f416c6c20696e63726561736520746f74616c20737570706c7920736c6f747320604482015265696e2075736560d01b60648201526084016105d2565b600081815260036020526040812054156121785760008281526003602052604090205461217290600190612a0f565b92915050565b5060009081526002602052604090205490565b6001600160a01b0382166121eb5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105d2565b6121f4816125ab565b6121fe8282611dcd565b6040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611893565b600081815260036020526040812054156121785760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b65640060448201526064016105d2565b600082815260036020526040902054156122eb5760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b60448201526064016105d2565b60015460408051637bf37a0960e01b815290516000926001600160a01b031691637bf37a09916004808301926020929190829003018186803b15801561233057600080fd5b505afa158015612344573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236891906127f0565b905080612382575060009182526002602052604090912055565b600154604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b1580156123c757600080fd5b505af11580156123db573d6000803e3d6000fd5b50505060008281526004602090815260408220805460018181018355918452919092200185905561240d9150836129f7565b600084815260036020526040902055505050565b604080516020810185905290810183905260608101829052600090819060800160408051601f198184030181529181528151602092830120600081815260039093529120549091501515611a3f565b60408051602080820186905281830185905260608083018590528351808403909101815260809092019092528051910120600090611a3f8161223c565b604080516020808201879052818301869052606080830186905283518084039091018152608090920190925280519101206107978183612298565b6000808383604051602001612507929190918252602082015260400190565b60408051601f19818403018152918152815160209283012060008181526003909352912054909150151561152d565b6000808383604051602001612555929190918252602082015260400190565b60405160208183030381529060405280519060200120905061152d8160001c61223c565b6040805160208082018690528183018590528251808303840181526060909201909252805191012061096e8183612298565b6000805b600654811015612603576125c46005826124e8565b6125f1576001915060006125d9600583612536565b90506125eb6005836120c987856129f7565b50612603565b806125fb81612a5b565b9150506125af565b5080610d7b5760405162461bcd60e51b815260206004820152602660248201527f416c6c20646563726561736520746f74616c20737570706c7920736c6f747320604482015265696e2075736560d01b60648201526084016105d2565b508054600082559060005260206000209081019061267e9190612681565b50565b5b808211156126965760008155600101612682565b5090565b80356001600160a01b03811681146126b157600080fd5b919050565b6000602082840312156126c857600080fd5b6126d18261269a565b9392505050565b600080604083850312156126eb57600080fd5b6126f48361269a565b91506127026020840161269a565b90509250929050565b60008060006060848603121561272057600080fd5b6127298461269a565b92506127376020850161269a565b9150604084013590509250925092565b6000806040838503121561275a57600080fd5b6127638361269a565b946020939093013593505050565b6000806000806080858703121561278757600080fd5b6127908561269a565b9350602085013592506127a56040860161269a565b9396929550929360600135925050565b6000602082840312156127c757600080fd5b81516126d181612aa2565b600080604083850312156127e557600080fd5b823561276381612aa2565b60006020828403121561280257600080fd5b5051919050565b60006020828403121561281b57600080fd5b5035919050565b6000806040838503121561283557600080fd5b823591506127026020840161269a565b60008060006060848603121561285a57600080fd5b833592506127376020850161269a565b6000815180845260005b8181101561289057602081850181015186830182015201612874565b818111156128a2576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006126d1602083018461286a565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b8381526001600160a01b0383166020820152606060408201819052600090611a3f9083018461286a565b60008219821115612a0a57612a0a612a76565b500190565b600082821015612a2157612a21612a76565b500390565b600181811c90821680612a3a57607f821691505b6020821081141561065e57634e487b7160e01b600052602260045260246000fd5b6000600019821415612a6f57612a6f612a76565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b801515811461267e57600080fdfea26469706673582212202b01986d0873e9d2fadcae70e14274b0416074ad4f52354c060b38a7bbcaabae64736f6c63430008050033"; + public static final String BINARY = "60806040523480156200001157600080fd5b5060405162002e1038038062002e10833981016040819052620000349162000250565b600080546001600160a01b031916339081178255604051859285928592839282917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b03929092169190911790558251620000b0906007906020860190620000dd565b508151620000c6906008906020850190620000dd565b5050600580555050600a600655506200031a915050565b828054620000eb90620002dd565b90600052602060002090601f0160209004810192826200010f57600085556200015a565b82601f106200012a57805160ff19168380011785556200015a565b828001600101855582156200015a579182015b828111156200015a5782518255916020019190600101906200013d565b50620001689291506200016c565b5090565b5b808211156200016857600081556001016200016d565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001ab57600080fd5b81516001600160401b0380821115620001c857620001c862000183565b604051601f8301601f19908116603f01168101908282118183101715620001f357620001f362000183565b816040528381526020925086838588010111156200021057600080fd5b600091505b8382101562000234578582018301518183018401529082019062000215565b83821115620002465760008385830101525b9695505050505050565b6000806000606084860312156200026657600080fd5b83516001600160401b03808211156200027e57600080fd5b6200028c8783880162000199565b94506020860151915080821115620002a357600080fd5b50620002b28682870162000199565b604086015190935090506001600160a01b0381168114620002d257600080fd5b809150509250925092565b600181811c90821680620002f257607f821691505b602082108114156200031457634e487b7160e01b600052602260045260246000fd5b50919050565b612ae6806200032a6000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063715018a61161011a578063a9059cbb116100ad578063dd62ed3e1161007c578063dd62ed3e14610418578063f2fde38b1461042b578063f50249fc1461043e578063f6aacfb114610446578063fcdb37101461046857600080fd5b8063a9059cbb146103c1578063bd1b1afd146103d4578063be42152f146103dc578063d71aaa42146103ef57600080fd5b806395d89b41116100e957806395d89b411461038057806397879e0f1461038857806399eb5d4c1461039b578063a457c2d7146103ae57600080fd5b8063715018a6146103375780637785eebd1461033f5780637b0919b2146103485780638da5cb5b1461035b57600080fd5b80633aca7144116101925780634f6e9e73116101615780634f6e9e73146102f657806359ad3fe014610309578063691448c21461031157806370a082311461032457600080fd5b80633aca7144146102b457806340490cc2146102bd578063409b223e146102d057806342b9e74f146102e357600080fd5b8063313ce567116101ce578063313ce5671461026a57806332a7ef501461027957806335c01fc31461028e57806339509351146102a157600080fd5b806306fdde0314610200578063095ea7b31461021e57806318160ddd1461024157806323b872dd14610257575b600080fd5b61020861047b565b60405161021591906126e7565b60405180910390f35b61023161022c36600461271d565b61050d565b6040519015158152602001610215565b6102496105ef565b604051908152602001610215565b610231610265366004612747565b610664565b60405160128152602001610215565b61028c61028736600461271d565b6106b7565b005b61028c61029c366004612783565b61079e565b6102316102af36600461271d565b6107e2565b61024960055481565b6102496102cb36600461279c565b6107ef565b6102496102de3660046127b7565b610872565b61028c6102f13660046127ea565b61094a565b61028c61030436600461280f565b610974565b6102496109d9565b61024961031f3660046127b7565b610a48565b61024961033236600461279c565b610b16565b61028c610b91565b61024960065481565b61028c610356366004612783565b610c05565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610215565b610208610c41565b61024961039636600461279c565b610c50565b61028c6103a9366004612861565b610ccb565b6102316103bc36600461271d565b610d7f565b6102316103cf36600461271d565b610e01565b610249610e0e565b61028c6103ea36600461287f565b610e7d565b6103686103fd366004612783565b6009602052600090815260409020546001600160a01b031681565b6102496104263660046127b7565b610fa7565b61028c61043936600461279c565b611075565b61024961115f565b610231610454366004612783565b600090815260036020526040902054151590565b6102496104763660046127b7565b6111ce565b60606007805461048a906128a2565b80601f01602080910402602001604051908101604052809291908181526020018280546104b6906128a2565b80156105035780601f106104d857610100808354040283529160200191610503565b820191906000526020600020905b8154815290600101906020018083116104e657829003601f168201915b5050505050905090565b60015460408051635a61dbab60e11b815290516000926001600160a01b03169163b4c3b756916004808301926020929190829003018186803b15801561055257600080fd5b505afa158015610566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058a91906128d7565b6105db5760405162461bcd60e51b815260206004820152601e60248201527f4d7573742062652073696e676c6520626c6f636b636861696e2063616c6c000060448201526064015b60405180910390fd5b6105e633848461129c565b50600192915050565b600080805b600654811015610627576106096004826114e5565b610613908361290a565b91508061061f81612922565b9150506105f4565b5060005b60065481101561065e576106406005826114e5565b61064a908361293d565b91508061065681612922565b91505061062b565b50919050565b6000610671848484611535565b33600061067e8683610a48565b9050838110156106a05760405162461bcd60e51b81526004016105d290612954565b6106ab868386611661565b50600195945050505050565b6001546001600160a01b031633146107115760405162461bcd60e51b815260206004820152601f60248201527f4d7573742062652070617274206f662063726f7373636861696e2063616c6c0060448201526064016105d2565b60008061071c6117b8565b60008281526009602052604090205491945092508291506001600160a01b0380831691161461078d5760405162461bcd60e51b815260206004820152601b60248201527f536f75726365206973206e6f7420636f7272656374204552433230000000000060448201526064016105d2565b61079785856117f0565b5050505050565b6000546001600160a01b031633146107c85760405162461bcd60e51b81526004016105d29061299c565b80600660008282546107da919061290a565b909155505050565b60006105e633848461189f565b60006001600160a01b03821681805b60055481101561083257610814600084836119f6565b61081e908361290a565b91508061082a81612922565b9150506107fe565b5060005b60055481101561086a5761084c60018483611a48565b610856908361293d565b91508061086281612922565b915050610836565b509392505050565b60006001600160a01b03831661089a5760405162461bcd60e51b81526004016105d2906129d1565b6001600160a01b0382166108c05760405162461bcd60e51b81526004016105d290612a15565b6001600160a01b038084169083166000805b600554811015610907576108e96002858584611a85565b6108f3908361290a565b9150806108ff81612922565b9150506108d2565b5060005b600554811015610940576109226003858584611ad3565b61092c908361293d565b91508061093881612922565b91505061090b565b5095945050505050565b60015433906001600160a01b03168114156109625750325b61096e84828585611b27565b50505050565b60015433906001600160a01b031681141561098c5750325b61099884868585611b27565b60006109a48683610a48565b9050828110156109c65760405162461bcd60e51b81526004016105d290612954565b6109d1868385611661565b505050505050565b600080805b600654811015610a11576109f36004826114e5565b6109fd908361290a565b915080610a0981612922565b9150506109de565b5060005b60065481101561065e57610a2a600582611cae565b610a34908361293d565b915080610a4081612922565b915050610a15565b60006001600160a01b038316610a705760405162461bcd60e51b81526004016105d2906129d1565b6001600160a01b038216610a965760405162461bcd60e51b81526004016105d290612a15565b6001600160a01b038084169083166000805b600554811015610add57610abf6002858584611ad3565b610ac9908361290a565b915080610ad581612922565b915050610aa8565b5060005b60055481101561094057610af86003858584611a85565b610b02908361293d565b915080610b0e81612922565b915050610ae1565b60006001600160a01b03821681805b600554811015610b5957610b3b600084836119f6565b610b45908361290a565b915080610b5181612922565b915050610b25565b5060005b60055481101561086a57610b73600184836119f6565b610b7d908361293d565b915080610b8981612922565b915050610b5d565b6000546001600160a01b03163314610bbb5760405162461bcd60e51b81526004016105d29061299c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c2f5760405162461bcd60e51b81526004016105d29061299c565b80600560008282546107da919061290a565b60606008805461048a906128a2565b60006001600160a01b03821681805b600554811015610c9357610c7560008483611a48565b610c7f908361290a565b915080610c8b81612922565b915050610c5f565b5060005b60055481101561086a57610cad60018483611a48565b610cb7908361293d565b915080610cc381612922565b915050610c97565b60005b600082815260046020526040902054811015610d63576000828152600460205260408120805483908110610d0457610d04612a57565b906000526020600020015490508315610d4257600081815260036020526040902054610d329060019061293d565b6000828152600260205260409020555b60009081526003602052604081205580610d5b81612922565b915050610cce565b506000818152600460205260408120610d7b91612660565b5050565b600080610d8c3385610a48565b905082811015610dec5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105d2565b610df7338585611661565b5060019392505050565b60006105e6338484611535565b600080805b600654811015610e4657610e28600482611cae565b610e32908361290a565b915080610e3e81612922565b915050610e13565b5060005b60065481101561065e57610e5f600582611cae565b610e69908361293d565b915080610e7581612922565b915050610e4a565b6000546001600160a01b03163314610ea75760405162461bcd60e51b81526004016105d29061299c565b600160009054906101000a90046001600160a01b03166001600160a01b031663b4c3b7566040518163ffffffff1660e01b815260040160206040518083038186803b158015610ef557600080fd5b505afa158015610f09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2d91906128d7565b610f795760405162461bcd60e51b815260206004820152601e60248201527f4d7573742062652073696e676c6520626c6f636b636861696e2063616c6c000060448201526064016105d2565b60009182526009602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b60006001600160a01b038316610fcf5760405162461bcd60e51b81526004016105d2906129d1565b6001600160a01b038216610ff55760405162461bcd60e51b81526004016105d290612a15565b6001600160a01b038084169083166000805b60055481101561103c5761101e6002858584611ad3565b611028908361290a565b91508061103481612922565b915050611007565b5060005b600554811015610940576110576003858584611ad3565b611061908361293d565b91508061106d81612922565b915050611040565b6000546001600160a01b0316331461109f5760405162461bcd60e51b81526004016105d29061299c565b6001600160a01b0381166111045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105d2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080805b60065481101561119757611179600482611cae565b611183908361290a565b91508061118f81612922565b915050611164565b5060005b60065481101561065e576111b06005826114e5565b6111ba908361293d565b9150806111c681612922565b91505061119b565b60006001600160a01b0383166111f65760405162461bcd60e51b81526004016105d2906129d1565b6001600160a01b03821661121c5760405162461bcd60e51b81526004016105d290612a15565b6001600160a01b038084169083166000805b600554811015611263576112456002858584611a85565b61124f908361290a565b91508061125b81612922565b91505061122e565b5060005b6005548110156109405761127e6003858584611a85565b611288908361293d565b91508061129481612922565b915050611267565b6001600160a01b0383166112c25760405162461bcd60e51b81526004016105d2906129d1565b6001600160a01b0382166112e85760405162461bcd60e51b81526004016105d290612a15565b6001600160a01b038084169083166000805b600554811015611389576113116002858584611cf1565b1561135e5760405162461bcd60e51b815260206004820152601e60248201527f496e63726561736520616c6c6f77616e636520736c6f74206c6f636b6564000060448201526064016105d2565b61136b6002858584611d47565b611375908361290a565b91508061138181612922565b9150506112fa565b5060005b60055481101561141c576113a46003858584611cf1565b156113f15760405162461bcd60e51b815260206004820152601e60248201527f446563726561736520616c6c6f77616e636520736c6f74206c6f636b6564000060448201526064016105d2565b6113fe6003858584611d47565b611408908361293d565b91508061141481612922565b91505061138d565b5083811015611460576000611435600285856000611d47565b905061145a6002858560008661144b8b8861290a565b611455919061293d565b611d8b565b50611490565b83811115611490576000611478600385856000611d47565b905061148e6003858560008961144b888861290a565b505b846001600160a01b0316866001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925866040516114d591815260200190565b60405180910390a3505050505050565b6000808383604051602001611504929190918252602082015260400190565b60408051601f198184030181529181528151602092830120600081815260029093529120549091505b949350505050565b6001600160a01b0383166115995760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105d2565b6001600160a01b0382166115fb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105d2565b6116058382611dcd565b61160f8282611f65565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161165491815260200190565b60405180910390a3505050565b6001600160a01b0383166116875760405162461bcd60e51b81526004016105d2906129d1565b6001600160a01b0382166116ad5760405162461bcd60e51b81526004016105d290612a15565b6001600160a01b038084169083166000805b600554811015611719576116d66003858584611cf1565b611707576001915060006116ed6003868685611d47565b905061170160038686856114558b8761290a565b50611719565b8061171181612922565b9150506116bf565b50806117735760405162461bcd60e51b815260206004820152602360248201527f416c6c20646563726561736520616c6c6f77616e636520736c6f747320696e2060448201526275736560e81b60648201526084016105d2565b846001600160a01b0316866001600160a01b03167fca00ac413b8c2013d4efc4a5ea887318bf432aa5d2a4c8ec87ad5660c28ef5d8866040516114d591815260200190565b600080808036806020605f19820184376000519550602060408203600037600051945060208082036000376000519350505050909192565b6001600160a01b0382166118465760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105d2565b61184f81612089565b6118598282611f65565b6040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b6001600160a01b0383166118c55760405162461bcd60e51b81526004016105d2906129d1565b6001600160a01b0382166118eb5760405162461bcd60e51b81526004016105d290612a15565b6001600160a01b038084169083166000805b600554811015611957576119146002858584611cf1565b6119455760019150600061192b6002868685611d47565b905061193f60028686856114558b8761290a565b50611957565b8061194f81612922565b9150506118fd565b50806119b15760405162461bcd60e51b815260206004820152602360248201527f416c6c20696e63726561736520616c6c6f77616e636520736c6f747320696e2060448201526275736560e81b60648201526084016105d2565b846001600160a01b0316866001600160a01b03167fae0962182a7df59bce5a3518382b8a4a909b354b6ba0f4114215654490399b4b866040516114d591815260200190565b604080516020810185905290810183905260608101829052600090819060800160408051601f198184030181529181528151602092830120600081815260029093529120549091505b95945050505050565b60408051602080820186905281830185905260608083018590528351808403909101815260809092019092528051910120600090611a3f81612143565b6040805160208082018790528183018690526060820185905260808083018590528351808403909101815260a09092019092528051910120600090611ac981612143565b9695505050505050565b60408051602081018690529081018490526060810183905260808101829052600090819060a00160408051601f19818403018152918152815160209283012060008181526002909352912054909150611ac9565b6001546001600160a01b03163314611b815760405162461bcd60e51b815260206004820152601f60248201527f4d7573742062652070617274206f662063726f7373636861696e2063616c6c0060448201526064016105d2565b611b8b838261218b565b6000848152600960205260409020546001600160a01b031680611c035760405162461bcd60e51b815260206004820152602a60248201527f4e6f20455243203230207265676973746572656420666f722072656d6f746520604482015269313637b1b5b1b430b4b760b11b60648201526084016105d2565b600154604080516001600160a01b038681166024830152604480830187905283518084039091018152606490920183526020820180516001600160e01b031663032a7ef560e41b17905291516392b2c33560e01b815291909216916392b2c33591611c75918991869190600401612a6d565b600060405180830381600087803b158015611c8f57600080fd5b505af1158015611ca3573d6000803e3d6000fd5b505050505050505050565b6000808383604051602001611ccd929190918252602082015260400190565b60405160208183030381529060405280519060200120905061152d8160001c612143565b60408051602081018690529081018490526060810183905260808101829052600090819060a00160408051601f198184030181529181528151602092830120600081815260039093529120549091501515611ac9565b6040805160208082018790528183018690526060820185905260808083018590528351808403909101815260a09092019092528051910120600090611ac98161223c565b6040805160208082018890528183018790526060820186905260808083018690528351808403909101815260a090920190925280519101206109d18183612298565b6001600160a01b038216611e2d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a2046726f6d206163636f756e743a207a65726f206164647265736044820152607360f81b60648201526084016105d2565b6000611e38836107ef565b905081811015611ea35760405162461bcd60e51b815260206004820152603060248201527f45524332303a20616d6f756e742065786365656473206d696e2062616c616e6360448201526f329037b310232927a69039b2b73232b960811b60648201526084016105d2565b6001600160a01b0383166000805b600554811015611f0d57611ec760018483612421565b611efb57600191506000611edd60018584612470565b9050611ef560018584611ef08a8661290a565b6124ad565b50611f0d565b80611f0581612922565b915050611eb1565b50806107975760405162461bcd60e51b815260206004820152602160248201527f416c6c2064656372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b60648201526084016105d2565b6001600160a01b038216611fcc5760405162461bcd60e51b815260206004820152602860248201527f45524332303a20726563697069656e74206163636f756e74206973207a65726f604482015267206164647265737360c01b60648201526084016105d2565b6001600160a01b0382166000805b60055481101561203157611ff060008483612421565b61201f5760019150600061200660008584612470565b905061201960008584611ef0898661290a565b50612031565b8061202981612922565b915050611fda565b508061096e5760405162461bcd60e51b815260206004820152602160248201527f416c6c20696e6372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b60648201526084016105d2565b6000805b6006548110156120e6576120a26004826124e8565b6120d4576001915060006120b7600483612536565b90506120ce6004836120c9878561290a565b612579565b506120e6565b806120de81612922565b91505061208d565b5080610d7b5760405162461bcd60e51b815260206004820152602660248201527f416c6c20696e63726561736520746f74616c20737570706c7920736c6f747320604482015265696e2075736560d01b60648201526084016105d2565b60008181526003602052604081205415612178576000828152600360205260409020546121729060019061293d565b92915050565b5060009081526002602052604090205490565b6001600160a01b0382166121eb5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105d2565b6121f4816125ab565b6121fe8282611dcd565b6040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611893565b600081815260036020526040812054156121785760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b65640060448201526064016105d2565b600082815260036020526040902054156122eb5760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b60448201526064016105d2565b60015460408051637bf37a0960e01b815290516000926001600160a01b031691637bf37a09916004808301926020929190829003018186803b15801561233057600080fd5b505afa158015612344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123689190612a97565b905080612382575060009182526002602052604090912055565b600154604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b1580156123c757600080fd5b505af11580156123db573d6000803e3d6000fd5b50505060008281526004602090815260408220805460018181018355918452919092200185905561240d91508361290a565b600084815260036020526040902055505050565b604080516020810185905290810183905260608101829052600090819060800160408051601f198184030181529181528151602092830120600081815260039093529120549091501515611a3f565b60408051602080820186905281830185905260608083018590528351808403909101815260809092019092528051910120600090611a3f8161223c565b604080516020808201879052818301869052606080830186905283518084039091018152608090920190925280519101206107978183612298565b6000808383604051602001612507929190918252602082015260400190565b60408051601f19818403018152918152815160209283012060008181526003909352912054909150151561152d565b6000808383604051602001612555929190918252602082015260400190565b60405160208183030381529060405280519060200120905061152d8160001c61223c565b6040805160208082018690528183018590528251808303840181526060909201909252805191012061096e8183612298565b6000805b600654811015612603576125c46005826124e8565b6125f1576001915060006125d9600583612536565b90506125eb6005836120c9878561290a565b50612603565b806125fb81612922565b9150506125af565b5080610d7b5760405162461bcd60e51b815260206004820152602660248201527f416c6c20646563726561736520746f74616c20737570706c7920736c6f747320604482015265696e2075736560d01b60648201526084016105d2565b508054600082559060005260206000209081019061267e9190612681565b50565b5b808211156126965760008155600101612682565b5090565b6000815180845260005b818110156126c0576020818501810151868301820152016126a4565b818111156126d2576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006126fa602083018461269a565b9392505050565b80356001600160a01b038116811461271857600080fd5b919050565b6000806040838503121561273057600080fd5b61273983612701565b946020939093013593505050565b60008060006060848603121561275c57600080fd5b61276584612701565b925061277360208501612701565b9150604084013590509250925092565b60006020828403121561279557600080fd5b5035919050565b6000602082840312156127ae57600080fd5b6126fa82612701565b600080604083850312156127ca57600080fd5b6127d383612701565b91506127e160208401612701565b90509250929050565b6000806000606084860312156127ff57600080fd5b8335925061277360208501612701565b6000806000806080858703121561282557600080fd5b61282e85612701565b93506020850135925061284360408601612701565b9396929550929360600135925050565b801515811461267e57600080fd5b6000806040838503121561287457600080fd5b823561273981612853565b6000806040838503121561289257600080fd5b823591506127e160208401612701565b600181811c908216806128b657607f821691505b6020821081141561065e57634e487b7160e01b600052602260045260246000fd5b6000602082840312156128e957600080fd5b81516126fa81612853565b634e487b7160e01b600052601160045260246000fd5b6000821982111561291d5761291d6128f4565b500190565b6000600019821415612936576129366128f4565b5060010190565b60008282101561294f5761294f6128f4565b500390565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8381526001600160a01b0383166020820152606060408201819052600090611a3f9083018461269a565b600060208284031215612aa957600080fd5b505191905056fea26469706673582212203f7d0fbd556a2817dc4621129e2a5ef51417b477625b5e5e8eecf83abdb53b6164736f6c63430008090033"; public static final String FUNC_ACCOUNTPALLELIZATIONFACTOR = "accountPallelizationFactor"; diff --git a/application/appcontracts/erc20/src/main/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/CrosschainERC20PresetFixedSupply.java b/application/appcontracts/erc20/src/main/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/CrosschainERC20PresetFixedSupply.java index da71bf1a..2c5302e3 100644 --- a/application/appcontracts/erc20/src/main/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/CrosschainERC20PresetFixedSupply.java +++ b/application/appcontracts/erc20/src/main/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/CrosschainERC20PresetFixedSupply.java @@ -41,7 +41,7 @@ */ @SuppressWarnings("rawtypes") public class CrosschainERC20PresetFixedSupply extends Contract { - public static final String BINARY = "60806040523480156200001157600080fd5b506040516200353838038062003538833981016040819052620000349162000907565b84848482828280600033600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b03929092169190911790558251620000bd90600790602086019062000773565b508151620000d390600890602085019062000773565b5050600580555050600a60065550620000f1915082905083620000fc565b505050505062000a42565b6001600160a01b038216620001585760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b6200016381620001b4565b6200016f828262000282565b6040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000805b6006548110156200021f57620001d0600482620003c2565b6200020a57600191506000620001e860048362000415565b905062000203600483620001fd8785620009a0565b6200045a565b506200021f565b806200021681620009f8565b915050620001b8565b50806200027e5760405162461bcd60e51b815260206004820152602660248201527f416c6c20696e63726561736520746f74616c20737570706c7920736c6f747320604482015265696e2075736560d01b60648201526084016200014f565b5050565b6001600160a01b038216620002eb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a20726563697069656e74206163636f756e74206973207a65726f604482015267206164647265737360c01b60648201526084016200014f565b6001600160a01b0382166000805b600554811015620003625762000312600084836200048e565b6200034d576001915060006200032a818584620004e2565b90506200034660008584620003408986620009a0565b62000521565b5062000362565b806200035981620009f8565b915050620002f9565b5080620003bc5760405162461bcd60e51b815260206004820152602160248201527f416c6c20696e6372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b60648201526084016200014f565b50505050565b6000808383604051602001620003e2929190918252602082015260400190565b60408051808303601f1901815291815281516020928301206000818152600390935291205490915015155b949350505050565b600080838360405160200162000435929190918252602082015260400190565b60408051601f19818403018152919052805160209091012090506200040d8162000565565b60408051602080820186905281830185905282518083038401815260609092019092528051910120620003bc8183620005d6565b604080516020810185905290810183905260608101829052600090819060800160408051808303601f1901815291815281516020928301206000818152600390935291205490915015155b95945050505050565b60408051602080820186905281830185905260608083018590528351808403909101815260809092019092528051910120600090620004d98162000565565b604080516020808201879052818301869052606080830186905283518084039091018152608090920190925280519101206200055e8183620005d6565b5050505050565b60008181526003602052604081205415620005c35760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b65640060448201526064016200014f565b5060009081526002602052604090205490565b60008281526003602052604090205415620006345760405162461bcd60e51b815260206004820152601460248201527f436f6e7472616374206974656d206c6f636b656400000000000000000000000060448201526064016200014f565b60015460408051637bf37a0960e01b815290516000926001600160a01b031691637bf37a09916004808301926020929190829003018186803b1580156200067a57600080fd5b505afa1580156200068f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006b59190620008ed565b905080620006d0575060009182526002602052604090912055565b600154604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b1580156200071657600080fd5b505af11580156200072b573d6000803e3d6000fd5b5050506000828152600460209081526040822080546001818101835591845291909220018590556200075f915083620009a0565b600084815260036020526040902055505050565b8280546200078190620009bb565b90600052602060002090601f016020900481019282620007a55760008555620007f0565b82601f10620007c057805160ff1916838001178555620007f0565b82800160010185558215620007f0579182015b82811115620007f0578251825591602001919060010190620007d3565b50620007fe92915062000802565b5090565b5b80821115620007fe576000815560010162000803565b80516001600160a01b03811681146200083157600080fd5b919050565b600082601f8301126200084857600080fd5b81516001600160401b038082111562000865576200086562000a2c565b604051601f8301601f19908116603f0116810190828211818310171562000890576200089062000a2c565b81604052838152602092508683858801011115620008ad57600080fd5b600091505b83821015620008d15785820183015181830184015290820190620008b2565b83821115620008e35760008385830101525b9695505050505050565b6000602082840312156200090057600080fd5b5051919050565b600080600080600060a086880312156200092057600080fd5b85516001600160401b03808211156200093857600080fd5b6200094689838a0162000836565b965060208801519150808211156200095d57600080fd5b506200096c8882890162000836565b9450506200097d6040870162000819565b925060608601519150620009946080870162000819565b90509295509295909350565b60008219821115620009b657620009b662000a16565b500190565b600181811c90821680620009d057607f821691505b60208210811415620009f257634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141562000a0f5762000a0f62000a16565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b612ae68062000a526000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063715018a61161011a578063a9059cbb116100ad578063dd62ed3e1161007c578063dd62ed3e14610418578063f2fde38b1461042b578063f50249fc1461043e578063f6aacfb114610446578063fcdb37101461046857600080fd5b8063a9059cbb146103c1578063bd1b1afd146103d4578063be42152f146103dc578063d71aaa42146103ef57600080fd5b806395d89b41116100e957806395d89b411461038057806397879e0f1461038857806399eb5d4c1461039b578063a457c2d7146103ae57600080fd5b8063715018a6146103375780637785eebd1461033f5780637b0919b2146103485780638da5cb5b1461035b57600080fd5b80633aca7144116101925780634f6e9e73116101615780634f6e9e73146102f657806359ad3fe014610309578063691448c21461031157806370a082311461032457600080fd5b80633aca7144146102b457806340490cc2146102bd578063409b223e146102d057806342b9e74f146102e357600080fd5b8063313ce567116101ce578063313ce5671461026a57806332a7ef501461027957806335c01fc31461028e57806339509351146102a157600080fd5b806306fdde0314610200578063095ea7b31461021e57806318160ddd1461024157806323b872dd14610257575b600080fd5b61020861047b565b60405161021591906128b7565b60405180910390f35b61023161022c366004612747565b61050d565b6040519015158152602001610215565b6102496105ef565b604051908152602001610215565b61023161026536600461270b565b610664565b60405160128152602001610215565b61028c610287366004612747565b6106b7565b005b61028c61029c366004612809565b61079e565b6102316102af366004612747565b6107e2565b61024960055481565b6102496102cb3660046126b6565b6107ef565b6102496102de3660046126d8565b610872565b61028c6102f1366004612845565b61094a565b61028c610304366004612771565b610974565b6102496109d9565b61024961031f3660046126d8565b610a48565b6102496103323660046126b6565b610b16565b61028c610b91565b61024960065481565b61028c610356366004612809565b610c05565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610215565b610208610c41565b6102496103963660046126b6565b610c50565b61028c6103a93660046127d2565b610ccb565b6102316103bc366004612747565b610d7f565b6102316103cf366004612747565b610e01565b610249610e0e565b61028c6103ea366004612822565b610e7d565b6103686103fd366004612809565b6009602052600090815260409020546001600160a01b031681565b6102496104263660046126d8565b610fa7565b61028c6104393660046126b6565b611075565b61024961115f565b610231610454366004612809565b600090815260036020526040902054151590565b6102496104763660046126d8565b6111ce565b60606007805461048a90612a26565b80601f01602080910402602001604051908101604052809291908181526020018280546104b690612a26565b80156105035780601f106104d857610100808354040283529160200191610503565b820191906000526020600020905b8154815290600101906020018083116104e657829003601f168201915b5050505050905090565b60015460408051635a61dbab60e11b815290516000926001600160a01b03169163b4c3b756916004808301926020929190829003018186803b15801561055257600080fd5b505afa158015610566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058a91906127b5565b6105db5760405162461bcd60e51b815260206004820152601e60248201527f4d7573742062652073696e676c6520626c6f636b636861696e2063616c6c000060448201526064015b60405180910390fd5b6105e633848461129c565b50600192915050565b600080805b600654811015610627576106096004826114e5565b61061390836129f7565b91508061061f81612a5b565b9150506105f4565b5060005b60065481101561065e576106406005826114e5565b61064a9083612a0f565b91508061065681612a5b565b91505061062b565b50919050565b6000610671848484611535565b33600061067e8683610a48565b9050838110156106a05760405162461bcd60e51b81526004016105d29061290c565b6106ab868386611661565b50600195945050505050565b6001546001600160a01b031633146107115760405162461bcd60e51b815260206004820152601f60248201527f4d7573742062652070617274206f662063726f7373636861696e2063616c6c0060448201526064016105d2565b60008061071c6117b8565b60008281526009602052604090205491945092508291506001600160a01b0380831691161461078d5760405162461bcd60e51b815260206004820152601b60248201527f536f75726365206973206e6f7420636f7272656374204552433230000000000060448201526064016105d2565b61079785856117f0565b5050505050565b6000546001600160a01b031633146107c85760405162461bcd60e51b81526004016105d290612954565b80600660008282546107da91906129f7565b909155505050565b60006105e633848461189f565b60006001600160a01b03821681805b60055481101561083257610814600084836119f6565b61081e90836129f7565b91508061082a81612a5b565b9150506107fe565b5060005b60055481101561086a5761084c60018483611a48565b6108569083612a0f565b91508061086281612a5b565b915050610836565b509392505050565b60006001600160a01b03831661089a5760405162461bcd60e51b81526004016105d290612989565b6001600160a01b0382166108c05760405162461bcd60e51b81526004016105d2906128ca565b6001600160a01b038084169083166000805b600554811015610907576108e96002858584611a85565b6108f390836129f7565b9150806108ff81612a5b565b9150506108d2565b5060005b600554811015610940576109226003858584611ad3565b61092c9083612a0f565b91508061093881612a5b565b91505061090b565b5095945050505050565b60015433906001600160a01b03168114156109625750325b61096e84828585611b27565b50505050565b60015433906001600160a01b031681141561098c5750325b61099884868585611b27565b60006109a48683610a48565b9050828110156109c65760405162461bcd60e51b81526004016105d29061290c565b6109d1868385611661565b505050505050565b600080805b600654811015610a11576109f36004826114e5565b6109fd90836129f7565b915080610a0981612a5b565b9150506109de565b5060005b60065481101561065e57610a2a600582611cae565b610a349083612a0f565b915080610a4081612a5b565b915050610a15565b60006001600160a01b038316610a705760405162461bcd60e51b81526004016105d290612989565b6001600160a01b038216610a965760405162461bcd60e51b81526004016105d2906128ca565b6001600160a01b038084169083166000805b600554811015610add57610abf6002858584611ad3565b610ac990836129f7565b915080610ad581612a5b565b915050610aa8565b5060005b60055481101561094057610af86003858584611a85565b610b029083612a0f565b915080610b0e81612a5b565b915050610ae1565b60006001600160a01b03821681805b600554811015610b5957610b3b600084836119f6565b610b4590836129f7565b915080610b5181612a5b565b915050610b25565b5060005b60055481101561086a57610b73600184836119f6565b610b7d9083612a0f565b915080610b8981612a5b565b915050610b5d565b6000546001600160a01b03163314610bbb5760405162461bcd60e51b81526004016105d290612954565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c2f5760405162461bcd60e51b81526004016105d290612954565b80600560008282546107da91906129f7565b60606008805461048a90612a26565b60006001600160a01b03821681805b600554811015610c9357610c7560008483611a48565b610c7f90836129f7565b915080610c8b81612a5b565b915050610c5f565b5060005b60055481101561086a57610cad60018483611a48565b610cb79083612a0f565b915080610cc381612a5b565b915050610c97565b60005b600082815260046020526040902054811015610d63576000828152600460205260408120805483908110610d0457610d04612a8c565b906000526020600020015490508315610d4257600081815260036020526040902054610d3290600190612a0f565b6000828152600260205260409020555b60009081526003602052604081205580610d5b81612a5b565b915050610cce565b506000818152600460205260408120610d7b91612660565b5050565b600080610d8c3385610a48565b905082811015610dec5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105d2565b610df7338585611661565b5060019392505050565b60006105e6338484611535565b600080805b600654811015610e4657610e28600482611cae565b610e3290836129f7565b915080610e3e81612a5b565b915050610e13565b5060005b60065481101561065e57610e5f600582611cae565b610e699083612a0f565b915080610e7581612a5b565b915050610e4a565b6000546001600160a01b03163314610ea75760405162461bcd60e51b81526004016105d290612954565b600160009054906101000a90046001600160a01b03166001600160a01b031663b4c3b7566040518163ffffffff1660e01b815260040160206040518083038186803b158015610ef557600080fd5b505afa158015610f09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2d91906127b5565b610f795760405162461bcd60e51b815260206004820152601e60248201527f4d7573742062652073696e676c6520626c6f636b636861696e2063616c6c000060448201526064016105d2565b60009182526009602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b60006001600160a01b038316610fcf5760405162461bcd60e51b81526004016105d290612989565b6001600160a01b038216610ff55760405162461bcd60e51b81526004016105d2906128ca565b6001600160a01b038084169083166000805b60055481101561103c5761101e6002858584611ad3565b61102890836129f7565b91508061103481612a5b565b915050611007565b5060005b600554811015610940576110576003858584611ad3565b6110619083612a0f565b91508061106d81612a5b565b915050611040565b6000546001600160a01b0316331461109f5760405162461bcd60e51b81526004016105d290612954565b6001600160a01b0381166111045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105d2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080805b60065481101561119757611179600482611cae565b61118390836129f7565b91508061118f81612a5b565b915050611164565b5060005b60065481101561065e576111b06005826114e5565b6111ba9083612a0f565b9150806111c681612a5b565b91505061119b565b60006001600160a01b0383166111f65760405162461bcd60e51b81526004016105d290612989565b6001600160a01b03821661121c5760405162461bcd60e51b81526004016105d2906128ca565b6001600160a01b038084169083166000805b600554811015611263576112456002858584611a85565b61124f90836129f7565b91508061125b81612a5b565b91505061122e565b5060005b6005548110156109405761127e6003858584611a85565b6112889083612a0f565b91508061129481612a5b565b915050611267565b6001600160a01b0383166112c25760405162461bcd60e51b81526004016105d290612989565b6001600160a01b0382166112e85760405162461bcd60e51b81526004016105d2906128ca565b6001600160a01b038084169083166000805b600554811015611389576113116002858584611cf1565b1561135e5760405162461bcd60e51b815260206004820152601e60248201527f496e63726561736520616c6c6f77616e636520736c6f74206c6f636b6564000060448201526064016105d2565b61136b6002858584611d47565b61137590836129f7565b91508061138181612a5b565b9150506112fa565b5060005b60055481101561141c576113a46003858584611cf1565b156113f15760405162461bcd60e51b815260206004820152601e60248201527f446563726561736520616c6c6f77616e636520736c6f74206c6f636b6564000060448201526064016105d2565b6113fe6003858584611d47565b6114089083612a0f565b91508061141481612a5b565b91505061138d565b5083811015611460576000611435600285856000611d47565b905061145a6002858560008661144b8b886129f7565b6114559190612a0f565b611d8b565b50611490565b83811115611490576000611478600385856000611d47565b905061148e6003858560008961144b88886129f7565b505b846001600160a01b0316866001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925866040516114d591815260200190565b60405180910390a3505050505050565b6000808383604051602001611504929190918252602082015260400190565b60408051601f198184030181529181528151602092830120600081815260029093529120549091505b949350505050565b6001600160a01b0383166115995760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105d2565b6001600160a01b0382166115fb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105d2565b6116058382611dcd565b61160f8282611f65565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161165491815260200190565b60405180910390a3505050565b6001600160a01b0383166116875760405162461bcd60e51b81526004016105d290612989565b6001600160a01b0382166116ad5760405162461bcd60e51b81526004016105d2906128ca565b6001600160a01b038084169083166000805b600554811015611719576116d66003858584611cf1565b611707576001915060006116ed6003868685611d47565b905061170160038686856114558b876129f7565b50611719565b8061171181612a5b565b9150506116bf565b50806117735760405162461bcd60e51b815260206004820152602360248201527f416c6c20646563726561736520616c6c6f77616e636520736c6f747320696e2060448201526275736560e81b60648201526084016105d2565b846001600160a01b0316866001600160a01b03167fca00ac413b8c2013d4efc4a5ea887318bf432aa5d2a4c8ec87ad5660c28ef5d8866040516114d591815260200190565b600080808036806020605f19820184376000519550602060408203600037600051945060208082036000376000519350505050909192565b6001600160a01b0382166118465760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105d2565b61184f81612089565b6118598282611f65565b6040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b6001600160a01b0383166118c55760405162461bcd60e51b81526004016105d290612989565b6001600160a01b0382166118eb5760405162461bcd60e51b81526004016105d2906128ca565b6001600160a01b038084169083166000805b600554811015611957576119146002858584611cf1565b6119455760019150600061192b6002868685611d47565b905061193f60028686856114558b876129f7565b50611957565b8061194f81612a5b565b9150506118fd565b50806119b15760405162461bcd60e51b815260206004820152602360248201527f416c6c20696e63726561736520616c6c6f77616e636520736c6f747320696e2060448201526275736560e81b60648201526084016105d2565b846001600160a01b0316866001600160a01b03167fae0962182a7df59bce5a3518382b8a4a909b354b6ba0f4114215654490399b4b866040516114d591815260200190565b604080516020810185905290810183905260608101829052600090819060800160408051601f198184030181529181528151602092830120600081815260029093529120549091505b95945050505050565b60408051602080820186905281830185905260608083018590528351808403909101815260809092019092528051910120600090611a3f81612143565b6040805160208082018790528183018690526060820185905260808083018590528351808403909101815260a09092019092528051910120600090611ac981612143565b9695505050505050565b60408051602081018690529081018490526060810183905260808101829052600090819060a00160408051601f19818403018152918152815160209283012060008181526002909352912054909150611ac9565b6001546001600160a01b03163314611b815760405162461bcd60e51b815260206004820152601f60248201527f4d7573742062652070617274206f662063726f7373636861696e2063616c6c0060448201526064016105d2565b611b8b838261218b565b6000848152600960205260409020546001600160a01b031680611c035760405162461bcd60e51b815260206004820152602a60248201527f4e6f20455243203230207265676973746572656420666f722072656d6f746520604482015269313637b1b5b1b430b4b760b11b60648201526084016105d2565b600154604080516001600160a01b038681166024830152604480830187905283518084039091018152606490920183526020820180516001600160e01b031663032a7ef560e41b17905291516392b2c33560e01b815291909216916392b2c33591611c759189918691906004016129cd565b600060405180830381600087803b158015611c8f57600080fd5b505af1158015611ca3573d6000803e3d6000fd5b505050505050505050565b6000808383604051602001611ccd929190918252602082015260400190565b60405160208183030381529060405280519060200120905061152d8160001c612143565b60408051602081018690529081018490526060810183905260808101829052600090819060a00160408051601f198184030181529181528151602092830120600081815260039093529120549091501515611ac9565b6040805160208082018790528183018690526060820185905260808083018590528351808403909101815260a09092019092528051910120600090611ac98161223c565b6040805160208082018890528183018790526060820186905260808083018690528351808403909101815260a090920190925280519101206109d18183612298565b6001600160a01b038216611e2d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a2046726f6d206163636f756e743a207a65726f206164647265736044820152607360f81b60648201526084016105d2565b6000611e38836107ef565b905081811015611ea35760405162461bcd60e51b815260206004820152603060248201527f45524332303a20616d6f756e742065786365656473206d696e2062616c616e6360448201526f329037b310232927a69039b2b73232b960811b60648201526084016105d2565b6001600160a01b0383166000805b600554811015611f0d57611ec760018483612421565b611efb57600191506000611edd60018584612470565b9050611ef560018584611ef08a866129f7565b6124ad565b50611f0d565b80611f0581612a5b565b915050611eb1565b50806107975760405162461bcd60e51b815260206004820152602160248201527f416c6c2064656372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b60648201526084016105d2565b6001600160a01b038216611fcc5760405162461bcd60e51b815260206004820152602860248201527f45524332303a20726563697069656e74206163636f756e74206973207a65726f604482015267206164647265737360c01b60648201526084016105d2565b6001600160a01b0382166000805b60055481101561203157611ff060008483612421565b61201f5760019150600061200660008584612470565b905061201960008584611ef089866129f7565b50612031565b8061202981612a5b565b915050611fda565b508061096e5760405162461bcd60e51b815260206004820152602160248201527f416c6c20696e6372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b60648201526084016105d2565b6000805b6006548110156120e6576120a26004826124e8565b6120d4576001915060006120b7600483612536565b90506120ce6004836120c987856129f7565b612579565b506120e6565b806120de81612a5b565b91505061208d565b5080610d7b5760405162461bcd60e51b815260206004820152602660248201527f416c6c20696e63726561736520746f74616c20737570706c7920736c6f747320604482015265696e2075736560d01b60648201526084016105d2565b600081815260036020526040812054156121785760008281526003602052604090205461217290600190612a0f565b92915050565b5060009081526002602052604090205490565b6001600160a01b0382166121eb5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105d2565b6121f4816125ab565b6121fe8282611dcd565b6040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611893565b600081815260036020526040812054156121785760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b65640060448201526064016105d2565b600082815260036020526040902054156122eb5760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b60448201526064016105d2565b60015460408051637bf37a0960e01b815290516000926001600160a01b031691637bf37a09916004808301926020929190829003018186803b15801561233057600080fd5b505afa158015612344573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236891906127f0565b905080612382575060009182526002602052604090912055565b600154604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b1580156123c757600080fd5b505af11580156123db573d6000803e3d6000fd5b50505060008281526004602090815260408220805460018181018355918452919092200185905561240d9150836129f7565b600084815260036020526040902055505050565b604080516020810185905290810183905260608101829052600090819060800160408051601f198184030181529181528151602092830120600081815260039093529120549091501515611a3f565b60408051602080820186905281830185905260608083018590528351808403909101815260809092019092528051910120600090611a3f8161223c565b604080516020808201879052818301869052606080830186905283518084039091018152608090920190925280519101206107978183612298565b6000808383604051602001612507929190918252602082015260400190565b60408051601f19818403018152918152815160209283012060008181526003909352912054909150151561152d565b6000808383604051602001612555929190918252602082015260400190565b60405160208183030381529060405280519060200120905061152d8160001c61223c565b6040805160208082018690528183018590528251808303840181526060909201909252805191012061096e8183612298565b6000805b600654811015612603576125c46005826124e8565b6125f1576001915060006125d9600583612536565b90506125eb6005836120c987856129f7565b50612603565b806125fb81612a5b565b9150506125af565b5080610d7b5760405162461bcd60e51b815260206004820152602660248201527f416c6c20646563726561736520746f74616c20737570706c7920736c6f747320604482015265696e2075736560d01b60648201526084016105d2565b508054600082559060005260206000209081019061267e9190612681565b50565b5b808211156126965760008155600101612682565b5090565b80356001600160a01b03811681146126b157600080fd5b919050565b6000602082840312156126c857600080fd5b6126d18261269a565b9392505050565b600080604083850312156126eb57600080fd5b6126f48361269a565b91506127026020840161269a565b90509250929050565b60008060006060848603121561272057600080fd5b6127298461269a565b92506127376020850161269a565b9150604084013590509250925092565b6000806040838503121561275a57600080fd5b6127638361269a565b946020939093013593505050565b6000806000806080858703121561278757600080fd5b6127908561269a565b9350602085013592506127a56040860161269a565b9396929550929360600135925050565b6000602082840312156127c757600080fd5b81516126d181612aa2565b600080604083850312156127e557600080fd5b823561276381612aa2565b60006020828403121561280257600080fd5b5051919050565b60006020828403121561281b57600080fd5b5035919050565b6000806040838503121561283557600080fd5b823591506127026020840161269a565b60008060006060848603121561285a57600080fd5b833592506127376020850161269a565b6000815180845260005b8181101561289057602081850181015186830182015201612874565b818111156128a2576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006126d1602083018461286a565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b8381526001600160a01b0383166020820152606060408201819052600090611a3f9083018461286a565b60008219821115612a0a57612a0a612a76565b500190565b600082821015612a2157612a21612a76565b500390565b600181811c90821680612a3a57607f821691505b6020821081141561065e57634e487b7160e01b600052602260045260246000fd5b6000600019821415612a6f57612a6f612a76565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b801515811461267e57600080fdfea26469706673582212204f072e63197c7e9a3b1d38d993b0aa05c33be7ab1c288860d4fcbe2ffe3d447664736f6c63430008050033"; + public static final String BINARY = "60806040523480156200001157600080fd5b506040516200353838038062003538833981016040819052620000349162000903565b84848482828280600033600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b03929092169190911790558251620000bd90600790602086019062000773565b508151620000d390600890602085019062000773565b5050600580555050600a60065550620000f1915082905083620000fc565b505050505062000a42565b6001600160a01b038216620001585760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b6200016381620001b4565b6200016f828262000282565b6040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000805b6006548110156200021f57620001d0600482620003c2565b6200020a57600191506000620001e860048362000415565b905062000203600483620001fd8785620009b2565b6200045a565b506200021f565b806200021681620009cd565b915050620001b8565b50806200027e5760405162461bcd60e51b815260206004820152602660248201527f416c6c20696e63726561736520746f74616c20737570706c7920736c6f747320604482015265696e2075736560d01b60648201526084016200014f565b5050565b6001600160a01b038216620002eb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a20726563697069656e74206163636f756e74206973207a65726f604482015267206164647265737360c01b60648201526084016200014f565b6001600160a01b0382166000805b600554811015620003625762000312600084836200048e565b6200034d576001915060006200032a818584620004e2565b90506200034660008584620003408986620009b2565b62000521565b5062000362565b806200035981620009cd565b915050620002f9565b5080620003bc5760405162461bcd60e51b815260206004820152602160248201527f416c6c20696e6372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b60648201526084016200014f565b50505050565b6000808383604051602001620003e2929190918252602082015260400190565b60408051808303601f1901815291815281516020928301206000818152600390935291205490915015155b949350505050565b600080838360405160200162000435929190918252602082015260400190565b60408051601f19818403018152919052805160209091012090506200040d8162000565565b60408051602080820186905281830185905282518083038401815260609092019092528051910120620003bc8183620005d6565b604080516020810185905290810183905260608101829052600090819060800160408051808303601f1901815291815281516020928301206000818152600390935291205490915015155b95945050505050565b60408051602080820186905281830185905260608083018590528351808403909101815260809092019092528051910120600090620004d98162000565565b604080516020808201879052818301869052606080830186905283518084039091018152608090920190925280519101206200055e8183620005d6565b5050505050565b60008181526003602052604081205415620005c35760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b65640060448201526064016200014f565b5060009081526002602052604090205490565b60008281526003602052604090205415620006345760405162461bcd60e51b815260206004820152601460248201527f436f6e7472616374206974656d206c6f636b656400000000000000000000000060448201526064016200014f565b60015460408051637bf37a0960e01b815290516000926001600160a01b031691637bf37a09916004808301926020929190829003018186803b1580156200067a57600080fd5b505afa1580156200068f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006b59190620009eb565b905080620006d0575060009182526002602052604090912055565b600154604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b1580156200071657600080fd5b505af11580156200072b573d6000803e3d6000fd5b5050506000828152600460209081526040822080546001818101835591845291909220018590556200075f915083620009b2565b600084815260036020526040902055505050565b828054620007819062000a05565b90600052602060002090601f016020900481019282620007a55760008555620007f0565b82601f10620007c057805160ff1916838001178555620007f0565b82800160010185558215620007f0579182015b82811115620007f0578251825591602001919060010190620007d3565b50620007fe92915062000802565b5090565b5b80821115620007fe576000815560010162000803565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200084157600080fd5b81516001600160401b03808211156200085e576200085e62000819565b604051601f8301601f19908116603f0116810190828211818310171562000889576200088962000819565b81604052838152602092508683858801011115620008a657600080fd5b600091505b83821015620008ca5785820183015181830184015290820190620008ab565b83821115620008dc5760008385830101525b9695505050505050565b80516001600160a01b0381168114620008fe57600080fd5b919050565b600080600080600060a086880312156200091c57600080fd5b85516001600160401b03808211156200093457600080fd5b6200094289838a016200082f565b965060208801519150808211156200095957600080fd5b5062000968888289016200082f565b9450506200097960408701620008e6565b9250606086015191506200099060808701620008e6565b90509295509295909350565b634e487b7160e01b600052601160045260246000fd5b60008219821115620009c857620009c86200099c565b500190565b6000600019821415620009e457620009e46200099c565b5060010190565b600060208284031215620009fe57600080fd5b5051919050565b600181811c9082168062000a1a57607f821691505b6020821081141562000a3c57634e487b7160e01b600052602260045260246000fd5b50919050565b612ae68062000a526000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063715018a61161011a578063a9059cbb116100ad578063dd62ed3e1161007c578063dd62ed3e14610418578063f2fde38b1461042b578063f50249fc1461043e578063f6aacfb114610446578063fcdb37101461046857600080fd5b8063a9059cbb146103c1578063bd1b1afd146103d4578063be42152f146103dc578063d71aaa42146103ef57600080fd5b806395d89b41116100e957806395d89b411461038057806397879e0f1461038857806399eb5d4c1461039b578063a457c2d7146103ae57600080fd5b8063715018a6146103375780637785eebd1461033f5780637b0919b2146103485780638da5cb5b1461035b57600080fd5b80633aca7144116101925780634f6e9e73116101615780634f6e9e73146102f657806359ad3fe014610309578063691448c21461031157806370a082311461032457600080fd5b80633aca7144146102b457806340490cc2146102bd578063409b223e146102d057806342b9e74f146102e357600080fd5b8063313ce567116101ce578063313ce5671461026a57806332a7ef501461027957806335c01fc31461028e57806339509351146102a157600080fd5b806306fdde0314610200578063095ea7b31461021e57806318160ddd1461024157806323b872dd14610257575b600080fd5b61020861047b565b60405161021591906126e7565b60405180910390f35b61023161022c36600461271d565b61050d565b6040519015158152602001610215565b6102496105ef565b604051908152602001610215565b610231610265366004612747565b610664565b60405160128152602001610215565b61028c61028736600461271d565b6106b7565b005b61028c61029c366004612783565b61079e565b6102316102af36600461271d565b6107e2565b61024960055481565b6102496102cb36600461279c565b6107ef565b6102496102de3660046127b7565b610872565b61028c6102f13660046127ea565b61094a565b61028c61030436600461280f565b610974565b6102496109d9565b61024961031f3660046127b7565b610a48565b61024961033236600461279c565b610b16565b61028c610b91565b61024960065481565b61028c610356366004612783565b610c05565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610215565b610208610c41565b61024961039636600461279c565b610c50565b61028c6103a9366004612861565b610ccb565b6102316103bc36600461271d565b610d7f565b6102316103cf36600461271d565b610e01565b610249610e0e565b61028c6103ea36600461287f565b610e7d565b6103686103fd366004612783565b6009602052600090815260409020546001600160a01b031681565b6102496104263660046127b7565b610fa7565b61028c61043936600461279c565b611075565b61024961115f565b610231610454366004612783565b600090815260036020526040902054151590565b6102496104763660046127b7565b6111ce565b60606007805461048a906128a2565b80601f01602080910402602001604051908101604052809291908181526020018280546104b6906128a2565b80156105035780601f106104d857610100808354040283529160200191610503565b820191906000526020600020905b8154815290600101906020018083116104e657829003601f168201915b5050505050905090565b60015460408051635a61dbab60e11b815290516000926001600160a01b03169163b4c3b756916004808301926020929190829003018186803b15801561055257600080fd5b505afa158015610566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058a91906128d7565b6105db5760405162461bcd60e51b815260206004820152601e60248201527f4d7573742062652073696e676c6520626c6f636b636861696e2063616c6c000060448201526064015b60405180910390fd5b6105e633848461129c565b50600192915050565b600080805b600654811015610627576106096004826114e5565b610613908361290a565b91508061061f81612922565b9150506105f4565b5060005b60065481101561065e576106406005826114e5565b61064a908361293d565b91508061065681612922565b91505061062b565b50919050565b6000610671848484611535565b33600061067e8683610a48565b9050838110156106a05760405162461bcd60e51b81526004016105d290612954565b6106ab868386611661565b50600195945050505050565b6001546001600160a01b031633146107115760405162461bcd60e51b815260206004820152601f60248201527f4d7573742062652070617274206f662063726f7373636861696e2063616c6c0060448201526064016105d2565b60008061071c6117b8565b60008281526009602052604090205491945092508291506001600160a01b0380831691161461078d5760405162461bcd60e51b815260206004820152601b60248201527f536f75726365206973206e6f7420636f7272656374204552433230000000000060448201526064016105d2565b61079785856117f0565b5050505050565b6000546001600160a01b031633146107c85760405162461bcd60e51b81526004016105d29061299c565b80600660008282546107da919061290a565b909155505050565b60006105e633848461189f565b60006001600160a01b03821681805b60055481101561083257610814600084836119f6565b61081e908361290a565b91508061082a81612922565b9150506107fe565b5060005b60055481101561086a5761084c60018483611a48565b610856908361293d565b91508061086281612922565b915050610836565b509392505050565b60006001600160a01b03831661089a5760405162461bcd60e51b81526004016105d2906129d1565b6001600160a01b0382166108c05760405162461bcd60e51b81526004016105d290612a15565b6001600160a01b038084169083166000805b600554811015610907576108e96002858584611a85565b6108f3908361290a565b9150806108ff81612922565b9150506108d2565b5060005b600554811015610940576109226003858584611ad3565b61092c908361293d565b91508061093881612922565b91505061090b565b5095945050505050565b60015433906001600160a01b03168114156109625750325b61096e84828585611b27565b50505050565b60015433906001600160a01b031681141561098c5750325b61099884868585611b27565b60006109a48683610a48565b9050828110156109c65760405162461bcd60e51b81526004016105d290612954565b6109d1868385611661565b505050505050565b600080805b600654811015610a11576109f36004826114e5565b6109fd908361290a565b915080610a0981612922565b9150506109de565b5060005b60065481101561065e57610a2a600582611cae565b610a34908361293d565b915080610a4081612922565b915050610a15565b60006001600160a01b038316610a705760405162461bcd60e51b81526004016105d2906129d1565b6001600160a01b038216610a965760405162461bcd60e51b81526004016105d290612a15565b6001600160a01b038084169083166000805b600554811015610add57610abf6002858584611ad3565b610ac9908361290a565b915080610ad581612922565b915050610aa8565b5060005b60055481101561094057610af86003858584611a85565b610b02908361293d565b915080610b0e81612922565b915050610ae1565b60006001600160a01b03821681805b600554811015610b5957610b3b600084836119f6565b610b45908361290a565b915080610b5181612922565b915050610b25565b5060005b60055481101561086a57610b73600184836119f6565b610b7d908361293d565b915080610b8981612922565b915050610b5d565b6000546001600160a01b03163314610bbb5760405162461bcd60e51b81526004016105d29061299c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c2f5760405162461bcd60e51b81526004016105d29061299c565b80600560008282546107da919061290a565b60606008805461048a906128a2565b60006001600160a01b03821681805b600554811015610c9357610c7560008483611a48565b610c7f908361290a565b915080610c8b81612922565b915050610c5f565b5060005b60055481101561086a57610cad60018483611a48565b610cb7908361293d565b915080610cc381612922565b915050610c97565b60005b600082815260046020526040902054811015610d63576000828152600460205260408120805483908110610d0457610d04612a57565b906000526020600020015490508315610d4257600081815260036020526040902054610d329060019061293d565b6000828152600260205260409020555b60009081526003602052604081205580610d5b81612922565b915050610cce565b506000818152600460205260408120610d7b91612660565b5050565b600080610d8c3385610a48565b905082811015610dec5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105d2565b610df7338585611661565b5060019392505050565b60006105e6338484611535565b600080805b600654811015610e4657610e28600482611cae565b610e32908361290a565b915080610e3e81612922565b915050610e13565b5060005b60065481101561065e57610e5f600582611cae565b610e69908361293d565b915080610e7581612922565b915050610e4a565b6000546001600160a01b03163314610ea75760405162461bcd60e51b81526004016105d29061299c565b600160009054906101000a90046001600160a01b03166001600160a01b031663b4c3b7566040518163ffffffff1660e01b815260040160206040518083038186803b158015610ef557600080fd5b505afa158015610f09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2d91906128d7565b610f795760405162461bcd60e51b815260206004820152601e60248201527f4d7573742062652073696e676c6520626c6f636b636861696e2063616c6c000060448201526064016105d2565b60009182526009602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b60006001600160a01b038316610fcf5760405162461bcd60e51b81526004016105d2906129d1565b6001600160a01b038216610ff55760405162461bcd60e51b81526004016105d290612a15565b6001600160a01b038084169083166000805b60055481101561103c5761101e6002858584611ad3565b611028908361290a565b91508061103481612922565b915050611007565b5060005b600554811015610940576110576003858584611ad3565b611061908361293d565b91508061106d81612922565b915050611040565b6000546001600160a01b0316331461109f5760405162461bcd60e51b81526004016105d29061299c565b6001600160a01b0381166111045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105d2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080805b60065481101561119757611179600482611cae565b611183908361290a565b91508061118f81612922565b915050611164565b5060005b60065481101561065e576111b06005826114e5565b6111ba908361293d565b9150806111c681612922565b91505061119b565b60006001600160a01b0383166111f65760405162461bcd60e51b81526004016105d2906129d1565b6001600160a01b03821661121c5760405162461bcd60e51b81526004016105d290612a15565b6001600160a01b038084169083166000805b600554811015611263576112456002858584611a85565b61124f908361290a565b91508061125b81612922565b91505061122e565b5060005b6005548110156109405761127e6003858584611a85565b611288908361293d565b91508061129481612922565b915050611267565b6001600160a01b0383166112c25760405162461bcd60e51b81526004016105d2906129d1565b6001600160a01b0382166112e85760405162461bcd60e51b81526004016105d290612a15565b6001600160a01b038084169083166000805b600554811015611389576113116002858584611cf1565b1561135e5760405162461bcd60e51b815260206004820152601e60248201527f496e63726561736520616c6c6f77616e636520736c6f74206c6f636b6564000060448201526064016105d2565b61136b6002858584611d47565b611375908361290a565b91508061138181612922565b9150506112fa565b5060005b60055481101561141c576113a46003858584611cf1565b156113f15760405162461bcd60e51b815260206004820152601e60248201527f446563726561736520616c6c6f77616e636520736c6f74206c6f636b6564000060448201526064016105d2565b6113fe6003858584611d47565b611408908361293d565b91508061141481612922565b91505061138d565b5083811015611460576000611435600285856000611d47565b905061145a6002858560008661144b8b8861290a565b611455919061293d565b611d8b565b50611490565b83811115611490576000611478600385856000611d47565b905061148e6003858560008961144b888861290a565b505b846001600160a01b0316866001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925866040516114d591815260200190565b60405180910390a3505050505050565b6000808383604051602001611504929190918252602082015260400190565b60408051601f198184030181529181528151602092830120600081815260029093529120549091505b949350505050565b6001600160a01b0383166115995760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105d2565b6001600160a01b0382166115fb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105d2565b6116058382611dcd565b61160f8282611f65565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161165491815260200190565b60405180910390a3505050565b6001600160a01b0383166116875760405162461bcd60e51b81526004016105d2906129d1565b6001600160a01b0382166116ad5760405162461bcd60e51b81526004016105d290612a15565b6001600160a01b038084169083166000805b600554811015611719576116d66003858584611cf1565b611707576001915060006116ed6003868685611d47565b905061170160038686856114558b8761290a565b50611719565b8061171181612922565b9150506116bf565b50806117735760405162461bcd60e51b815260206004820152602360248201527f416c6c20646563726561736520616c6c6f77616e636520736c6f747320696e2060448201526275736560e81b60648201526084016105d2565b846001600160a01b0316866001600160a01b03167fca00ac413b8c2013d4efc4a5ea887318bf432aa5d2a4c8ec87ad5660c28ef5d8866040516114d591815260200190565b600080808036806020605f19820184376000519550602060408203600037600051945060208082036000376000519350505050909192565b6001600160a01b0382166118465760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105d2565b61184f81612089565b6118598282611f65565b6040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b6001600160a01b0383166118c55760405162461bcd60e51b81526004016105d2906129d1565b6001600160a01b0382166118eb5760405162461bcd60e51b81526004016105d290612a15565b6001600160a01b038084169083166000805b600554811015611957576119146002858584611cf1565b6119455760019150600061192b6002868685611d47565b905061193f60028686856114558b8761290a565b50611957565b8061194f81612922565b9150506118fd565b50806119b15760405162461bcd60e51b815260206004820152602360248201527f416c6c20696e63726561736520616c6c6f77616e636520736c6f747320696e2060448201526275736560e81b60648201526084016105d2565b846001600160a01b0316866001600160a01b03167fae0962182a7df59bce5a3518382b8a4a909b354b6ba0f4114215654490399b4b866040516114d591815260200190565b604080516020810185905290810183905260608101829052600090819060800160408051601f198184030181529181528151602092830120600081815260029093529120549091505b95945050505050565b60408051602080820186905281830185905260608083018590528351808403909101815260809092019092528051910120600090611a3f81612143565b6040805160208082018790528183018690526060820185905260808083018590528351808403909101815260a09092019092528051910120600090611ac981612143565b9695505050505050565b60408051602081018690529081018490526060810183905260808101829052600090819060a00160408051601f19818403018152918152815160209283012060008181526002909352912054909150611ac9565b6001546001600160a01b03163314611b815760405162461bcd60e51b815260206004820152601f60248201527f4d7573742062652070617274206f662063726f7373636861696e2063616c6c0060448201526064016105d2565b611b8b838261218b565b6000848152600960205260409020546001600160a01b031680611c035760405162461bcd60e51b815260206004820152602a60248201527f4e6f20455243203230207265676973746572656420666f722072656d6f746520604482015269313637b1b5b1b430b4b760b11b60648201526084016105d2565b600154604080516001600160a01b038681166024830152604480830187905283518084039091018152606490920183526020820180516001600160e01b031663032a7ef560e41b17905291516392b2c33560e01b815291909216916392b2c33591611c75918991869190600401612a6d565b600060405180830381600087803b158015611c8f57600080fd5b505af1158015611ca3573d6000803e3d6000fd5b505050505050505050565b6000808383604051602001611ccd929190918252602082015260400190565b60405160208183030381529060405280519060200120905061152d8160001c612143565b60408051602081018690529081018490526060810183905260808101829052600090819060a00160408051601f198184030181529181528151602092830120600081815260039093529120549091501515611ac9565b6040805160208082018790528183018690526060820185905260808083018590528351808403909101815260a09092019092528051910120600090611ac98161223c565b6040805160208082018890528183018790526060820186905260808083018690528351808403909101815260a090920190925280519101206109d18183612298565b6001600160a01b038216611e2d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a2046726f6d206163636f756e743a207a65726f206164647265736044820152607360f81b60648201526084016105d2565b6000611e38836107ef565b905081811015611ea35760405162461bcd60e51b815260206004820152603060248201527f45524332303a20616d6f756e742065786365656473206d696e2062616c616e6360448201526f329037b310232927a69039b2b73232b960811b60648201526084016105d2565b6001600160a01b0383166000805b600554811015611f0d57611ec760018483612421565b611efb57600191506000611edd60018584612470565b9050611ef560018584611ef08a8661290a565b6124ad565b50611f0d565b80611f0581612922565b915050611eb1565b50806107975760405162461bcd60e51b815260206004820152602160248201527f416c6c2064656372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b60648201526084016105d2565b6001600160a01b038216611fcc5760405162461bcd60e51b815260206004820152602860248201527f45524332303a20726563697069656e74206163636f756e74206973207a65726f604482015267206164647265737360c01b60648201526084016105d2565b6001600160a01b0382166000805b60055481101561203157611ff060008483612421565b61201f5760019150600061200660008584612470565b905061201960008584611ef0898661290a565b50612031565b8061202981612922565b915050611fda565b508061096e5760405162461bcd60e51b815260206004820152602160248201527f416c6c20696e6372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b60648201526084016105d2565b6000805b6006548110156120e6576120a26004826124e8565b6120d4576001915060006120b7600483612536565b90506120ce6004836120c9878561290a565b612579565b506120e6565b806120de81612922565b91505061208d565b5080610d7b5760405162461bcd60e51b815260206004820152602660248201527f416c6c20696e63726561736520746f74616c20737570706c7920736c6f747320604482015265696e2075736560d01b60648201526084016105d2565b60008181526003602052604081205415612178576000828152600360205260409020546121729060019061293d565b92915050565b5060009081526002602052604090205490565b6001600160a01b0382166121eb5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105d2565b6121f4816125ab565b6121fe8282611dcd565b6040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611893565b600081815260036020526040812054156121785760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b65640060448201526064016105d2565b600082815260036020526040902054156122eb5760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b60448201526064016105d2565b60015460408051637bf37a0960e01b815290516000926001600160a01b031691637bf37a09916004808301926020929190829003018186803b15801561233057600080fd5b505afa158015612344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123689190612a97565b905080612382575060009182526002602052604090912055565b600154604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b1580156123c757600080fd5b505af11580156123db573d6000803e3d6000fd5b50505060008281526004602090815260408220805460018181018355918452919092200185905561240d91508361290a565b600084815260036020526040902055505050565b604080516020810185905290810183905260608101829052600090819060800160408051601f198184030181529181528151602092830120600081815260039093529120549091501515611a3f565b60408051602080820186905281830185905260608083018590528351808403909101815260809092019092528051910120600090611a3f8161223c565b604080516020808201879052818301869052606080830186905283518084039091018152608090920190925280519101206107978183612298565b6000808383604051602001612507929190918252602082015260400190565b60408051601f19818403018152918152815160209283012060008181526003909352912054909150151561152d565b6000808383604051602001612555929190918252602082015260400190565b60405160208183030381529060405280519060200120905061152d8160001c61223c565b6040805160208082018690528183018590528251808303840181526060909201909252805191012061096e8183612298565b6000805b600654811015612603576125c46005826124e8565b6125f1576001915060006125d9600583612536565b90506125eb6005836120c9878561290a565b50612603565b806125fb81612922565b9150506125af565b5080610d7b5760405162461bcd60e51b815260206004820152602660248201527f416c6c20646563726561736520746f74616c20737570706c7920736c6f747320604482015265696e2075736560d01b60648201526084016105d2565b508054600082559060005260206000209081019061267e9190612681565b50565b5b808211156126965760008155600101612682565b5090565b6000815180845260005b818110156126c0576020818501810151868301820152016126a4565b818111156126d2576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006126fa602083018461269a565b9392505050565b80356001600160a01b038116811461271857600080fd5b919050565b6000806040838503121561273057600080fd5b61273983612701565b946020939093013593505050565b60008060006060848603121561275c57600080fd5b61276584612701565b925061277360208501612701565b9150604084013590509250925092565b60006020828403121561279557600080fd5b5035919050565b6000602082840312156127ae57600080fd5b6126fa82612701565b600080604083850312156127ca57600080fd5b6127d383612701565b91506127e160208401612701565b90509250929050565b6000806000606084860312156127ff57600080fd5b8335925061277360208501612701565b6000806000806080858703121561282557600080fd5b61282e85612701565b93506020850135925061284360408601612701565b9396929550929360600135925050565b801515811461267e57600080fd5b6000806040838503121561287457600080fd5b823561273981612853565b6000806040838503121561289257600080fd5b823591506127e160208401612701565b600181811c908216806128b657607f821691505b6020821081141561065e57634e487b7160e01b600052602260045260246000fd5b6000602082840312156128e957600080fd5b81516126fa81612853565b634e487b7160e01b600052601160045260246000fd5b6000821982111561291d5761291d6128f4565b500190565b6000600019821415612936576129366128f4565b5060010190565b60008282101561294f5761294f6128f4565b500390565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8381526001600160a01b0383166020820152606060408201819052600090611a3f9083018461269a565b600060208284031215612aa957600080fd5b505191905056fea264697066735822122018265f60253a2400eaec1a023a8e8bacb46a9f3b4e2416502c3bc8b39932fb1264736f6c63430008090033"; public static final String FUNC_ACCOUNTPALLELIZATIONFACTOR = "accountPallelizationFactor"; diff --git a/application/appcontracts/erc20/src/main/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/LockableERC20PresetFixedSupply.java b/application/appcontracts/erc20/src/main/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/LockableERC20PresetFixedSupply.java index 915e97e0..5ed0effa 100644 --- a/application/appcontracts/erc20/src/main/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/LockableERC20PresetFixedSupply.java +++ b/application/appcontracts/erc20/src/main/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/LockableERC20PresetFixedSupply.java @@ -41,7 +41,7 @@ */ @SuppressWarnings("rawtypes") public class LockableERC20PresetFixedSupply extends Contract { - public static final String BINARY = "60806040523480156200001157600080fd5b5060405162002bcc38038062002bcc8339810160408190526200003491620008f5565b600080546001600160a01b031916339081178255604051879287928792839282917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b03929092169190911790558251620000b090600790602086019062000761565b508151620000c690600890602085019062000761565b5050600580555050600a600655620000df8183620000ea565b505050505062000a30565b6001600160a01b038216620001465760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b6200015181620001a2565b6200015d828262000270565b6040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000805b6006548110156200020d57620001be600482620003b0565b620001f857600191506000620001d660048362000403565b9050620001f1600483620001eb87856200098e565b62000448565b506200020d565b806200020481620009e6565b915050620001a6565b50806200026c5760405162461bcd60e51b815260206004820152602660248201527f416c6c20696e63726561736520746f74616c20737570706c7920736c6f747320604482015265696e2075736560d01b60648201526084016200013d565b5050565b6001600160a01b038216620002d95760405162461bcd60e51b815260206004820152602860248201527f45524332303a20726563697069656e74206163636f756e74206973207a65726f604482015267206164647265737360c01b60648201526084016200013d565b6001600160a01b0382166000805b600554811015620003505762000300600084836200047c565b6200033b5760019150600062000318818584620004d0565b905062000334600085846200032e89866200098e565b6200050f565b5062000350565b806200034781620009e6565b915050620002e7565b5080620003aa5760405162461bcd60e51b815260206004820152602160248201527f416c6c20696e6372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b60648201526084016200013d565b50505050565b6000808383604051602001620003d0929190918252602082015260400190565b60408051808303601f1901815291815281516020928301206000818152600390935291205490915015155b949350505050565b600080838360405160200162000423929190918252602082015260400190565b60408051601f1981840301815291905280516020909101209050620003fb8162000553565b60408051602080820186905281830185905282518083038401815260609092019092528051910120620003aa8183620005c4565b604080516020810185905290810183905260608101829052600090819060800160408051808303601f1901815291815281516020928301206000818152600390935291205490915015155b95945050505050565b60408051602080820186905281830185905260608083018590528351808403909101815260809092019092528051910120600090620004c78162000553565b604080516020808201879052818301869052606080830186905283518084039091018152608090920190925280519101206200054c8183620005c4565b5050505050565b60008181526003602052604081205415620005b15760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b65640060448201526064016200013d565b5060009081526002602052604090205490565b60008281526003602052604090205415620006225760405162461bcd60e51b815260206004820152601460248201527f436f6e7472616374206974656d206c6f636b656400000000000000000000000060448201526064016200013d565b60015460408051637bf37a0960e01b815290516000926001600160a01b031691637bf37a09916004808301926020929190829003018186803b1580156200066857600080fd5b505afa1580156200067d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006a39190620008db565b905080620006be575060009182526002602052604090912055565b600154604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b1580156200070457600080fd5b505af115801562000719573d6000803e3d6000fd5b5050506000828152600460209081526040822080546001818101835591845291909220018590556200074d9150836200098e565b600084815260036020526040902055505050565b8280546200076f90620009a9565b90600052602060002090601f016020900481019282620007935760008555620007de565b82601f10620007ae57805160ff1916838001178555620007de565b82800160010185558215620007de579182015b82811115620007de578251825591602001919060010190620007c1565b50620007ec929150620007f0565b5090565b5b80821115620007ec5760008155600101620007f1565b80516001600160a01b03811681146200081f57600080fd5b919050565b600082601f8301126200083657600080fd5b81516001600160401b038082111562000853576200085362000a1a565b604051601f8301601f19908116603f011681019082821181831017156200087e576200087e62000a1a565b816040528381526020925086838588010111156200089b57600080fd5b600091505b83821015620008bf5785820183015181830184015290820190620008a0565b83821115620008d15760008385830101525b9695505050505050565b600060208284031215620008ee57600080fd5b5051919050565b600080600080600060a086880312156200090e57600080fd5b85516001600160401b03808211156200092657600080fd5b6200093489838a0162000824565b965060208801519150808211156200094b57600080fd5b506200095a8882890162000824565b9450506200096b6040870162000807565b925060608601519150620009826080870162000807565b90509295509295909350565b60008219821115620009a457620009a462000a04565b500190565b600181811c90821680620009be57607f821691505b60208210811415620009e057634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415620009fd57620009fd62000a04565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b61218c8062000a406000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80637785eebd116100f9578063a9059cbb11610097578063f2fde38b11610071578063f2fde38b14610375578063f50249fc14610388578063f6aacfb114610390578063fcdb3710146103b257600080fd5b8063a9059cbb14610347578063bd1b1afd1461035a578063dd62ed3e1461036257600080fd5b806395d89b41116100d357806395d89b411461030657806397879e0f1461030e57806399eb5d4c14610321578063a457c2d71461033457600080fd5b80637785eebd146102cf5780637b0919b2146102d85780638da5cb5b146102eb57600080fd5b80633aca71441161016657806359ad3fe01161014057806359ad3fe014610299578063691448c2146102a157806370a08231146102b4578063715018a6146102c757600080fd5b80633aca71441461026a57806340490cc214610273578063409b223e1461028657600080fd5b806323b872dd116101a257806323b872dd14610220578063313ce5671461023357806335c01fc314610242578063395093511461025757600080fd5b806306fdde03146101c9578063095ea7b3146101e757806318160ddd1461020a575b600080fd5b6101d16103c5565b6040516101de9190611f8d565b60405180910390f35b6101fa6101f5366004611ef6565b610457565b60405190151581526020016101de565b610212610539565b6040519081526020016101de565b6101fa61022e366004611eba565b6105ae565b604051601281526020016101de565b610255610250366004611f74565b610642565b005b6101fa610265366004611ef6565b610686565b61021260055481565b610212610281366004611e65565b610693565b610212610294366004611e87565b610716565b6102126107ee565b6102126102af366004611e87565b61085d565b6102126102c2366004611e65565b61092b565b6102556109a6565b61021260065481565b6102556102e6366004611f74565b610a1a565b6000546040516001600160a01b0390911681526020016101de565b6101d1610a56565b61021261031c366004611e65565b610a65565b61025561032f366004611f3d565b610ae0565b6101fa610342366004611ef6565b610b94565b6101fa610355366004611ef6565b610c16565b610212610c23565b610212610370366004611e87565b610c92565b610255610383366004611e65565b610d60565b610212610e4a565b6101fa61039e366004611f74565b600090815260036020526040902054151590565b6102126103c0366004611e87565b610eb9565b6060600780546103d4906120cc565b80601f0160208091040260200160405190810160405280929190818152602001828054610400906120cc565b801561044d5780601f106104225761010080835404028352916020019161044d565b820191906000526020600020905b81548152906001019060200180831161043057829003601f168201915b5050505050905090565b60015460408051635a61dbab60e11b815290516000926001600160a01b03169163b4c3b756916004808301926020929190829003018186803b15801561049c57600080fd5b505afa1580156104b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d49190611f20565b6105255760405162461bcd60e51b815260206004820152601e60248201527f4d7573742062652073696e676c6520626c6f636b636861696e2063616c6c000060448201526064015b60405180910390fd5b610530338484610f87565b50600192915050565b600080805b600654811015610571576105536004826111d0565b61055d908361209d565b91508061056981612101565b91505061053e565b5060005b6006548110156105a85761058a6005826111d0565b61059490836120b5565b9150806105a081612101565b915050610575565b50919050565b60006105bb848484611220565b3360006105c8868361085d565b90508381101561062b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161051c565b61063686838661134c565b50600195945050505050565b6000546001600160a01b0316331461066c5760405162461bcd60e51b815260040161051c90612024565b806006600082825461067e919061209d565b909155505050565b60006105303384846114a3565b60006001600160a01b03821681805b6005548110156106d6576106b8600084836115fa565b6106c2908361209d565b9150806106ce81612101565b9150506106a2565b5060005b60055481101561070e576106f06001848361164c565b6106fa90836120b5565b91508061070681612101565b9150506106da565b509392505050565b60006001600160a01b03831661073e5760405162461bcd60e51b815260040161051c90612059565b6001600160a01b0382166107645760405162461bcd60e51b815260040161051c90611fe2565b6001600160a01b038084169083166000805b6005548110156107ab5761078d6002858584611689565b610797908361209d565b9150806107a381612101565b915050610776565b5060005b6005548110156107e4576107c660038585846116d7565b6107d090836120b5565b9150806107dc81612101565b9150506107af565b5095945050505050565b600080805b600654811015610826576108086004826111d0565b610812908361209d565b91508061081e81612101565b9150506107f3565b5060005b6006548110156105a85761083f60058261172b565b61084990836120b5565b91508061085581612101565b91505061082a565b60006001600160a01b0383166108855760405162461bcd60e51b815260040161051c90612059565b6001600160a01b0382166108ab5760405162461bcd60e51b815260040161051c90611fe2565b6001600160a01b038084169083166000805b6005548110156108f2576108d460028585846116d7565b6108de908361209d565b9150806108ea81612101565b9150506108bd565b5060005b6005548110156107e45761090d6003858584611689565b61091790836120b5565b91508061092381612101565b9150506108f6565b60006001600160a01b03821681805b60055481101561096e57610950600084836115fa565b61095a908361209d565b91508061096681612101565b91505061093a565b5060005b60055481101561070e57610988600184836115fa565b61099290836120b5565b91508061099e81612101565b915050610972565b6000546001600160a01b031633146109d05760405162461bcd60e51b815260040161051c90612024565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a445760405162461bcd60e51b815260040161051c90612024565b806005600082825461067e919061209d565b6060600880546103d4906120cc565b60006001600160a01b03821681805b600554811015610aa857610a8a6000848361164c565b610a94908361209d565b915080610aa081612101565b915050610a74565b5060005b60055481101561070e57610ac26001848361164c565b610acc90836120b5565b915080610ad881612101565b915050610aac565b60005b600082815260046020526040902054811015610b78576000828152600460205260408120805483908110610b1957610b19612132565b906000526020600020015490508315610b5757600081815260036020526040902054610b47906001906120b5565b6000828152600260205260409020555b60009081526003602052604081205580610b7081612101565b915050610ae3565b506000818152600460205260408120610b9091611e0f565b5050565b600080610ba1338561085d565b905082811015610c015760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161051c565b610c0c33858561134c565b5060019392505050565b6000610530338484611220565b600080805b600654811015610c5b57610c3d60048261172b565b610c47908361209d565b915080610c5381612101565b915050610c28565b5060005b6006548110156105a857610c7460058261172b565b610c7e90836120b5565b915080610c8a81612101565b915050610c5f565b60006001600160a01b038316610cba5760405162461bcd60e51b815260040161051c90612059565b6001600160a01b038216610ce05760405162461bcd60e51b815260040161051c90611fe2565b6001600160a01b038084169083166000805b600554811015610d2757610d0960028585846116d7565b610d13908361209d565b915080610d1f81612101565b915050610cf2565b5060005b6005548110156107e457610d4260038585846116d7565b610d4c90836120b5565b915080610d5881612101565b915050610d2b565b6000546001600160a01b03163314610d8a5760405162461bcd60e51b815260040161051c90612024565b6001600160a01b038116610def5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161051c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080805b600654811015610e8257610e6460048261172b565b610e6e908361209d565b915080610e7a81612101565b915050610e4f565b5060005b6006548110156105a857610e9b6005826111d0565b610ea590836120b5565b915080610eb181612101565b915050610e86565b60006001600160a01b038316610ee15760405162461bcd60e51b815260040161051c90612059565b6001600160a01b038216610f075760405162461bcd60e51b815260040161051c90611fe2565b6001600160a01b038084169083166000805b600554811015610f4e57610f306002858584611689565b610f3a908361209d565b915080610f4681612101565b915050610f19565b5060005b6005548110156107e457610f696003858584611689565b610f7390836120b5565b915080610f7f81612101565b915050610f52565b6001600160a01b038316610fad5760405162461bcd60e51b815260040161051c90612059565b6001600160a01b038216610fd35760405162461bcd60e51b815260040161051c90611fe2565b6001600160a01b038084169083166000805b60055481101561107457610ffc600285858461176e565b156110495760405162461bcd60e51b815260206004820152601e60248201527f496e63726561736520616c6c6f77616e636520736c6f74206c6f636b65640000604482015260640161051c565b61105660028585846117c4565b611060908361209d565b91508061106c81612101565b915050610fe5565b5060005b6005548110156111075761108f600385858461176e565b156110dc5760405162461bcd60e51b815260206004820152601e60248201527f446563726561736520616c6c6f77616e636520736c6f74206c6f636b65640000604482015260640161051c565b6110e960038585846117c4565b6110f390836120b5565b9150806110ff81612101565b915050611078565b508381101561114b5760006111206002858560006117c4565b9050611145600285856000866111368b8861209d565b61114091906120b5565b611808565b5061117b565b8381111561117b5760006111636003858560006117c4565b905061117960038585600089611136888861209d565b505b846001600160a01b0316866001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925866040516111c091815260200190565b60405180910390a3505050505050565b60008083836040516020016111ef929190918252602082015260400190565b60408051601f198184030181529181528151602092830120600081815260029093529120549091505b949350505050565b6001600160a01b0383166112845760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161051c565b6001600160a01b0382166112e65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161051c565b6112f08382611852565b6112fa82826119f1565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161133f91815260200190565b60405180910390a3505050565b6001600160a01b0383166113725760405162461bcd60e51b815260040161051c90612059565b6001600160a01b0382166113985760405162461bcd60e51b815260040161051c90611fe2565b6001600160a01b038084169083166000805b600554811015611404576113c1600385858461176e565b6113f2576001915060006113d860038686856117c4565b90506113ec60038686856111408b8761209d565b50611404565b806113fc81612101565b9150506113aa565b508061145e5760405162461bcd60e51b815260206004820152602360248201527f416c6c20646563726561736520616c6c6f77616e636520736c6f747320696e2060448201526275736560e81b606482015260840161051c565b846001600160a01b0316866001600160a01b03167fca00ac413b8c2013d4efc4a5ea887318bf432aa5d2a4c8ec87ad5660c28ef5d8866040516111c091815260200190565b6001600160a01b0383166114c95760405162461bcd60e51b815260040161051c90612059565b6001600160a01b0382166114ef5760405162461bcd60e51b815260040161051c90611fe2565b6001600160a01b038084169083166000805b60055481101561155b57611518600285858461176e565b6115495760019150600061152f60028686856117c4565b905061154360028686856111408b8761209d565b5061155b565b8061155381612101565b915050611501565b50806115b55760405162461bcd60e51b815260206004820152602360248201527f416c6c20696e63726561736520616c6c6f77616e636520736c6f747320696e2060448201526275736560e81b606482015260840161051c565b846001600160a01b0316866001600160a01b03167fae0962182a7df59bce5a3518382b8a4a909b354b6ba0f4114215654490399b4b866040516111c091815260200190565b604080516020810185905290810183905260608101829052600090819060800160408051601f198184030181529181528151602092830120600081815260029093529120549091505b95945050505050565b6040805160208082018690528183018590526060808301859052835180840390910181526080909201909252805191012060009061164381611b1b565b6040805160208082018790528183018690526060820185905260808083018590528351808403909101815260a090920190925280519101206000906116cd81611b1b565b9695505050505050565b60408051602081018690529081018490526060810183905260808101829052600090819060a00160408051601f198184030181529181528151602092830120600081815260029093529120549091506116cd565b600080838360405160200161174a929190918252602082015260400190565b6040516020818303038152906040528051906020012090506112188160001c611b1b565b60408051602081018690529081018490526060810183905260808101829052600090819060a00160408051601f1981840301815291815281516020928301206000818152600390935291205490915015156116cd565b6040805160208082018790528183018690526060820185905260808083018590528351808403909101815260a090920190925280519101206000906116cd81611b63565b6040805160208082018890528183018790526060820186905260808083018690528351808403909101815260a0909201909252805191012061184a8183611bbf565b505050505050565b6001600160a01b0382166118b25760405162461bcd60e51b815260206004820152602160248201527f45524332303a2046726f6d206163636f756e743a207a65726f206164647265736044820152607360f81b606482015260840161051c565b60006118bd83610693565b9050818110156119285760405162461bcd60e51b815260206004820152603060248201527f45524332303a20616d6f756e742065786365656473206d696e2062616c616e6360448201526f329037b310232927a69039b2b73232b960811b606482015260840161051c565b6001600160a01b0383166000805b6005548110156119925761194c60018483611d48565b6119805760019150600061196260018584611d97565b905061197a600185846119758a8661209d565b611dd4565b50611992565b8061198a81612101565b915050611936565b50806119ea5760405162461bcd60e51b815260206004820152602160248201527f416c6c2064656372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b606482015260840161051c565b5050505050565b6001600160a01b038216611a585760405162461bcd60e51b815260206004820152602860248201527f45524332303a20726563697069656e74206163636f756e74206973207a65726f604482015267206164647265737360c01b606482015260840161051c565b6001600160a01b0382166000805b600554811015611abd57611a7c60008483611d48565b611aab57600191506000611a9260008584611d97565b9050611aa560008584611975898661209d565b50611abd565b80611ab581612101565b915050611a66565b5080611b155760405162461bcd60e51b815260206004820152602160248201527f416c6c20696e6372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b606482015260840161051c565b50505050565b60008181526003602052604081205415611b5057600082815260036020526040902054611b4a906001906120b5565b92915050565b5060009081526002602052604090205490565b60008181526003602052604081205415611b505760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b656400604482015260640161051c565b60008281526003602052604090205415611c125760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b604482015260640161051c565b60015460408051637bf37a0960e01b815290516000926001600160a01b031691637bf37a09916004808301926020929190829003018186803b158015611c5757600080fd5b505afa158015611c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8f9190611f5b565b905080611ca9575060009182526002602052604090912055565b600154604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b158015611cee57600080fd5b505af1158015611d02573d6000803e3d6000fd5b505050600082815260046020908152604082208054600181810183559184529190922001859055611d3491508361209d565b600084815260036020526040902055505050565b604080516020810185905290810183905260608101829052600090819060800160408051601f198184030181529181528151602092830120600081815260039093529120549091501515611643565b6040805160208082018690528183018590526060808301859052835180840390910181526080909201909252805191012060009061164381611b63565b604080516020808201879052818301869052606080830186905283518084039091018152608090920190925280519101206119ea8183611bbf565b5080546000825590600052602060002090810190611e2d9190611e30565b50565b5b80821115611e455760008155600101611e31565b5090565b80356001600160a01b0381168114611e6057600080fd5b919050565b600060208284031215611e7757600080fd5b611e8082611e49565b9392505050565b60008060408385031215611e9a57600080fd5b611ea383611e49565b9150611eb160208401611e49565b90509250929050565b600080600060608486031215611ecf57600080fd5b611ed884611e49565b9250611ee660208501611e49565b9150604084013590509250925092565b60008060408385031215611f0957600080fd5b611f1283611e49565b946020939093013593505050565b600060208284031215611f3257600080fd5b8151611e8081612148565b60008060408385031215611f5057600080fd5b8235611f1281612148565b600060208284031215611f6d57600080fd5b5051919050565b600060208284031215611f8657600080fd5b5035919050565b600060208083528351808285015260005b81811015611fba57858101830151858201604001528201611f9e565b81811115611fcc576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b600082198211156120b0576120b061211c565b500190565b6000828210156120c7576120c761211c565b500390565b600181811c908216806120e057607f821691505b602082108114156105a857634e487b7160e01b600052602260045260246000fd5b60006000198214156121155761211561211c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b8015158114611e2d57600080fdfea264697066735822122053c70b665489a5caf0e09cc4f1991788bba1df6a88de67417a47cd93e09fde9064736f6c63430008050033"; + public static final String BINARY = "60806040523480156200001157600080fd5b5060405162002bcc38038062002bcc8339810160408190526200003491620008f1565b600080546001600160a01b031916339081178255604051879287928792839282917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b03929092169190911790558251620000b090600790602086019062000761565b508151620000c690600890602085019062000761565b5050600580555050600a600655620000df8183620000ea565b505050505062000a30565b6001600160a01b038216620001465760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b6200015181620001a2565b6200015d828262000270565b6040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000805b6006548110156200020d57620001be600482620003b0565b620001f857600191506000620001d660048362000403565b9050620001f1600483620001eb8785620009a0565b62000448565b506200020d565b806200020481620009bb565b915050620001a6565b50806200026c5760405162461bcd60e51b815260206004820152602660248201527f416c6c20696e63726561736520746f74616c20737570706c7920736c6f747320604482015265696e2075736560d01b60648201526084016200013d565b5050565b6001600160a01b038216620002d95760405162461bcd60e51b815260206004820152602860248201527f45524332303a20726563697069656e74206163636f756e74206973207a65726f604482015267206164647265737360c01b60648201526084016200013d565b6001600160a01b0382166000805b600554811015620003505762000300600084836200047c565b6200033b5760019150600062000318818584620004d0565b905062000334600085846200032e8986620009a0565b6200050f565b5062000350565b806200034781620009bb565b915050620002e7565b5080620003aa5760405162461bcd60e51b815260206004820152602160248201527f416c6c20696e6372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b60648201526084016200013d565b50505050565b6000808383604051602001620003d0929190918252602082015260400190565b60408051808303601f1901815291815281516020928301206000818152600390935291205490915015155b949350505050565b600080838360405160200162000423929190918252602082015260400190565b60408051601f1981840301815291905280516020909101209050620003fb8162000553565b60408051602080820186905281830185905282518083038401815260609092019092528051910120620003aa8183620005c4565b604080516020810185905290810183905260608101829052600090819060800160408051808303601f1901815291815281516020928301206000818152600390935291205490915015155b95945050505050565b60408051602080820186905281830185905260608083018590528351808403909101815260809092019092528051910120600090620004c78162000553565b604080516020808201879052818301869052606080830186905283518084039091018152608090920190925280519101206200054c8183620005c4565b5050505050565b60008181526003602052604081205415620005b15760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b65640060448201526064016200013d565b5060009081526002602052604090205490565b60008281526003602052604090205415620006225760405162461bcd60e51b815260206004820152601460248201527f436f6e7472616374206974656d206c6f636b656400000000000000000000000060448201526064016200013d565b60015460408051637bf37a0960e01b815290516000926001600160a01b031691637bf37a09916004808301926020929190829003018186803b1580156200066857600080fd5b505afa1580156200067d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006a39190620009d9565b905080620006be575060009182526002602052604090912055565b600154604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b1580156200070457600080fd5b505af115801562000719573d6000803e3d6000fd5b5050506000828152600460209081526040822080546001818101835591845291909220018590556200074d915083620009a0565b600084815260036020526040902055505050565b8280546200076f90620009f3565b90600052602060002090601f016020900481019282620007935760008555620007de565b82601f10620007ae57805160ff1916838001178555620007de565b82800160010185558215620007de579182015b82811115620007de578251825591602001919060010190620007c1565b50620007ec929150620007f0565b5090565b5b80821115620007ec5760008155600101620007f1565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200082f57600080fd5b81516001600160401b03808211156200084c576200084c62000807565b604051601f8301601f19908116603f0116810190828211818310171562000877576200087762000807565b816040528381526020925086838588010111156200089457600080fd5b600091505b83821015620008b8578582018301518183018401529082019062000899565b83821115620008ca5760008385830101525b9695505050505050565b80516001600160a01b0381168114620008ec57600080fd5b919050565b600080600080600060a086880312156200090a57600080fd5b85516001600160401b03808211156200092257600080fd5b6200093089838a016200081d565b965060208801519150808211156200094757600080fd5b5062000956888289016200081d565b9450506200096760408701620008d4565b9250606086015191506200097e60808701620008d4565b90509295509295909350565b634e487b7160e01b600052601160045260246000fd5b60008219821115620009b657620009b66200098a565b500190565b6000600019821415620009d257620009d26200098a565b5060010190565b600060208284031215620009ec57600080fd5b5051919050565b600181811c9082168062000a0857607f821691505b6020821081141562000a2a57634e487b7160e01b600052602260045260246000fd5b50919050565b61218c8062000a406000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80637785eebd116100f9578063a9059cbb11610097578063f2fde38b11610071578063f2fde38b14610375578063f50249fc14610388578063f6aacfb114610390578063fcdb3710146103b257600080fd5b8063a9059cbb14610347578063bd1b1afd1461035a578063dd62ed3e1461036257600080fd5b806395d89b41116100d357806395d89b411461030657806397879e0f1461030e57806399eb5d4c14610321578063a457c2d71461033457600080fd5b80637785eebd146102cf5780637b0919b2146102d85780638da5cb5b146102eb57600080fd5b80633aca71441161016657806359ad3fe01161014057806359ad3fe014610299578063691448c2146102a157806370a08231146102b4578063715018a6146102c757600080fd5b80633aca71441461026a57806340490cc214610273578063409b223e1461028657600080fd5b806323b872dd116101a257806323b872dd14610220578063313ce5671461023357806335c01fc314610242578063395093511461025757600080fd5b806306fdde03146101c9578063095ea7b3146101e757806318160ddd1461020a575b600080fd5b6101d16103c5565b6040516101de9190611e49565b60405180910390f35b6101fa6101f5366004611eba565b610457565b60405190151581526020016101de565b610212610539565b6040519081526020016101de565b6101fa61022e366004611ee4565b6105ae565b604051601281526020016101de565b610255610250366004611f20565b610642565b005b6101fa610265366004611eba565b610686565b61021260055481565b610212610281366004611f39565b610693565b610212610294366004611f5b565b610716565b6102126107ee565b6102126102af366004611f5b565b61085d565b6102126102c2366004611f39565b61092b565b6102556109a6565b61021260065481565b6102556102e6366004611f20565b610a1a565b6000546040516001600160a01b0390911681526020016101de565b6101d1610a56565b61021261031c366004611f39565b610a65565b61025561032f366004611f9c565b610ae0565b6101fa610342366004611eba565b610b94565b6101fa610355366004611eba565b610c16565b610212610c23565b610212610370366004611f5b565b610c92565b610255610383366004611f39565b610d60565b610212610e4a565b6101fa61039e366004611f20565b600090815260036020526040902054151590565b6102126103c0366004611f5b565b610eb9565b6060600780546103d490611fba565b80601f016020809104026020016040519081016040528092919081815260200182805461040090611fba565b801561044d5780601f106104225761010080835404028352916020019161044d565b820191906000526020600020905b81548152906001019060200180831161043057829003601f168201915b5050505050905090565b60015460408051635a61dbab60e11b815290516000926001600160a01b03169163b4c3b756916004808301926020929190829003018186803b15801561049c57600080fd5b505afa1580156104b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d49190611fef565b6105255760405162461bcd60e51b815260206004820152601e60248201527f4d7573742062652073696e676c6520626c6f636b636861696e2063616c6c000060448201526064015b60405180910390fd5b610530338484610f87565b50600192915050565b600080805b600654811015610571576105536004826111d0565b61055d9083612022565b9150806105698161203a565b91505061053e565b5060005b6006548110156105a85761058a6005826111d0565b6105949083612055565b9150806105a08161203a565b915050610575565b50919050565b60006105bb848484611220565b3360006105c8868361085d565b90508381101561062b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161051c565b61063686838661134c565b50600195945050505050565b6000546001600160a01b0316331461066c5760405162461bcd60e51b815260040161051c9061206c565b806006600082825461067e9190612022565b909155505050565b60006105303384846114a3565b60006001600160a01b03821681805b6005548110156106d6576106b8600084836115fa565b6106c29083612022565b9150806106ce8161203a565b9150506106a2565b5060005b60055481101561070e576106f06001848361164c565b6106fa9083612055565b9150806107068161203a565b9150506106da565b509392505050565b60006001600160a01b03831661073e5760405162461bcd60e51b815260040161051c906120a1565b6001600160a01b0382166107645760405162461bcd60e51b815260040161051c906120e5565b6001600160a01b038084169083166000805b6005548110156107ab5761078d6002858584611689565b6107979083612022565b9150806107a38161203a565b915050610776565b5060005b6005548110156107e4576107c660038585846116d7565b6107d09083612055565b9150806107dc8161203a565b9150506107af565b5095945050505050565b600080805b600654811015610826576108086004826111d0565b6108129083612022565b91508061081e8161203a565b9150506107f3565b5060005b6006548110156105a85761083f60058261172b565b6108499083612055565b9150806108558161203a565b91505061082a565b60006001600160a01b0383166108855760405162461bcd60e51b815260040161051c906120a1565b6001600160a01b0382166108ab5760405162461bcd60e51b815260040161051c906120e5565b6001600160a01b038084169083166000805b6005548110156108f2576108d460028585846116d7565b6108de9083612022565b9150806108ea8161203a565b9150506108bd565b5060005b6005548110156107e45761090d6003858584611689565b6109179083612055565b9150806109238161203a565b9150506108f6565b60006001600160a01b03821681805b60055481101561096e57610950600084836115fa565b61095a9083612022565b9150806109668161203a565b91505061093a565b5060005b60055481101561070e57610988600184836115fa565b6109929083612055565b91508061099e8161203a565b915050610972565b6000546001600160a01b031633146109d05760405162461bcd60e51b815260040161051c9061206c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a445760405162461bcd60e51b815260040161051c9061206c565b806005600082825461067e9190612022565b6060600880546103d490611fba565b60006001600160a01b03821681805b600554811015610aa857610a8a6000848361164c565b610a949083612022565b915080610aa08161203a565b915050610a74565b5060005b60055481101561070e57610ac26001848361164c565b610acc9083612055565b915080610ad88161203a565b915050610aac565b60005b600082815260046020526040902054811015610b78576000828152600460205260408120805483908110610b1957610b19612127565b906000526020600020015490508315610b5757600081815260036020526040902054610b4790600190612055565b6000828152600260205260409020555b60009081526003602052604081205580610b708161203a565b915050610ae3565b506000818152600460205260408120610b9091611e0f565b5050565b600080610ba1338561085d565b905082811015610c015760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161051c565b610c0c33858561134c565b5060019392505050565b6000610530338484611220565b600080805b600654811015610c5b57610c3d60048261172b565b610c479083612022565b915080610c538161203a565b915050610c28565b5060005b6006548110156105a857610c7460058261172b565b610c7e9083612055565b915080610c8a8161203a565b915050610c5f565b60006001600160a01b038316610cba5760405162461bcd60e51b815260040161051c906120a1565b6001600160a01b038216610ce05760405162461bcd60e51b815260040161051c906120e5565b6001600160a01b038084169083166000805b600554811015610d2757610d0960028585846116d7565b610d139083612022565b915080610d1f8161203a565b915050610cf2565b5060005b6005548110156107e457610d4260038585846116d7565b610d4c9083612055565b915080610d588161203a565b915050610d2b565b6000546001600160a01b03163314610d8a5760405162461bcd60e51b815260040161051c9061206c565b6001600160a01b038116610def5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161051c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080805b600654811015610e8257610e6460048261172b565b610e6e9083612022565b915080610e7a8161203a565b915050610e4f565b5060005b6006548110156105a857610e9b6005826111d0565b610ea59083612055565b915080610eb18161203a565b915050610e86565b60006001600160a01b038316610ee15760405162461bcd60e51b815260040161051c906120a1565b6001600160a01b038216610f075760405162461bcd60e51b815260040161051c906120e5565b6001600160a01b038084169083166000805b600554811015610f4e57610f306002858584611689565b610f3a9083612022565b915080610f468161203a565b915050610f19565b5060005b6005548110156107e457610f696003858584611689565b610f739083612055565b915080610f7f8161203a565b915050610f52565b6001600160a01b038316610fad5760405162461bcd60e51b815260040161051c906120a1565b6001600160a01b038216610fd35760405162461bcd60e51b815260040161051c906120e5565b6001600160a01b038084169083166000805b60055481101561107457610ffc600285858461176e565b156110495760405162461bcd60e51b815260206004820152601e60248201527f496e63726561736520616c6c6f77616e636520736c6f74206c6f636b65640000604482015260640161051c565b61105660028585846117c4565b6110609083612022565b91508061106c8161203a565b915050610fe5565b5060005b6005548110156111075761108f600385858461176e565b156110dc5760405162461bcd60e51b815260206004820152601e60248201527f446563726561736520616c6c6f77616e636520736c6f74206c6f636b65640000604482015260640161051c565b6110e960038585846117c4565b6110f39083612055565b9150806110ff8161203a565b915050611078565b508381101561114b5760006111206002858560006117c4565b9050611145600285856000866111368b88612022565b6111409190612055565b611808565b5061117b565b8381111561117b5760006111636003858560006117c4565b9050611179600385856000896111368888612022565b505b846001600160a01b0316866001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925866040516111c091815260200190565b60405180910390a3505050505050565b60008083836040516020016111ef929190918252602082015260400190565b60408051601f198184030181529181528151602092830120600081815260029093529120549091505b949350505050565b6001600160a01b0383166112845760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161051c565b6001600160a01b0382166112e65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161051c565b6112f08382611852565b6112fa82826119f1565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161133f91815260200190565b60405180910390a3505050565b6001600160a01b0383166113725760405162461bcd60e51b815260040161051c906120a1565b6001600160a01b0382166113985760405162461bcd60e51b815260040161051c906120e5565b6001600160a01b038084169083166000805b600554811015611404576113c1600385858461176e565b6113f2576001915060006113d860038686856117c4565b90506113ec60038686856111408b87612022565b50611404565b806113fc8161203a565b9150506113aa565b508061145e5760405162461bcd60e51b815260206004820152602360248201527f416c6c20646563726561736520616c6c6f77616e636520736c6f747320696e2060448201526275736560e81b606482015260840161051c565b846001600160a01b0316866001600160a01b03167fca00ac413b8c2013d4efc4a5ea887318bf432aa5d2a4c8ec87ad5660c28ef5d8866040516111c091815260200190565b6001600160a01b0383166114c95760405162461bcd60e51b815260040161051c906120a1565b6001600160a01b0382166114ef5760405162461bcd60e51b815260040161051c906120e5565b6001600160a01b038084169083166000805b60055481101561155b57611518600285858461176e565b6115495760019150600061152f60028686856117c4565b905061154360028686856111408b87612022565b5061155b565b806115538161203a565b915050611501565b50806115b55760405162461bcd60e51b815260206004820152602360248201527f416c6c20696e63726561736520616c6c6f77616e636520736c6f747320696e2060448201526275736560e81b606482015260840161051c565b846001600160a01b0316866001600160a01b03167fae0962182a7df59bce5a3518382b8a4a909b354b6ba0f4114215654490399b4b866040516111c091815260200190565b604080516020810185905290810183905260608101829052600090819060800160408051601f198184030181529181528151602092830120600081815260029093529120549091505b95945050505050565b6040805160208082018690528183018590526060808301859052835180840390910181526080909201909252805191012060009061164381611b1b565b6040805160208082018790528183018690526060820185905260808083018590528351808403909101815260a090920190925280519101206000906116cd81611b1b565b9695505050505050565b60408051602081018690529081018490526060810183905260808101829052600090819060a00160408051601f198184030181529181528151602092830120600081815260029093529120549091506116cd565b600080838360405160200161174a929190918252602082015260400190565b6040516020818303038152906040528051906020012090506112188160001c611b1b565b60408051602081018690529081018490526060810183905260808101829052600090819060a00160408051601f1981840301815291815281516020928301206000818152600390935291205490915015156116cd565b6040805160208082018790528183018690526060820185905260808083018590528351808403909101815260a090920190925280519101206000906116cd81611b63565b6040805160208082018890528183018790526060820186905260808083018690528351808403909101815260a0909201909252805191012061184a8183611bbf565b505050505050565b6001600160a01b0382166118b25760405162461bcd60e51b815260206004820152602160248201527f45524332303a2046726f6d206163636f756e743a207a65726f206164647265736044820152607360f81b606482015260840161051c565b60006118bd83610693565b9050818110156119285760405162461bcd60e51b815260206004820152603060248201527f45524332303a20616d6f756e742065786365656473206d696e2062616c616e6360448201526f329037b310232927a69039b2b73232b960811b606482015260840161051c565b6001600160a01b0383166000805b6005548110156119925761194c60018483611d48565b6119805760019150600061196260018584611d97565b905061197a600185846119758a86612022565b611dd4565b50611992565b8061198a8161203a565b915050611936565b50806119ea5760405162461bcd60e51b815260206004820152602160248201527f416c6c2064656372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b606482015260840161051c565b5050505050565b6001600160a01b038216611a585760405162461bcd60e51b815260206004820152602860248201527f45524332303a20726563697069656e74206163636f756e74206973207a65726f604482015267206164647265737360c01b606482015260840161051c565b6001600160a01b0382166000805b600554811015611abd57611a7c60008483611d48565b611aab57600191506000611a9260008584611d97565b9050611aa5600085846119758986612022565b50611abd565b80611ab58161203a565b915050611a66565b5080611b155760405162461bcd60e51b815260206004820152602160248201527f416c6c20696e6372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b606482015260840161051c565b50505050565b60008181526003602052604081205415611b5057600082815260036020526040902054611b4a90600190612055565b92915050565b5060009081526002602052604090205490565b60008181526003602052604081205415611b505760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b656400604482015260640161051c565b60008281526003602052604090205415611c125760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b604482015260640161051c565b60015460408051637bf37a0960e01b815290516000926001600160a01b031691637bf37a09916004808301926020929190829003018186803b158015611c5757600080fd5b505afa158015611c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8f919061213d565b905080611ca9575060009182526002602052604090912055565b600154604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b158015611cee57600080fd5b505af1158015611d02573d6000803e3d6000fd5b505050600082815260046020908152604082208054600181810183559184529190922001859055611d34915083612022565b600084815260036020526040902055505050565b604080516020810185905290810183905260608101829052600090819060800160408051601f198184030181529181528151602092830120600081815260039093529120549091501515611643565b6040805160208082018690528183018590526060808301859052835180840390910181526080909201909252805191012060009061164381611b63565b604080516020808201879052818301869052606080830186905283518084039091018152608090920190925280519101206119ea8183611bbf565b5080546000825590600052602060002090810190611e2d9190611e30565b50565b5b80821115611e455760008155600101611e31565b5090565b600060208083528351808285015260005b81811015611e7657858101830151858201604001528201611e5a565b81811115611e88576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114611eb557600080fd5b919050565b60008060408385031215611ecd57600080fd5b611ed683611e9e565b946020939093013593505050565b600080600060608486031215611ef957600080fd5b611f0284611e9e565b9250611f1060208501611e9e565b9150604084013590509250925092565b600060208284031215611f3257600080fd5b5035919050565b600060208284031215611f4b57600080fd5b611f5482611e9e565b9392505050565b60008060408385031215611f6e57600080fd5b611f7783611e9e565b9150611f8560208401611e9e565b90509250929050565b8015158114611e2d57600080fd5b60008060408385031215611faf57600080fd5b8235611ed681611f8e565b600181811c90821680611fce57607f821691505b602082108114156105a857634e487b7160e01b600052602260045260246000fd5b60006020828403121561200157600080fd5b8151611f5481611f8e565b634e487b7160e01b600052601160045260246000fd5b600082198211156120355761203561200c565b500190565b600060001982141561204e5761204e61200c565b5060010190565b6000828210156120675761206761200c565b500390565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561214f57600080fd5b505191905056fea2646970667358221220aa4e78677528bc6a75ca2bf708284c4bc01f99ae2221d5a2b6074e67a0e8042264736f6c63430008090033"; public static final String FUNC_ACCOUNTPALLELIZATIONFACTOR = "accountPallelizationFactor"; diff --git a/application/appcontracts/erc20/src/main/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/TraditionalERC20Adaptor.java b/application/appcontracts/erc20/src/main/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/TraditionalERC20Adaptor.java index 446e0b88..92c5b42c 100644 --- a/application/appcontracts/erc20/src/main/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/TraditionalERC20Adaptor.java +++ b/application/appcontracts/erc20/src/main/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/TraditionalERC20Adaptor.java @@ -41,7 +41,7 @@ */ @SuppressWarnings("rawtypes") public class TraditionalERC20Adaptor extends Contract { - public static final String BINARY = "60806040523480156200001157600080fd5b506040516200327638038062003276833981016040819052620000349162000288565b83838382828280600033600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b03929092169190911790558251620000bd9060079060208601906200010e565b508151620000d39060089060208501906200010e565b5050600580555050600a600681905580546001600160a01b0319166001600160a01b039590951694909417909355506200036a945050505050565b8280546200011c9062000317565b90600052602060002090601f0160209004810192826200014057600085556200018b565b82601f106200015b57805160ff19168380011785556200018b565b828001600101855582156200018b579182015b828111156200018b5782518255916020019190600101906200016e565b50620001999291506200019d565b5090565b5b808211156200019957600081556001016200019e565b80516001600160a01b0381168114620001cc57600080fd5b919050565b600082601f830112620001e357600080fd5b81516001600160401b038082111562000200576200020062000354565b604051601f8301601f19908116603f011681019082821181831017156200022b576200022b62000354565b816040528381526020925086838588010111156200024857600080fd5b600091505b838210156200026c57858201830151818301840152908201906200024d565b838211156200027e5760008385830101525b9695505050505050565b600080600080608085870312156200029f57600080fd5b84516001600160401b0380821115620002b757600080fd5b620002c588838901620001d1565b95506020870151915080821115620002dc57600080fd5b50620002eb87828801620001d1565b935050620002fc60408601620001b4565b91506200030c60608601620001b4565b905092959194509250565b600181811c908216806200032c57607f821691505b602082108114156200034e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b612efc806200037a6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c806370a0823111610130578063a457c2d7116100b8578063dd62ed3e1161007c578063dd62ed3e14610494578063f2fde38b146104a7578063f50249fc146104ba578063f6aacfb1146104c2578063fcdb3710146104e457600080fd5b8063a457c2d71461042a578063a9059cbb1461043d578063bd1b1afd14610450578063be42152f14610458578063d71aaa421461046b57600080fd5b8063809a827b116100ff578063809a827b146103d85780638da5cb5b146103eb57806395d89b41146103fc57806397879e0f1461040457806399eb5d4c1461041757600080fd5b806370a08231146103a1578063715018a6146103b45780637785eebd146103bc5780637b0919b2146103c557600080fd5b80633aca7144116101b35780634f6e9e73116101825780634f6e9e731461034d5780635388a3ae1461036057806358e668731461037357806359ad3fe014610386578063691448c21461038e57600080fd5b80633aca71441461030b57806340490cc214610314578063409b223e1461032757806342b9e74f1461033a57600080fd5b806323b872dd116101fa57806323b872dd146102ae578063313ce567146102c157806332a7ef50146102d057806335c01fc3146102e557806339509351146102f857600080fd5b806306fdde031461022c578063095ea7b31461024a57806318160ddd1461026d5780631e543b9114610283575b600080fd5b6102346104f7565b6040516102419190612c96565b60405180910390f35b61025d610258366004612b26565b610589565b6040519015158152602001610241565b61027561063f565b604051908152602001610241565b600a54610296906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b61025d6102bc366004612aea565b6106b4565b60405160128152602001610241565b6102e36102de366004612b26565b610707565b005b6102e36102f3366004612be8565b6107ee565b61025d610306366004612b26565b610832565b61027560055481565b610275610322366004612a95565b61083f565b610275610335366004612ab7565b6108c2565b6102e3610348366004612c24565b61099a565b6102e361035b366004612b50565b6109c4565b6102e361036e366004612b26565b610a29565b6102e3610381366004612be8565b610b77565b610275610caa565b61027561039c366004612ab7565b610d19565b6102756103af366004612a95565b610de7565b6102e3610e62565b61027560065481565b6102e36103d3366004612be8565b610ed6565b6102e36103e6366004612be8565b610f12565b6000546001600160a01b0316610296565b610234611054565b610275610412366004612a95565b611063565b6102e3610425366004612bb1565b6110de565b61025d610438366004612b26565b61118e565b61025d61044b366004612b26565b611210565b61027561121d565b6102e3610466366004612c01565b61128c565b610296610479366004612be8565b6009602052600090815260409020546001600160a01b031681565b6102756104a2366004612ab7565b611386565b6102e36104b5366004612a95565b611454565b61027561153e565b61025d6104d0366004612be8565b600090815260036020526040902054151590565b6102756104f2366004612ab7565b6115ad565b60606007805461050690612e3c565b80601f016020809104026020016040519081016040528092919081815260200182805461053290612e3c565b801561057f5780601f106105545761010080835404028352916020019161057f565b820191906000526020600020905b81548152906001019060200180831161056257829003601f168201915b5050505050905090565b60015460408051635a61dbab60e11b815290516000926001600160a01b03169163b4c3b756916004808301926020929190829003018186803b1580156105ce57600080fd5b505afa1580156105e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106069190612b94565b61062b5760405162461bcd60e51b815260040161062290612ca9565b60405180910390fd5b61063633848461167b565b50600192915050565b600080805b600654811015610677576106596004826118c4565b6106639083612e0d565b91508061066f81612e71565b915050610644565b5060005b6006548110156106ae576106906005826118c4565b61069a9083612e25565b9150806106a681612e71565b91505061067b565b50919050565b60006106c1848484611914565b3360006106ce8683610d19565b9050838110156106f05760405162461bcd60e51b815260040161062290612d22565b6106fb868386611a40565b50600195945050505050565b6001546001600160a01b031633146107615760405162461bcd60e51b815260206004820152601f60248201527f4d7573742062652070617274206f662063726f7373636861696e2063616c6c006044820152606401610622565b60008061076c611b97565b60008281526009602052604090205491945092508291506001600160a01b038083169116146107dd5760405162461bcd60e51b815260206004820152601b60248201527f536f75726365206973206e6f7420636f727265637420455243323000000000006044820152606401610622565b6107e78585611bcf565b5050505050565b6000546001600160a01b031633146108185760405162461bcd60e51b815260040161062290612d6a565b806006600082825461082a9190612e0d565b909155505050565b6000610636338484611c7e565b60006001600160a01b03821681805b6005548110156108825761086460008483611dd5565b61086e9083612e0d565b91508061087a81612e71565b91505061084e565b5060005b6005548110156108ba5761089c60018483611e27565b6108a69083612e25565b9150806108b281612e71565b915050610886565b509392505050565b60006001600160a01b0383166108ea5760405162461bcd60e51b815260040161062290612d9f565b6001600160a01b0382166109105760405162461bcd60e51b815260040161062290612ce0565b6001600160a01b038084169083166000805b600554811015610957576109396002858584611e64565b6109439083612e0d565b91508061094f81612e71565b915050610922565b5060005b600554811015610990576109726003858584611eb2565b61097c9083612e25565b91508061098881612e71565b91505061095b565b5095945050505050565b60015433906001600160a01b03168114156109b25750325b6109be84828585611f06565b50505050565b60015433906001600160a01b03168114156109dc5750325b6109e884868585611f06565b60006109f48683610d19565b905082811015610a165760405162461bcd60e51b815260040161062290612d22565b610a21868385611a40565b505050505050565b600160009054906101000a90046001600160a01b03166001600160a01b031663b4c3b7566040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7757600080fd5b505afa158015610a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaf9190612b94565b610acb5760405162461bcd60e51b815260040161062290612ca9565b600033600a546040516323b872dd60e01b81526001600160a01b038084166004830152306024830152604482018690529293509116906323b872dd90606401602060405180830381600087803b158015610b2457600080fd5b505af1158015610b38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5c9190612b94565b50610b678183611bcf565b610b7281848461167b565b505050565b600160009054906101000a90046001600160a01b03166001600160a01b031663b4c3b7566040518163ffffffff1660e01b815260040160206040518083038186803b158015610bc557600080fd5b505afa158015610bd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfd9190612b94565b610c195760405162461bcd60e51b815260040161062290612ca9565b33610c24818361208d565b600a5460405163a9059cbb60e01b81526001600160a01b038381166004830152602482018590529091169063a9059cbb90604401602060405180830381600087803b158015610c7257600080fd5b505af1158015610c86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b729190612b94565b600080805b600654811015610ce257610cc46004826118c4565b610cce9083612e0d565b915080610cda81612e71565b915050610caf565b5060005b6006548110156106ae57610cfb60058261213e565b610d059083612e25565b915080610d1181612e71565b915050610ce6565b60006001600160a01b038316610d415760405162461bcd60e51b815260040161062290612d9f565b6001600160a01b038216610d675760405162461bcd60e51b815260040161062290612ce0565b6001600160a01b038084169083166000805b600554811015610dae57610d906002858584611eb2565b610d9a9083612e0d565b915080610da681612e71565b915050610d79565b5060005b60055481101561099057610dc96003858584611e64565b610dd39083612e25565b915080610ddf81612e71565b915050610db2565b60006001600160a01b03821681805b600554811015610e2a57610e0c60008483611dd5565b610e169083612e0d565b915080610e2281612e71565b915050610df6565b5060005b6005548110156108ba57610e4460018483611dd5565b610e4e9083612e25565b915080610e5a81612e71565b915050610e2e565b6000546001600160a01b03163314610e8c5760405162461bcd60e51b815260040161062290612d6a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610f005760405162461bcd60e51b815260040161062290612d6a565b806005600082825461082a9190612e0d565b600160009054906101000a90046001600160a01b03166001600160a01b031663b4c3b7566040518163ffffffff1660e01b815260040160206040518083038186803b158015610f6057600080fd5b505afa158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f989190612b94565b610fb45760405162461bcd60e51b815260040161062290612ca9565b600033600a546040516323b872dd60e01b81526001600160a01b038084166004830152306024830152604482018690529293509116906323b872dd90606401602060405180830381600087803b15801561100d57600080fd5b505af1158015611021573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110459190612b94565b506110508183611bcf565b5050565b60606008805461050690612e3c565b60006001600160a01b03821681805b6005548110156110a65761108860008483611e27565b6110929083612e0d565b91508061109e81612e71565b915050611072565b5060005b6005548110156108ba576110c060018483611e27565b6110ca9083612e25565b9150806110d681612e71565b9150506110aa565b60005b60008281526004602052604090205481101561117657600082815260046020526040812080548390811061111757611117612ea2565b9060005260206000200154905083156111555760008181526003602052604090205461114590600190612e25565b6000828152600260205260409020555b6000908152600360205260408120558061116e81612e71565b9150506110e1565b50600081815260046020526040812061105091612a3f565b60008061119b3385610d19565b9050828110156111fb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610622565b611206338585611a40565b5060019392505050565b6000610636338484611914565b600080805b6006548110156112555761123760048261213e565b6112419083612e0d565b91508061124d81612e71565b915050611222565b5060005b6006548110156106ae5761126e60058261213e565b6112789083612e25565b91508061128481612e71565b915050611259565b6000546001600160a01b031633146112b65760405162461bcd60e51b815260040161062290612d6a565b600160009054906101000a90046001600160a01b03166001600160a01b031663b4c3b7566040518163ffffffff1660e01b815260040160206040518083038186803b15801561130457600080fd5b505afa158015611318573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133c9190612b94565b6113585760405162461bcd60e51b815260040161062290612ca9565b60009182526009602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b60006001600160a01b0383166113ae5760405162461bcd60e51b815260040161062290612d9f565b6001600160a01b0382166113d45760405162461bcd60e51b815260040161062290612ce0565b6001600160a01b038084169083166000805b60055481101561141b576113fd6002858584611eb2565b6114079083612e0d565b91508061141381612e71565b9150506113e6565b5060005b600554811015610990576114366003858584611eb2565b6114409083612e25565b91508061144c81612e71565b91505061141f565b6000546001600160a01b0316331461147e5760405162461bcd60e51b815260040161062290612d6a565b6001600160a01b0381166114e35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610622565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080805b6006548110156115765761155860048261213e565b6115629083612e0d565b91508061156e81612e71565b915050611543565b5060005b6006548110156106ae5761158f6005826118c4565b6115999083612e25565b9150806115a581612e71565b91505061157a565b60006001600160a01b0383166115d55760405162461bcd60e51b815260040161062290612d9f565b6001600160a01b0382166115fb5760405162461bcd60e51b815260040161062290612ce0565b6001600160a01b038084169083166000805b600554811015611642576116246002858584611e64565b61162e9083612e0d565b91508061163a81612e71565b91505061160d565b5060005b6005548110156109905761165d6003858584611e64565b6116679083612e25565b91508061167381612e71565b915050611646565b6001600160a01b0383166116a15760405162461bcd60e51b815260040161062290612d9f565b6001600160a01b0382166116c75760405162461bcd60e51b815260040161062290612ce0565b6001600160a01b038084169083166000805b600554811015611768576116f06002858584612181565b1561173d5760405162461bcd60e51b815260206004820152601e60248201527f496e63726561736520616c6c6f77616e636520736c6f74206c6f636b656400006044820152606401610622565b61174a60028585846121d7565b6117549083612e0d565b91508061176081612e71565b9150506116d9565b5060005b6005548110156117fb576117836003858584612181565b156117d05760405162461bcd60e51b815260206004820152601e60248201527f446563726561736520616c6c6f77616e636520736c6f74206c6f636b656400006044820152606401610622565b6117dd60038585846121d7565b6117e79083612e25565b9150806117f381612e71565b91505061176c565b508381101561183f5760006118146002858560006121d7565b90506118396002858560008661182a8b88612e0d565b6118349190612e25565b61221b565b5061186f565b8381111561186f5760006118576003858560006121d7565b905061186d6003858560008961182a8888612e0d565b505b846001600160a01b0316866001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925866040516118b491815260200190565b60405180910390a3505050505050565b60008083836040516020016118e3929190918252602082015260400190565b60408051601f198184030181529181528151602092830120600081815260029093529120549091505b949350505050565b6001600160a01b0383166119785760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610622565b6001600160a01b0382166119da5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610622565b6119e4838261225d565b6119ee82826123f5565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a3391815260200190565b60405180910390a3505050565b6001600160a01b038316611a665760405162461bcd60e51b815260040161062290612d9f565b6001600160a01b038216611a8c5760405162461bcd60e51b815260040161062290612ce0565b6001600160a01b038084169083166000805b600554811015611af857611ab56003858584612181565b611ae657600191506000611acc60038686856121d7565b9050611ae060038686856118348b87612e0d565b50611af8565b80611af081612e71565b915050611a9e565b5080611b525760405162461bcd60e51b815260206004820152602360248201527f416c6c20646563726561736520616c6c6f77616e636520736c6f747320696e2060448201526275736560e81b6064820152608401610622565b846001600160a01b0316866001600160a01b03167fca00ac413b8c2013d4efc4a5ea887318bf432aa5d2a4c8ec87ad5660c28ef5d8866040516118b491815260200190565b600080808036806020605f19820184376000519550602060408203600037600051945060208082036000376000519350505050909192565b6001600160a01b038216611c255760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610622565b611c2e81612519565b611c3882826123f5565b6040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b6001600160a01b038316611ca45760405162461bcd60e51b815260040161062290612d9f565b6001600160a01b038216611cca5760405162461bcd60e51b815260040161062290612ce0565b6001600160a01b038084169083166000805b600554811015611d3657611cf36002858584612181565b611d2457600191506000611d0a60028686856121d7565b9050611d1e60028686856118348b87612e0d565b50611d36565b80611d2e81612e71565b915050611cdc565b5080611d905760405162461bcd60e51b815260206004820152602360248201527f416c6c20696e63726561736520616c6c6f77616e636520736c6f747320696e2060448201526275736560e81b6064820152608401610622565b846001600160a01b0316866001600160a01b03167fae0962182a7df59bce5a3518382b8a4a909b354b6ba0f4114215654490399b4b866040516118b491815260200190565b604080516020810185905290810183905260608101829052600090819060800160408051601f198184030181529181528151602092830120600081815260029093529120549091505b95945050505050565b60408051602080820186905281830185905260608083018590528351808403909101815260809092019092528051910120600090611e1e816125d3565b6040805160208082018790528183018690526060820185905260808083018590528351808403909101815260a09092019092528051910120600090611ea8816125d3565b9695505050505050565b60408051602081018690529081018490526060810183905260808101829052600090819060a00160408051601f19818403018152918152815160209283012060008181526002909352912054909150611ea8565b6001546001600160a01b03163314611f605760405162461bcd60e51b815260206004820152601f60248201527f4d7573742062652070617274206f662063726f7373636861696e2063616c6c006044820152606401610622565b611f6a838261208d565b6000848152600960205260409020546001600160a01b031680611fe25760405162461bcd60e51b815260206004820152602a60248201527f4e6f20455243203230207265676973746572656420666f722072656d6f746520604482015269313637b1b5b1b430b4b760b11b6064820152608401610622565b600154604080516001600160a01b038681166024830152604480830187905283518084039091018152606490920183526020820180516001600160e01b031663032a7ef560e41b17905291516392b2c33560e01b815291909216916392b2c33591612054918991869190600401612de3565b600060405180830381600087803b15801561206e57600080fd5b505af1158015612082573d6000803e3d6000fd5b505050505050505050565b6001600160a01b0382166120ed5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610622565b6120f68161261b565b612100828261225d565b6040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611c72565b600080838360405160200161215d929190918252602082015260400190565b60405160208183030381529060405280519060200120905061190c8160001c6125d3565b60408051602081018690529081018490526060810183905260808101829052600090819060a00160408051601f198184030181529181528151602092830120600081815260039093529120549091501515611ea8565b6040805160208082018790528183018690526060820185905260808083018590528351808403909101815260a09092019092528051910120600090611ea8816126d0565b6040805160208082018890528183018790526060820186905260808083018690528351808403909101815260a09092019092528051910120610a21818361272c565b6001600160a01b0382166122bd5760405162461bcd60e51b815260206004820152602160248201527f45524332303a2046726f6d206163636f756e743a207a65726f206164647265736044820152607360f81b6064820152608401610622565b60006122c88361083f565b9050818110156123335760405162461bcd60e51b815260206004820152603060248201527f45524332303a20616d6f756e742065786365656473206d696e2062616c616e6360448201526f329037b310232927a69039b2b73232b960811b6064820152608401610622565b6001600160a01b0383166000805b60055481101561239d57612357600184836128b5565b61238b5760019150600061236d60018584612904565b9050612385600185846123808a86612e0d565b612941565b5061239d565b8061239581612e71565b915050612341565b50806107e75760405162461bcd60e51b815260206004820152602160248201527f416c6c2064656372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b6064820152608401610622565b6001600160a01b03821661245c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a20726563697069656e74206163636f756e74206973207a65726f604482015267206164647265737360c01b6064820152608401610622565b6001600160a01b0382166000805b6005548110156124c157612480600084836128b5565b6124af5760019150600061249660008584612904565b90506124a9600085846123808986612e0d565b506124c1565b806124b981612e71565b91505061246a565b50806109be5760405162461bcd60e51b815260206004820152602160248201527f416c6c20696e6372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b6064820152608401610622565b6000805b6006548110156125765761253260048261297c565b612564576001915060006125476004836129ca565b905061255e6004836125598785612e0d565b612a0d565b50612576565b8061256e81612e71565b91505061251d565b50806110505760405162461bcd60e51b815260206004820152602660248201527f416c6c20696e63726561736520746f74616c20737570706c7920736c6f747320604482015265696e2075736560d01b6064820152608401610622565b600081815260036020526040812054156126085760008281526003602052604090205461260290600190612e25565b92915050565b5060009081526002602052604090205490565b6000805b6006548110156126735761263460058261297c565b612661576001915060006126496005836129ca565b905061265b6005836125598785612e0d565b50612673565b8061266b81612e71565b91505061261f565b50806110505760405162461bcd60e51b815260206004820152602660248201527f416c6c20646563726561736520746f74616c20737570706c7920736c6f747320604482015265696e2075736560d01b6064820152608401610622565b600081815260036020526040812054156126085760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b6564006044820152606401610622565b6000828152600360205260409020541561277f5760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b6044820152606401610622565b60015460408051637bf37a0960e01b815290516000926001600160a01b031691637bf37a09916004808301926020929190829003018186803b1580156127c457600080fd5b505afa1580156127d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127fc9190612bcf565b905080612816575060009182526002602052604090912055565b600154604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b15801561285b57600080fd5b505af115801561286f573d6000803e3d6000fd5b5050506000828152600460209081526040822080546001818101835591845291909220018590556128a1915083612e0d565b600084815260036020526040902055505050565b604080516020810185905290810183905260608101829052600090819060800160408051601f198184030181529181528151602092830120600081815260039093529120549091501515611e1e565b60408051602080820186905281830185905260608083018590528351808403909101815260809092019092528051910120600090611e1e816126d0565b604080516020808201879052818301869052606080830186905283518084039091018152608090920190925280519101206107e7818361272c565b600080838360405160200161299b929190918252602082015260400190565b60408051601f19818403018152918152815160209283012060008181526003909352912054909150151561190c565b60008083836040516020016129e9929190918252602082015260400190565b60405160208183030381529060405280519060200120905061190c8160001c6126d0565b604080516020808201869052818301859052825180830384018152606090920190925280519101206109be818361272c565b5080546000825590600052602060002090810190612a5d9190612a60565b50565b5b80821115612a755760008155600101612a61565b5090565b80356001600160a01b0381168114612a9057600080fd5b919050565b600060208284031215612aa757600080fd5b612ab082612a79565b9392505050565b60008060408385031215612aca57600080fd5b612ad383612a79565b9150612ae160208401612a79565b90509250929050565b600080600060608486031215612aff57600080fd5b612b0884612a79565b9250612b1660208501612a79565b9150604084013590509250925092565b60008060408385031215612b3957600080fd5b612b4283612a79565b946020939093013593505050565b60008060008060808587031215612b6657600080fd5b612b6f85612a79565b935060208501359250612b8460408601612a79565b9396929550929360600135925050565b600060208284031215612ba657600080fd5b8151612ab081612eb8565b60008060408385031215612bc457600080fd5b8235612b4281612eb8565b600060208284031215612be157600080fd5b5051919050565b600060208284031215612bfa57600080fd5b5035919050565b60008060408385031215612c1457600080fd5b82359150612ae160208401612a79565b600080600060608486031215612c3957600080fd5b83359250612b1660208501612a79565b6000815180845260005b81811015612c6f57602081850181015186830182015201612c53565b81811115612c81576000602083870101525b50601f01601f19169290920160200192915050565b602081526000612ab06020830184612c49565b6020808252601e908201527f4d7573742062652073696e676c6520626c6f636b636861696e2063616c6c0000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b8381526001600160a01b0383166020820152606060408201819052600090611e1e90830184612c49565b60008219821115612e2057612e20612e8c565b500190565b600082821015612e3757612e37612e8c565b500390565b600181811c90821680612e5057607f821691505b602082108114156106ae57634e487b7160e01b600052602260045260246000fd5b6000600019821415612e8557612e85612e8c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b8015158114612a5d57600080fdfea26469706673582212208a677290d4044b4cb1b27cde9539576f8719cdc1e5b150ff50c495ffe7c7994c64736f6c63430008050033"; + public static final String BINARY = "60806040523480156200001157600080fd5b50604051620032763803806200327683398101604081905262000034916200029e565b83838382828280600033600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b03929092169190911790558251620000bd9060079060208601906200010e565b508151620000d39060089060208501906200010e565b5050600580555050600a600681905580546001600160a01b0319166001600160a01b039590951694909417909355506200036a945050505050565b8280546200011c906200032d565b90600052602060002090601f0160209004810192826200014057600085556200018b565b82601f106200015b57805160ff19168380011785556200018b565b828001600101855582156200018b579182015b828111156200018b5782518255916020019190600101906200016e565b50620001999291506200019d565b5090565b5b808211156200019957600081556001016200019e565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001dc57600080fd5b81516001600160401b0380821115620001f957620001f9620001b4565b604051601f8301601f19908116603f01168101908282118183101715620002245762000224620001b4565b816040528381526020925086838588010111156200024157600080fd5b600091505b8382101562000265578582018301518183018401529082019062000246565b83821115620002775760008385830101525b9695505050505050565b80516001600160a01b03811681146200029957600080fd5b919050565b60008060008060808587031215620002b557600080fd5b84516001600160401b0380821115620002cd57600080fd5b620002db88838901620001ca565b95506020870151915080821115620002f257600080fd5b506200030187828801620001ca565b935050620003126040860162000281565b9150620003226060860162000281565b905092959194509250565b600181811c908216806200034257607f821691505b602082108114156200036457634e487b7160e01b600052602260045260246000fd5b50919050565b612efc806200037a6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c806370a0823111610130578063a457c2d7116100b8578063dd62ed3e1161007c578063dd62ed3e14610494578063f2fde38b146104a7578063f50249fc146104ba578063f6aacfb1146104c2578063fcdb3710146104e457600080fd5b8063a457c2d71461042a578063a9059cbb1461043d578063bd1b1afd14610450578063be42152f14610458578063d71aaa421461046b57600080fd5b8063809a827b116100ff578063809a827b146103d85780638da5cb5b146103eb57806395d89b41146103fc57806397879e0f1461040457806399eb5d4c1461041757600080fd5b806370a08231146103a1578063715018a6146103b45780637785eebd146103bc5780637b0919b2146103c557600080fd5b80633aca7144116101b35780634f6e9e73116101825780634f6e9e731461034d5780635388a3ae1461036057806358e668731461037357806359ad3fe014610386578063691448c21461038e57600080fd5b80633aca71441461030b57806340490cc214610314578063409b223e1461032757806342b9e74f1461033a57600080fd5b806323b872dd116101fa57806323b872dd146102ae578063313ce567146102c157806332a7ef50146102d057806335c01fc3146102e557806339509351146102f857600080fd5b806306fdde031461022c578063095ea7b31461024a57806318160ddd1461026d5780631e543b9114610283575b600080fd5b6102346104f7565b6040516102419190612ac6565b60405180910390f35b61025d610258366004612afc565b610589565b6040519015158152602001610241565b61027561063f565b604051908152602001610241565b600a54610296906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b61025d6102bc366004612b26565b6106b4565b60405160128152602001610241565b6102e36102de366004612afc565b610707565b005b6102e36102f3366004612b62565b6107ee565b61025d610306366004612afc565b610832565b61027560055481565b610275610322366004612b7b565b61083f565b610275610335366004612b96565b6108c2565b6102e3610348366004612bc9565b61099a565b6102e361035b366004612bee565b6109c4565b6102e361036e366004612afc565b610a29565b6102e3610381366004612b62565b610b77565b610275610caa565b61027561039c366004612b96565b610d19565b6102756103af366004612b7b565b610de7565b6102e3610e62565b61027560065481565b6102e36103d3366004612b62565b610ed6565b6102e36103e6366004612b62565b610f12565b6000546001600160a01b0316610296565b610234611054565b610275610412366004612b7b565b611063565b6102e3610425366004612c40565b6110de565b61025d610438366004612afc565b61118e565b61025d61044b366004612afc565b611210565b61027561121d565b6102e3610466366004612c5e565b61128c565b610296610479366004612b62565b6009602052600090815260409020546001600160a01b031681565b6102756104a2366004612b96565b611386565b6102e36104b5366004612b7b565b611454565b61027561153e565b61025d6104d0366004612b62565b600090815260036020526040902054151590565b6102756104f2366004612b96565b6115ad565b60606007805461050690612c81565b80601f016020809104026020016040519081016040528092919081815260200182805461053290612c81565b801561057f5780601f106105545761010080835404028352916020019161057f565b820191906000526020600020905b81548152906001019060200180831161056257829003601f168201915b5050505050905090565b60015460408051635a61dbab60e11b815290516000926001600160a01b03169163b4c3b756916004808301926020929190829003018186803b1580156105ce57600080fd5b505afa1580156105e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106069190612cb6565b61062b5760405162461bcd60e51b815260040161062290612cd3565b60405180910390fd5b61063633848461167b565b50600192915050565b600080805b600654811015610677576106596004826118c4565b6106639083612d20565b91508061066f81612d38565b915050610644565b5060005b6006548110156106ae576106906005826118c4565b61069a9083612d53565b9150806106a681612d38565b91505061067b565b50919050565b60006106c1848484611914565b3360006106ce8683610d19565b9050838110156106f05760405162461bcd60e51b815260040161062290612d6a565b6106fb868386611a40565b50600195945050505050565b6001546001600160a01b031633146107615760405162461bcd60e51b815260206004820152601f60248201527f4d7573742062652070617274206f662063726f7373636861696e2063616c6c006044820152606401610622565b60008061076c611b97565b60008281526009602052604090205491945092508291506001600160a01b038083169116146107dd5760405162461bcd60e51b815260206004820152601b60248201527f536f75726365206973206e6f7420636f727265637420455243323000000000006044820152606401610622565b6107e78585611bcf565b5050505050565b6000546001600160a01b031633146108185760405162461bcd60e51b815260040161062290612db2565b806006600082825461082a9190612d20565b909155505050565b6000610636338484611c7e565b60006001600160a01b03821681805b6005548110156108825761086460008483611dd5565b61086e9083612d20565b91508061087a81612d38565b91505061084e565b5060005b6005548110156108ba5761089c60018483611e27565b6108a69083612d53565b9150806108b281612d38565b915050610886565b509392505050565b60006001600160a01b0383166108ea5760405162461bcd60e51b815260040161062290612de7565b6001600160a01b0382166109105760405162461bcd60e51b815260040161062290612e2b565b6001600160a01b038084169083166000805b600554811015610957576109396002858584611e64565b6109439083612d20565b91508061094f81612d38565b915050610922565b5060005b600554811015610990576109726003858584611eb2565b61097c9083612d53565b91508061098881612d38565b91505061095b565b5095945050505050565b60015433906001600160a01b03168114156109b25750325b6109be84828585611f06565b50505050565b60015433906001600160a01b03168114156109dc5750325b6109e884868585611f06565b60006109f48683610d19565b905082811015610a165760405162461bcd60e51b815260040161062290612d6a565b610a21868385611a40565b505050505050565b600160009054906101000a90046001600160a01b03166001600160a01b031663b4c3b7566040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7757600080fd5b505afa158015610a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaf9190612cb6565b610acb5760405162461bcd60e51b815260040161062290612cd3565b600033600a546040516323b872dd60e01b81526001600160a01b038084166004830152306024830152604482018690529293509116906323b872dd90606401602060405180830381600087803b158015610b2457600080fd5b505af1158015610b38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5c9190612cb6565b50610b678183611bcf565b610b7281848461167b565b505050565b600160009054906101000a90046001600160a01b03166001600160a01b031663b4c3b7566040518163ffffffff1660e01b815260040160206040518083038186803b158015610bc557600080fd5b505afa158015610bd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfd9190612cb6565b610c195760405162461bcd60e51b815260040161062290612cd3565b33610c24818361208d565b600a5460405163a9059cbb60e01b81526001600160a01b038381166004830152602482018590529091169063a9059cbb90604401602060405180830381600087803b158015610c7257600080fd5b505af1158015610c86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b729190612cb6565b600080805b600654811015610ce257610cc46004826118c4565b610cce9083612d20565b915080610cda81612d38565b915050610caf565b5060005b6006548110156106ae57610cfb60058261213e565b610d059083612d53565b915080610d1181612d38565b915050610ce6565b60006001600160a01b038316610d415760405162461bcd60e51b815260040161062290612de7565b6001600160a01b038216610d675760405162461bcd60e51b815260040161062290612e2b565b6001600160a01b038084169083166000805b600554811015610dae57610d906002858584611eb2565b610d9a9083612d20565b915080610da681612d38565b915050610d79565b5060005b60055481101561099057610dc96003858584611e64565b610dd39083612d53565b915080610ddf81612d38565b915050610db2565b60006001600160a01b03821681805b600554811015610e2a57610e0c60008483611dd5565b610e169083612d20565b915080610e2281612d38565b915050610df6565b5060005b6005548110156108ba57610e4460018483611dd5565b610e4e9083612d53565b915080610e5a81612d38565b915050610e2e565b6000546001600160a01b03163314610e8c5760405162461bcd60e51b815260040161062290612db2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610f005760405162461bcd60e51b815260040161062290612db2565b806005600082825461082a9190612d20565b600160009054906101000a90046001600160a01b03166001600160a01b031663b4c3b7566040518163ffffffff1660e01b815260040160206040518083038186803b158015610f6057600080fd5b505afa158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f989190612cb6565b610fb45760405162461bcd60e51b815260040161062290612cd3565b600033600a546040516323b872dd60e01b81526001600160a01b038084166004830152306024830152604482018690529293509116906323b872dd90606401602060405180830381600087803b15801561100d57600080fd5b505af1158015611021573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110459190612cb6565b506110508183611bcf565b5050565b60606008805461050690612c81565b60006001600160a01b03821681805b6005548110156110a65761108860008483611e27565b6110929083612d20565b91508061109e81612d38565b915050611072565b5060005b6005548110156108ba576110c060018483611e27565b6110ca9083612d53565b9150806110d681612d38565b9150506110aa565b60005b60008281526004602052604090205481101561117657600082815260046020526040812080548390811061111757611117612e6d565b9060005260206000200154905083156111555760008181526003602052604090205461114590600190612d53565b6000828152600260205260409020555b6000908152600360205260408120558061116e81612d38565b9150506110e1565b50600081815260046020526040812061105091612a3f565b60008061119b3385610d19565b9050828110156111fb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610622565b611206338585611a40565b5060019392505050565b6000610636338484611914565b600080805b6006548110156112555761123760048261213e565b6112419083612d20565b91508061124d81612d38565b915050611222565b5060005b6006548110156106ae5761126e60058261213e565b6112789083612d53565b91508061128481612d38565b915050611259565b6000546001600160a01b031633146112b65760405162461bcd60e51b815260040161062290612db2565b600160009054906101000a90046001600160a01b03166001600160a01b031663b4c3b7566040518163ffffffff1660e01b815260040160206040518083038186803b15801561130457600080fd5b505afa158015611318573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133c9190612cb6565b6113585760405162461bcd60e51b815260040161062290612cd3565b60009182526009602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b60006001600160a01b0383166113ae5760405162461bcd60e51b815260040161062290612de7565b6001600160a01b0382166113d45760405162461bcd60e51b815260040161062290612e2b565b6001600160a01b038084169083166000805b60055481101561141b576113fd6002858584611eb2565b6114079083612d20565b91508061141381612d38565b9150506113e6565b5060005b600554811015610990576114366003858584611eb2565b6114409083612d53565b91508061144c81612d38565b91505061141f565b6000546001600160a01b0316331461147e5760405162461bcd60e51b815260040161062290612db2565b6001600160a01b0381166114e35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610622565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080805b6006548110156115765761155860048261213e565b6115629083612d20565b91508061156e81612d38565b915050611543565b5060005b6006548110156106ae5761158f6005826118c4565b6115999083612d53565b9150806115a581612d38565b91505061157a565b60006001600160a01b0383166115d55760405162461bcd60e51b815260040161062290612de7565b6001600160a01b0382166115fb5760405162461bcd60e51b815260040161062290612e2b565b6001600160a01b038084169083166000805b600554811015611642576116246002858584611e64565b61162e9083612d20565b91508061163a81612d38565b91505061160d565b5060005b6005548110156109905761165d6003858584611e64565b6116679083612d53565b91508061167381612d38565b915050611646565b6001600160a01b0383166116a15760405162461bcd60e51b815260040161062290612de7565b6001600160a01b0382166116c75760405162461bcd60e51b815260040161062290612e2b565b6001600160a01b038084169083166000805b600554811015611768576116f06002858584612181565b1561173d5760405162461bcd60e51b815260206004820152601e60248201527f496e63726561736520616c6c6f77616e636520736c6f74206c6f636b656400006044820152606401610622565b61174a60028585846121d7565b6117549083612d20565b91508061176081612d38565b9150506116d9565b5060005b6005548110156117fb576117836003858584612181565b156117d05760405162461bcd60e51b815260206004820152601e60248201527f446563726561736520616c6c6f77616e636520736c6f74206c6f636b656400006044820152606401610622565b6117dd60038585846121d7565b6117e79083612d53565b9150806117f381612d38565b91505061176c565b508381101561183f5760006118146002858560006121d7565b90506118396002858560008661182a8b88612d20565b6118349190612d53565b61221b565b5061186f565b8381111561186f5760006118576003858560006121d7565b905061186d6003858560008961182a8888612d20565b505b846001600160a01b0316866001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925866040516118b491815260200190565b60405180910390a3505050505050565b60008083836040516020016118e3929190918252602082015260400190565b60408051601f198184030181529181528151602092830120600081815260029093529120549091505b949350505050565b6001600160a01b0383166119785760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610622565b6001600160a01b0382166119da5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610622565b6119e4838261225d565b6119ee82826123f5565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a3391815260200190565b60405180910390a3505050565b6001600160a01b038316611a665760405162461bcd60e51b815260040161062290612de7565b6001600160a01b038216611a8c5760405162461bcd60e51b815260040161062290612e2b565b6001600160a01b038084169083166000805b600554811015611af857611ab56003858584612181565b611ae657600191506000611acc60038686856121d7565b9050611ae060038686856118348b87612d20565b50611af8565b80611af081612d38565b915050611a9e565b5080611b525760405162461bcd60e51b815260206004820152602360248201527f416c6c20646563726561736520616c6c6f77616e636520736c6f747320696e2060448201526275736560e81b6064820152608401610622565b846001600160a01b0316866001600160a01b03167fca00ac413b8c2013d4efc4a5ea887318bf432aa5d2a4c8ec87ad5660c28ef5d8866040516118b491815260200190565b600080808036806020605f19820184376000519550602060408203600037600051945060208082036000376000519350505050909192565b6001600160a01b038216611c255760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610622565b611c2e81612519565b611c3882826123f5565b6040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b6001600160a01b038316611ca45760405162461bcd60e51b815260040161062290612de7565b6001600160a01b038216611cca5760405162461bcd60e51b815260040161062290612e2b565b6001600160a01b038084169083166000805b600554811015611d3657611cf36002858584612181565b611d2457600191506000611d0a60028686856121d7565b9050611d1e60028686856118348b87612d20565b50611d36565b80611d2e81612d38565b915050611cdc565b5080611d905760405162461bcd60e51b815260206004820152602360248201527f416c6c20696e63726561736520616c6c6f77616e636520736c6f747320696e2060448201526275736560e81b6064820152608401610622565b846001600160a01b0316866001600160a01b03167fae0962182a7df59bce5a3518382b8a4a909b354b6ba0f4114215654490399b4b866040516118b491815260200190565b604080516020810185905290810183905260608101829052600090819060800160408051601f198184030181529181528151602092830120600081815260029093529120549091505b95945050505050565b60408051602080820186905281830185905260608083018590528351808403909101815260809092019092528051910120600090611e1e816125d3565b6040805160208082018790528183018690526060820185905260808083018590528351808403909101815260a09092019092528051910120600090611ea8816125d3565b9695505050505050565b60408051602081018690529081018490526060810183905260808101829052600090819060a00160408051601f19818403018152918152815160209283012060008181526002909352912054909150611ea8565b6001546001600160a01b03163314611f605760405162461bcd60e51b815260206004820152601f60248201527f4d7573742062652070617274206f662063726f7373636861696e2063616c6c006044820152606401610622565b611f6a838261208d565b6000848152600960205260409020546001600160a01b031680611fe25760405162461bcd60e51b815260206004820152602a60248201527f4e6f20455243203230207265676973746572656420666f722072656d6f746520604482015269313637b1b5b1b430b4b760b11b6064820152608401610622565b600154604080516001600160a01b038681166024830152604480830187905283518084039091018152606490920183526020820180516001600160e01b031663032a7ef560e41b17905291516392b2c33560e01b815291909216916392b2c33591612054918991869190600401612e83565b600060405180830381600087803b15801561206e57600080fd5b505af1158015612082573d6000803e3d6000fd5b505050505050505050565b6001600160a01b0382166120ed5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610622565b6120f68161261b565b612100828261225d565b6040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611c72565b600080838360405160200161215d929190918252602082015260400190565b60405160208183030381529060405280519060200120905061190c8160001c6125d3565b60408051602081018690529081018490526060810183905260808101829052600090819060a00160408051601f198184030181529181528151602092830120600081815260039093529120549091501515611ea8565b6040805160208082018790528183018690526060820185905260808083018590528351808403909101815260a09092019092528051910120600090611ea8816126d0565b6040805160208082018890528183018790526060820186905260808083018690528351808403909101815260a09092019092528051910120610a21818361272c565b6001600160a01b0382166122bd5760405162461bcd60e51b815260206004820152602160248201527f45524332303a2046726f6d206163636f756e743a207a65726f206164647265736044820152607360f81b6064820152608401610622565b60006122c88361083f565b9050818110156123335760405162461bcd60e51b815260206004820152603060248201527f45524332303a20616d6f756e742065786365656473206d696e2062616c616e6360448201526f329037b310232927a69039b2b73232b960811b6064820152608401610622565b6001600160a01b0383166000805b60055481101561239d57612357600184836128b5565b61238b5760019150600061236d60018584612904565b9050612385600185846123808a86612d20565b612941565b5061239d565b8061239581612d38565b915050612341565b50806107e75760405162461bcd60e51b815260206004820152602160248201527f416c6c2064656372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b6064820152608401610622565b6001600160a01b03821661245c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a20726563697069656e74206163636f756e74206973207a65726f604482015267206164647265737360c01b6064820152608401610622565b6001600160a01b0382166000805b6005548110156124c157612480600084836128b5565b6124af5760019150600061249660008584612904565b90506124a9600085846123808986612d20565b506124c1565b806124b981612d38565b91505061246a565b50806109be5760405162461bcd60e51b815260206004820152602160248201527f416c6c20696e6372656173652062616c616e636520736c6f747320696e2075736044820152606560f81b6064820152608401610622565b6000805b6006548110156125765761253260048261297c565b612564576001915060006125476004836129ca565b905061255e6004836125598785612d20565b612a0d565b50612576565b8061256e81612d38565b91505061251d565b50806110505760405162461bcd60e51b815260206004820152602660248201527f416c6c20696e63726561736520746f74616c20737570706c7920736c6f747320604482015265696e2075736560d01b6064820152608401610622565b600081815260036020526040812054156126085760008281526003602052604090205461260290600190612d53565b92915050565b5060009081526002602052604090205490565b6000805b6006548110156126735761263460058261297c565b612661576001915060006126496005836129ca565b905061265b6005836125598785612d20565b50612673565b8061266b81612d38565b91505061261f565b50806110505760405162461bcd60e51b815260206004820152602660248201527f416c6c20646563726561736520746f74616c20737570706c7920736c6f747320604482015265696e2075736560d01b6064820152608401610622565b600081815260036020526040812054156126085760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b6564006044820152606401610622565b6000828152600360205260409020541561277f5760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b6044820152606401610622565b60015460408051637bf37a0960e01b815290516000926001600160a01b031691637bf37a09916004808301926020929190829003018186803b1580156127c457600080fd5b505afa1580156127d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127fc9190612ead565b905080612816575060009182526002602052604090912055565b600154604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b15801561285b57600080fd5b505af115801561286f573d6000803e3d6000fd5b5050506000828152600460209081526040822080546001818101835591845291909220018590556128a1915083612d20565b600084815260036020526040902055505050565b604080516020810185905290810183905260608101829052600090819060800160408051601f198184030181529181528151602092830120600081815260039093529120549091501515611e1e565b60408051602080820186905281830185905260608083018590528351808403909101815260809092019092528051910120600090611e1e816126d0565b604080516020808201879052818301869052606080830186905283518084039091018152608090920190925280519101206107e7818361272c565b600080838360405160200161299b929190918252602082015260400190565b60408051601f19818403018152918152815160209283012060008181526003909352912054909150151561190c565b60008083836040516020016129e9929190918252602082015260400190565b60405160208183030381529060405280519060200120905061190c8160001c6126d0565b604080516020808201869052818301859052825180830384018152606090920190925280519101206109be818361272c565b5080546000825590600052602060002090810190612a5d9190612a60565b50565b5b80821115612a755760008155600101612a61565b5090565b6000815180845260005b81811015612a9f57602081850181015186830182015201612a83565b81811115612ab1576000602083870101525b50601f01601f19169290920160200192915050565b602081526000612ad96020830184612a79565b9392505050565b80356001600160a01b0381168114612af757600080fd5b919050565b60008060408385031215612b0f57600080fd5b612b1883612ae0565b946020939093013593505050565b600080600060608486031215612b3b57600080fd5b612b4484612ae0565b9250612b5260208501612ae0565b9150604084013590509250925092565b600060208284031215612b7457600080fd5b5035919050565b600060208284031215612b8d57600080fd5b612ad982612ae0565b60008060408385031215612ba957600080fd5b612bb283612ae0565b9150612bc060208401612ae0565b90509250929050565b600080600060608486031215612bde57600080fd5b83359250612b5260208501612ae0565b60008060008060808587031215612c0457600080fd5b612c0d85612ae0565b935060208501359250612c2260408601612ae0565b9396929550929360600135925050565b8015158114612a5d57600080fd5b60008060408385031215612c5357600080fd5b8235612b1881612c32565b60008060408385031215612c7157600080fd5b82359150612bc060208401612ae0565b600181811c90821680612c9557607f821691505b602082108114156106ae57634e487b7160e01b600052602260045260246000fd5b600060208284031215612cc857600080fd5b8151612ad981612c32565b6020808252601e908201527f4d7573742062652073696e676c6520626c6f636b636861696e2063616c6c0000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115612d3357612d33612d0a565b500190565b6000600019821415612d4c57612d4c612d0a565b5060010190565b600082821015612d6557612d65612d0a565b500390565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8381526001600160a01b0383166020820152606060408201819052600090611e1e90830184612a79565b600060208284031215612ebf57600080fd5b505191905056fea2646970667358221220a829d4ee66491e7df1b8448390235e9b42ea1c506241e28519fa613a9f4605ec64736f6c63430008090033"; public static final String FUNC_ACCOUNTPALLELIZATIONFACTOR = "accountPallelizationFactor"; diff --git a/application/appcontracts/erc20/src/test/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/MockCbcForERC20Test.java b/application/appcontracts/erc20/src/test/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/MockCbcForERC20Test.java index 84f28bdd..5993b774 100644 --- a/application/appcontracts/erc20/src/test/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/MockCbcForERC20Test.java +++ b/application/appcontracts/erc20/src/test/java/net/consensys/gpact/appcontracts/erc20/soliditywrappers/MockCbcForERC20Test.java @@ -28,7 +28,7 @@ */ @SuppressWarnings("rawtypes") public class MockCbcForERC20Test extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b5061031b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806339ce107e146100675780637bf37a091461007c57806392b2c33514610092578063b4c3b756146100a6578063bd682e45146100b8578063ef3adc4a146100c0575b600080fd5b61007a6100753660046101e4565b6100d3565b005b6000546040519081526020015b60405180910390f35b61007a6100a036600461021f565b50505050565b60005460405190158152602001610089565b61007a610180565b61007a6100ce366004610206565b600055565b60005b60015481101561012e57816001600160a01b0316600182815481106100fd576100fd6102cf565b6000918252602090912001546001600160a01b0316141561011c575050565b80610126816102a6565b9150506100d6565b506001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0392909216919091179055565b61018c6001600061018e565b565b50805460008255906000526020600020908101906101ac91906101af565b50565b5b808211156101c457600081556001016101b0565b5090565b80356001600160a01b03811681146101df57600080fd5b919050565b6000602082840312156101f657600080fd5b6101ff826101c8565b9392505050565b60006020828403121561021857600080fd5b5035919050565b6000806000806060858703121561023557600080fd5b84359350610245602086016101c8565b9250604085013567ffffffffffffffff8082111561026257600080fd5b818701915087601f83011261027657600080fd5b81358181111561028557600080fd5b88602082850101111561029757600080fd5b95989497505060200194505050565b60006000198214156102c857634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220fa00f13d6bb3d39aba2116e7fc45fa4405b080c38b6302f6e9c2ff29682dead264736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b5061031b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806339ce107e146100675780637bf37a091461007c57806392b2c33514610092578063b4c3b756146100a6578063bd682e45146100b8578063ef3adc4a146100c0575b600080fd5b61007a6100753660046101e4565b6100d3565b005b6000546040519081526020015b60405180910390f35b61007a6100a0366004610206565b50505050565b60005460405190158152602001610089565b61007a610180565b61007a6100ce36600461028d565b600055565b60005b60015481101561012e57816001600160a01b0316600182815481106100fd576100fd6102a6565b6000918252602090912001546001600160a01b0316141561011c575050565b80610126816102bc565b9150506100d6565b506001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0392909216919091179055565b61018c6001600061018e565b565b50805460008255906000526020600020908101906101ac91906101af565b50565b5b808211156101c457600081556001016101b0565b5090565b80356001600160a01b03811681146101df57600080fd5b919050565b6000602082840312156101f657600080fd5b6101ff826101c8565b9392505050565b6000806000806060858703121561021c57600080fd5b8435935061022c602086016101c8565b9250604085013567ffffffffffffffff8082111561024957600080fd5b818701915087601f83011261025d57600080fd5b81358181111561026c57600080fd5b88602082850101111561027e57600080fd5b95989497505060200194505050565b60006020828403121561029f57600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b60006000198214156102de57634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220306679448ddbe71dd38f8331e145a41020a841d731ae6b4ad601859bb5553a2d64736f6c63430008090033"; public static final String FUNC_ADDTOLISTOFLOCKEDCONTRACTS = "addToListOfLockedContracts"; diff --git a/application/appcontracts/lockablestorage/src/test/java/net/consensys/gpact/lockablestorage/soliditywrappers/MockCbcForLockableStorageTest.java b/application/appcontracts/lockablestorage/src/test/java/net/consensys/gpact/lockablestorage/soliditywrappers/MockCbcForLockableStorageTest.java index 3bc5cfb1..5c082212 100644 --- a/application/appcontracts/lockablestorage/src/test/java/net/consensys/gpact/lockablestorage/soliditywrappers/MockCbcForLockableStorageTest.java +++ b/application/appcontracts/lockablestorage/src/test/java/net/consensys/gpact/lockablestorage/soliditywrappers/MockCbcForLockableStorageTest.java @@ -28,7 +28,7 @@ */ @SuppressWarnings("rawtypes") public class MockCbcForLockableStorageTest extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b50610267806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806339ce107e1461005c5780637bf37a0914610071578063b4c3b75614610087578063bd682e4514610099578063ef3adc4a146100a1575b600080fd5b61006f61006a3660046101a9565b6100b4565b005b6000546040519081526020015b60405180910390f35b6000546040519015815260200161007e565b61006f610161565b61006f6100af3660046101d9565b600055565b60005b60015481101561010f57816001600160a01b0316600182815481106100de576100de61021b565b6000918252602090912001546001600160a01b031614156100fd575050565b80610107816101f2565b9150506100b7565b506001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0392909216919091179055565b61016d6001600061016f565b565b508054600082559060005260206000209081019061018d9190610190565b50565b5b808211156101a55760008155600101610191565b5090565b6000602082840312156101bb57600080fd5b81356001600160a01b03811681146101d257600080fd5b9392505050565b6000602082840312156101eb57600080fd5b5035919050565b600060001982141561021457634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052603260045260246000fdfea264697066735822122060633bddca026db04ed1428eb0bb1cc543d2c50680970368bc49d9337592b18e64736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b50610267806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806339ce107e1461005c5780637bf37a0914610071578063b4c3b75614610087578063bd682e4514610099578063ef3adc4a146100a1575b600080fd5b61006f61006a3660046101a9565b6100b4565b005b6000546040519081526020015b60405180910390f35b6000546040519015815260200161007e565b61006f610161565b61006f6100af3660046101d9565b600055565b60005b60015481101561010f57816001600160a01b0316600182815481106100de576100de6101f2565b6000918252602090912001546001600160a01b031614156100fd575050565b8061010781610208565b9150506100b7565b506001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0392909216919091179055565b61016d6001600061016f565b565b508054600082559060005260206000209081019061018d9190610190565b50565b5b808211156101a55760008155600101610191565b5090565b6000602082840312156101bb57600080fd5b81356001600160a01b03811681146101d257600080fd5b9392505050565b6000602082840312156101eb57600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b600060001982141561022a57634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212209bf0aac1133c8f33c8fc0ab967718aff2d96137b46622d369e167d690661dfaf64736f6c63430008090033"; public static final String FUNC_ADDTOLISTOFLOCKEDCONTRACTS = "addToListOfLockedContracts"; diff --git a/application/appcontracts/lockablestorage/src/test/java/net/consensys/gpact/lockablestorage/soliditywrappers/TestLockableStorageWrapper.java b/application/appcontracts/lockablestorage/src/test/java/net/consensys/gpact/lockablestorage/soliditywrappers/TestLockableStorageWrapper.java index 8364bc87..f6008a31 100644 --- a/application/appcontracts/lockablestorage/src/test/java/net/consensys/gpact/lockablestorage/soliditywrappers/TestLockableStorageWrapper.java +++ b/application/appcontracts/lockablestorage/src/test/java/net/consensys/gpact/lockablestorage/soliditywrappers/TestLockableStorageWrapper.java @@ -30,7 +30,7 @@ */ @SuppressWarnings("rawtypes") public class TestLockableStorageWrapper extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b50604051610be1380380610be183398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610b4e806100936000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063d4382bbe116100a2578063e97d082011610071578063e97d082014610219578063ee0a43d71461022c578063f6aacfb11461023f578063f9bb6dd214610261578063fb91385f1461027457600080fd5b8063d4382bbe146101cd578063e0091dbc146101e0578063e181aece146101f3578063e50f4b5d1461020657600080fd5b80637ad304ae116100de5780637ad304ae146101815780637ba448481461019457806399eb5d4c146101a7578063a537ea9b146101ba57600080fd5b8063317c0b2914610110578063415dba001461013657806375bb3c2a14610149578063787507771461015e575b600080fd5b61012361011e366004610a54565b61029a565b6040519081526020015b60405180910390f35b610123610144366004610a54565b6102ad565b61015c610157366004610a28565b6102b9565b005b61017161016c3660046109d3565b6102c7565b604051901515815260200161012d565b61015c61018f366004610a76565b6102d8565b61015c6101a2366004610a54565b6102e8565b61015c6101b5366004610990565b6102f2565b6101236101c83660046109d3565b6103a2565b61015c6101db366004610a54565b6103ad565b61015c6101ee366004610a76565b6103b7565b61015c6102013660046109d3565b6103c2565b6101236102143660046109d3565b6103ce565b6101236102273660046109d3565b6103d9565b61012361023a3660046109d3565b6103ed565b61017161024d3660046109d3565b600090815260026020526040902054151590565b61015c61026f3660046109ec565b6103f8565b6102826101c83660046109d3565b6040516001600160a01b03909116815260200161012d565b60006102a68383610402565b9392505050565b60006102a683836104a4565b6102c382826104ef565b5050565b60006102d28261050a565b92915050565b6102e383838361052b565b505050565b6102c38282610563565b60005b60008281526003602052604090205481101561038a57600082815260036020526040812080548390811061032b5761032b610b02565b9060005260206000200154905083156103695760008181526002602052604090205461035990600190610aba565b6000828152600160205260409020555b6000908152600260205260408120558061038281610ad1565b9150506102f5565b5060008181526003602052604081206102c391610949565b60006102d2826103ce565b6102c382826105c1565b6102e3838383610754565b6103cb816107e9565b50565b60006102d282610898565b6000818152600160205260408120546102d2565b60006102d282610907565b6102c38282610936565b60008061040e84610898565b905082811161045a5760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b60448201526064015b60405180910390fd5b60008460405160200161046f91815260200190565b60408051601f198184030181529190528051602090910120905061049b6104968583610aa2565b610898565b95945050505050565b60008083836040516020016104c3929190918252602082015260400190565b6040516020818303038152906040528051906020012090506104e78160001c610898565b949350505050565b6102c382826104ff576000610502565b60015b60ff166105c1565b600061051582610898565b6001146105235760006102d2565b600192915050565b6040805160208082018690528183018590528251808303840181526060909201909252805191012061055d81836105c1565b50505050565b600061056e83610898565b905060008360405160200161058591815260200190565b60408051601f19818403018152919052805160209091012090506105b26105ac8383610aa2565b846105c1565b61055d846105c1846001610aa2565b600082815260026020526040902054156106145760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b6044820152606401610451565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b15801561066357600080fd5b505afa158015610677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069b91906109ba565b9050806106b5575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b1580156106fa57600080fd5b505af115801561070e573d6000803e3d6000fd5b505050600082815260036020908152604082208054600181810183559184529190922001859055610740915083610aa2565b600084815260026020526040902055505050565b600061075f84610898565b90508083106107a65760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610451565b6000846040516020016107bb91815260200190565b60408051601f19818403018152919052805160209091012090506107e26105ac8583610aa2565b5050505050565b60006107f482610898565b9050600081116108465760405162461bcd60e51b815260206004820152601e60248201527f506f702063616c6c6564206f6e7a65726f206c656e67746820617272617900006044820152606401610451565b60008260405160200161085b91815260200190565b60408051601f19818403018152919052805160209091012090506108896108828383610aa2565b60006105c1565b6102e3836105c1600185610aba565b600081815260026020526040812054156108f45760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b6564006044820152606401610451565b5060009081526001602052604090205490565b600081815260026020526040812054156108f4576000828152600260205260409020546102d290600190610aba565b6102c382826001600160a01b03166105c1565b50805460008255906000526020600020908101906103cb91905b808211156109775760008155600101610963565b5090565b8035801515811461098b57600080fd5b919050565b600080604083850312156109a357600080fd5b6109ac8361097b565b946020939093013593505050565b6000602082840312156109cc57600080fd5b5051919050565b6000602082840312156109e557600080fd5b5035919050565b600080604083850312156109ff57600080fd5b8235915060208301356001600160a01b0381168114610a1d57600080fd5b809150509250929050565b60008060408385031215610a3b57600080fd5b82359150610a4b6020840161097b565b90509250929050565b60008060408385031215610a6757600080fd5b50508035926020909101359150565b600080600060608486031215610a8b57600080fd5b505081359360208301359350604090920135919050565b60008219821115610ab557610ab5610aec565b500190565b600082821015610acc57610acc610aec565b500390565b6000600019821415610ae557610ae5610aec565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea2646970667358221220177e96657d39a8cd68fcf2c87daeb4111ab70f933f49a2de119a7c0b479bf17a64736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b50604051610be1380380610be183398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610b4e806100936000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063d4382bbe116100a2578063e97d082011610071578063e97d082014610219578063ee0a43d71461022c578063f6aacfb11461023f578063f9bb6dd214610261578063fb91385f1461027457600080fd5b8063d4382bbe146101cd578063e0091dbc146101e0578063e181aece146101f3578063e50f4b5d1461020657600080fd5b80637ad304ae116100de5780637ad304ae146101815780637ba448481461019457806399eb5d4c146101a7578063a537ea9b146101ba57600080fd5b8063317c0b2914610110578063415dba001461013657806375bb3c2a14610149578063787507771461015e575b600080fd5b61012361011e36600461097b565b61029a565b6040519081526020015b60405180910390f35b61012361014436600461097b565b6102ad565b61015c6101573660046109b2565b6102b9565b005b61017161016c3660046109de565b6102c7565b604051901515815260200161012d565b61015c61018f3660046109f7565b6102d8565b61015c6101a236600461097b565b6102e8565b61015c6101b5366004610a23565b6102f2565b6101236101c83660046109de565b6103a2565b61015c6101db36600461097b565b6103ad565b61015c6101ee3660046109f7565b6103b7565b61015c6102013660046109de565b6103c2565b6101236102143660046109de565b6103ce565b6101236102273660046109de565b6103d9565b61012361023a3660046109de565b6103ed565b61017161024d3660046109de565b600090815260026020526040902054151590565b61015c61026f366004610a4d565b6103f8565b6102826101c83660046109de565b6040516001600160a01b03909116815260200161012d565b60006102a68383610402565b9392505050565b60006102a683836104a4565b6102c382826104ef565b5050565b60006102d28261050a565b92915050565b6102e383838361052b565b505050565b6102c38282610563565b60005b60008281526003602052604090205481101561038a57600082815260036020526040812080548390811061032b5761032b610a89565b9060005260206000200154905083156103695760008181526002602052604090205461035990600190610ab5565b6000828152600160205260409020555b6000908152600260205260408120558061038281610acc565b9150506102f5565b5060008181526003602052604081206102c391610949565b60006102d2826103ce565b6102c382826105c1565b6102e3838383610754565b6103cb816107e9565b50565b60006102d282610898565b6000818152600160205260408120546102d2565b60006102d282610907565b6102c38282610936565b60008061040e84610898565b905082811161045a5760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b60448201526064015b60405180910390fd5b60008460405160200161046f91815260200190565b60408051601f198184030181529190528051602090910120905061049b6104968583610ae7565b610898565b95945050505050565b60008083836040516020016104c3929190918252602082015260400190565b6040516020818303038152906040528051906020012090506104e78160001c610898565b949350505050565b6102c382826104ff576000610502565b60015b60ff166105c1565b600061051582610898565b6001146105235760006102d2565b600192915050565b6040805160208082018690528183018590528251808303840181526060909201909252805191012061055d81836105c1565b50505050565b600061056e83610898565b905060008360405160200161058591815260200190565b60408051601f19818403018152919052805160209091012090506105b26105ac8383610ae7565b846105c1565b61055d846105c1846001610ae7565b600082815260026020526040902054156106145760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b6044820152606401610451565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b15801561066357600080fd5b505afa158015610677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069b9190610aff565b9050806106b5575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b1580156106fa57600080fd5b505af115801561070e573d6000803e3d6000fd5b505050600082815260036020908152604082208054600181810183559184529190922001859055610740915083610ae7565b600084815260026020526040902055505050565b600061075f84610898565b90508083106107a65760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610451565b6000846040516020016107bb91815260200190565b60408051601f19818403018152919052805160209091012090506107e26105ac8583610ae7565b5050505050565b60006107f482610898565b9050600081116108465760405162461bcd60e51b815260206004820152601e60248201527f506f702063616c6c6564206f6e7a65726f206c656e67746820617272617900006044820152606401610451565b60008260405160200161085b91815260200190565b60408051601f19818403018152919052805160209091012090506108896108828383610ae7565b60006105c1565b6102e3836105c1600185610ab5565b600081815260026020526040812054156108f45760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b6564006044820152606401610451565b5060009081526001602052604090205490565b600081815260026020526040812054156108f4576000828152600260205260409020546102d290600190610ab5565b6102c382826001600160a01b03166105c1565b50805460008255906000526020600020908101906103cb91905b808211156109775760008155600101610963565b5090565b6000806040838503121561098e57600080fd5b50508035926020909101359150565b803580151581146109ad57600080fd5b919050565b600080604083850312156109c557600080fd5b823591506109d56020840161099d565b90509250929050565b6000602082840312156109f057600080fd5b5035919050565b600080600060608486031215610a0c57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215610a3657600080fd5b610a3f8361099d565b946020939093013593505050565b60008060408385031215610a6057600080fd5b8235915060208301356001600160a01b0381168114610a7e57600080fd5b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610ac757610ac7610a9f565b500390565b6000600019821415610ae057610ae0610a9f565b5060010190565b60008219821115610afa57610afa610a9f565b500190565b600060208284031215610b1157600080fd5b505191905056fea2646970667358221220adf198b4b69156b83bdb7fb7a028d2eba1bc68ab88ff79d63c90f0f0e08df1e264736f6c63430008090033"; public static final String FUNC_FINALISE = "finalise"; diff --git a/application/appcontracts/lockablestorage/src/test/java/net/consensys/gpact/lockablestorage/soliditywrappers/TestLockableStorageWrapperAllValues.java b/application/appcontracts/lockablestorage/src/test/java/net/consensys/gpact/lockablestorage/soliditywrappers/TestLockableStorageWrapperAllValues.java index 921883f0..0db0e16a 100644 --- a/application/appcontracts/lockablestorage/src/test/java/net/consensys/gpact/lockablestorage/soliditywrappers/TestLockableStorageWrapperAllValues.java +++ b/application/appcontracts/lockablestorage/src/test/java/net/consensys/gpact/lockablestorage/soliditywrappers/TestLockableStorageWrapperAllValues.java @@ -31,7 +31,7 @@ */ @SuppressWarnings("rawtypes") public class TestLockableStorageWrapperAllValues extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b50604051610c05380380610c0583398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610b72806100936000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063d4382bbe116100a2578063e97d082011610071578063e97d082014610244578063ee0a43d714610257578063f6aacfb11461026a578063f9bb6dd21461028c578063fb91385f1461029f57600080fd5b8063d4382bbe146101f8578063e0091dbc1461020b578063e181aece1461021e578063e50f4b5d1461023157600080fd5b806378750777116100e957806378750777146101895780637ad304ae146101ac5780637ba44848146101bf57806399eb5d4c146101d2578063a537ea9b146101e557600080fd5b8063317c0b291461011b578063415dba00146101415780637445b0d01461015457806375bb3c2a14610174575b600080fd5b61012e610129366004610a78565b6102c5565b6040519081526020015b60405180910390f35b61012e61014f366004610a78565b6102d8565b61012e6101623660046109f7565b60046020526000908152604090205481565b610187610182366004610a4c565b6102e4565b005b61019c6101973660046109f7565b6102f2565b6040519015158152602001610138565b6101876101ba366004610a9a565b610303565b6101876101cd366004610a78565b610313565b6101876101e03660046109b4565b61031d565b61012e6101f33660046109f7565b6103cb565b610187610206366004610a78565b6103d6565b610187610219366004610a9a565b6103e0565b61018761022c3660046109f7565b6103eb565b61012e61023f3660046109f7565b6103f7565b61012e6102523660046109f7565b610402565b61012e6102653660046109f7565b610416565b61019c6102783660046109f7565b600090815260046020526040902054151590565b61018761029a366004610a10565b610421565b6102ad6101f33660046109f7565b6040516001600160a01b039091168152602001610138565b60006102d1838361042b565b9392505050565b60006102d183836104cd565b6102ee8282610518565b5050565b60006102fd82610533565b92915050565b61030e838383610554565b505050565b6102ee828261058c565b60005b6000828152600360205260409020548110156103b357600082815260036020526040812080548390811061035657610356610b26565b906000526020600020015490508315610385576000818152600260209081526040808320546001909252909120555b60009081526002602090815260408083208390556004909152812055806103ab81610af5565b915050610320565b5060008181526003602052604081206102ee9161096d565b60006102fd826103f7565b6102ee82826105ea565b61030e838383610780565b6103f481610815565b50565b60006102fd826108c4565b6000818152600160205260408120546102fd565b60006102fd82610933565b6102ee828261095a565b600080610437846108c4565b90508281116104835760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b60448201526064015b60405180910390fd5b60008460405160200161049891815260200190565b60408051601f19818403018152919052805160209091012090506104c46104bf8583610ac6565b6108c4565b95945050505050565b60008083836040516020016104ec929190918252602082015260400190565b6040516020818303038152906040528051906020012090506105108160001c6108c4565b949350505050565b6102ee828261052857600061052b565b60015b60ff166105ea565b600061053e826108c4565b60011461054c5760006102fd565b600192915050565b6040805160208082018690528183018590528251808303840181526060909201909252805191012061058681836105ea565b50505050565b6000610597836108c4565b90506000836040516020016105ae91815260200190565b60408051601f19818403018152919052805160209091012090506105db6105d58383610ac6565b846105ea565b610586846105ea846001610ac6565b6000828152600460205260409020541561063d5760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b604482015260640161047a565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b15801561068c57600080fd5b505afa1580156106a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c491906109de565b9050806106de575060009182526001602052604090912055565b600083815260046020819052604080832084905591549151631ce7083f60e11b815230918101919091526001600160a01b03909116906339ce107e90602401600060405180830381600087803b15801561073757600080fd5b505af115801561074b573d6000803e3d6000fd5b505050600091825250600360209081526040808320805460018101825590845282842001859055938252600290529190912055565b600061078b846108c4565b90508083106107d25760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b604482015260640161047a565b6000846040516020016107e791815260200190565b60408051601f198184030181529190528051602090910120905061080e6105d58583610ac6565b5050505050565b6000610820826108c4565b9050600081116108725760405162461bcd60e51b815260206004820152601e60248201527f506f702063616c6c6564206f6e7a65726f206c656e6774682061727261790000604482015260640161047a565b60008260405160200161088791815260200190565b60408051601f19818403018152919052805160209091012090506108b56108ae8383610ac6565b60006105ea565b61030e836105ea600185610ade565b600081815260046020526040812054156109205760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b656400604482015260640161047a565b5060009081526001602052604090205490565b60008181526004602052604081205415610920575060009081526002602052604090205490565b6102ee82826001600160a01b03166105ea565b50805460008255906000526020600020908101906103f491905b8082111561099b5760008155600101610987565b5090565b803580151581146109af57600080fd5b919050565b600080604083850312156109c757600080fd5b6109d08361099f565b946020939093013593505050565b6000602082840312156109f057600080fd5b5051919050565b600060208284031215610a0957600080fd5b5035919050565b60008060408385031215610a2357600080fd5b8235915060208301356001600160a01b0381168114610a4157600080fd5b809150509250929050565b60008060408385031215610a5f57600080fd5b82359150610a6f6020840161099f565b90509250929050565b60008060408385031215610a8b57600080fd5b50508035926020909101359150565b600080600060608486031215610aaf57600080fd5b505081359360208301359350604090920135919050565b60008219821115610ad957610ad9610b10565b500190565b600082821015610af057610af0610b10565b500390565b6000600019821415610b0957610b09610b10565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea264697066735822122083d2b705f44bcc69d63c955991896d345cd5023bac79de06429f9d264e27fd3264736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b50604051610c05380380610c0583398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610b72806100936000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063d4382bbe116100a2578063e97d082011610071578063e97d082014610244578063ee0a43d714610257578063f6aacfb11461026a578063f9bb6dd21461028c578063fb91385f1461029f57600080fd5b8063d4382bbe146101f8578063e0091dbc1461020b578063e181aece1461021e578063e50f4b5d1461023157600080fd5b806378750777116100e957806378750777146101895780637ad304ae146101ac5780637ba44848146101bf57806399eb5d4c146101d2578063a537ea9b146101e557600080fd5b8063317c0b291461011b578063415dba00146101415780637445b0d01461015457806375bb3c2a14610174575b600080fd5b61012e61012936600461099f565b6102c5565b6040519081526020015b60405180910390f35b61012e61014f36600461099f565b6102d8565b61012e6101623660046109c1565b60046020526000908152604090205481565b6101876101823660046109ef565b6102e4565b005b61019c6101973660046109c1565b6102f2565b6040519015158152602001610138565b6101876101ba366004610a1b565b610303565b6101876101cd36600461099f565b610313565b6101876101e0366004610a47565b61031d565b61012e6101f33660046109c1565b6103cb565b61018761020636600461099f565b6103d6565b610187610219366004610a1b565b6103e0565b61018761022c3660046109c1565b6103eb565b61012e61023f3660046109c1565b6103f7565b61012e6102523660046109c1565b610402565b61012e6102653660046109c1565b610416565b61019c6102783660046109c1565b600090815260046020526040902054151590565b61018761029a366004610a71565b610421565b6102ad6101f33660046109c1565b6040516001600160a01b039091168152602001610138565b60006102d1838361042b565b9392505050565b60006102d183836104cd565b6102ee8282610518565b5050565b60006102fd82610533565b92915050565b61030e838383610554565b505050565b6102ee828261058c565b60005b6000828152600360205260409020548110156103b357600082815260036020526040812080548390811061035657610356610aad565b906000526020600020015490508315610385576000818152600260209081526040808320546001909252909120555b60009081526002602090815260408083208390556004909152812055806103ab81610ad9565b915050610320565b5060008181526003602052604081206102ee9161096d565b60006102fd826103f7565b6102ee82826105ea565b61030e838383610780565b6103f481610815565b50565b60006102fd826108c4565b6000818152600160205260408120546102fd565b60006102fd82610933565b6102ee828261095a565b600080610437846108c4565b90508281116104835760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b60448201526064015b60405180910390fd5b60008460405160200161049891815260200190565b60408051601f19818403018152919052805160209091012090506104c46104bf8583610af4565b6108c4565b95945050505050565b60008083836040516020016104ec929190918252602082015260400190565b6040516020818303038152906040528051906020012090506105108160001c6108c4565b949350505050565b6102ee828261052857600061052b565b60015b60ff166105ea565b600061053e826108c4565b60011461054c5760006102fd565b600192915050565b6040805160208082018690528183018590528251808303840181526060909201909252805191012061058681836105ea565b50505050565b6000610597836108c4565b90506000836040516020016105ae91815260200190565b60408051601f19818403018152919052805160209091012090506105db6105d58383610af4565b846105ea565b610586846105ea846001610af4565b6000828152600460205260409020541561063d5760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b604482015260640161047a565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b15801561068c57600080fd5b505afa1580156106a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c49190610b0c565b9050806106de575060009182526001602052604090912055565b600083815260046020819052604080832084905591549151631ce7083f60e11b815230918101919091526001600160a01b03909116906339ce107e90602401600060405180830381600087803b15801561073757600080fd5b505af115801561074b573d6000803e3d6000fd5b505050600091825250600360209081526040808320805460018101825590845282842001859055938252600290529190912055565b600061078b846108c4565b90508083106107d25760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b604482015260640161047a565b6000846040516020016107e791815260200190565b60408051601f198184030181529190528051602090910120905061080e6105d58583610af4565b5050505050565b6000610820826108c4565b9050600081116108725760405162461bcd60e51b815260206004820152601e60248201527f506f702063616c6c6564206f6e7a65726f206c656e6774682061727261790000604482015260640161047a565b60008260405160200161088791815260200190565b60408051601f19818403018152919052805160209091012090506108b56108ae8383610af4565b60006105ea565b61030e836105ea600185610b25565b600081815260046020526040812054156109205760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b656400604482015260640161047a565b5060009081526001602052604090205490565b60008181526004602052604081205415610920575060009081526002602052604090205490565b6102ee82826001600160a01b03166105ea565b50805460008255906000526020600020908101906103f491905b8082111561099b5760008155600101610987565b5090565b600080604083850312156109b257600080fd5b50508035926020909101359150565b6000602082840312156109d357600080fd5b5035919050565b803580151581146109ea57600080fd5b919050565b60008060408385031215610a0257600080fd5b82359150610a12602084016109da565b90509250929050565b600080600060608486031215610a3057600080fd5b505081359360208301359350604090920135919050565b60008060408385031215610a5a57600080fd5b610a63836109da565b946020939093013593505050565b60008060408385031215610a8457600080fd5b8235915060208301356001600160a01b0381168114610aa257600080fd5b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415610aed57610aed610ac3565b5060010190565b60008219821115610b0757610b07610ac3565b500190565b600060208284031215610b1e57600080fd5b5051919050565b600082821015610b3757610b37610ac3565b50039056fea26469706673582212207ceef023fb0bf44f3aa06b92255ddb9e6cb040cadabc5362561dc289f85a3e5e64736f6c63430008090033"; public static final String FUNC_FINALISE = "finalise"; diff --git a/application/gpact-examples/conditional/src/main/java/net/consensys/gpact/examples/conditional/soliditywrappers/OtherBlockchainContract.java b/application/gpact-examples/conditional/src/main/java/net/consensys/gpact/examples/conditional/soliditywrappers/OtherBlockchainContract.java index bbb4538d..d08302ee 100644 --- a/application/gpact-examples/conditional/src/main/java/net/consensys/gpact/examples/conditional/soliditywrappers/OtherBlockchainContract.java +++ b/application/gpact-examples/conditional/src/main/java/net/consensys/gpact/examples/conditional/soliditywrappers/OtherBlockchainContract.java @@ -29,7 +29,7 @@ */ @SuppressWarnings("rawtypes") public class OtherBlockchainContract extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b506040516105fa3803806105fa83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610567806100936000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80630d7f9bde146100675780633d4197f01461007157806399eb5d4c146100845780639c3dfaf614610097578063e1cb0e52146100aa578063f6aacfb1146100c5575b600080fd5b61006f6100f7565b005b61006f61007f366004610480565b610120565b61006f610092366004610436565b61012b565b61006f6100a5366004610499565b6101df565b6100b26101ec565b6040519081526020015b60405180910390f35b6100e76100d3366004610480565b600090815260026020526040902054151590565b60405190151581526020016100bc565b600061010360016101fd565b90508061010f816104ea565b91505061011d600182610271565b50565b61011d600182610271565b60005b6000828152600360205260409020548110156101c35760008281526003602052604081208054839081106101645761016461051b565b9060005260206000200154905083156101a257600081815260026020526040902054610192906001906104d3565b6000828152600160205260409020555b600090815260026020526040812055806101bb816104ea565b91505061012e565b5060008181526003602052604081206101db91610404565b5050565b6101db61007f82846104bb565b60006101f860016101fd565b905090565b6000818152600260205260408120541561025e5760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b65640060448201526064015b60405180910390fd5b5060009081526001602052604090205490565b600082815260026020526040902054156102c45760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b6044820152606401610255565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b15801561031357600080fd5b505afa158015610327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034b9190610467565b905080610365575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b1580156103aa57600080fd5b505af11580156103be573d6000803e3d6000fd5b5050506000828152600360209081526040822080546001818101835591845291909220018590556103f09150836104bb565b600084815260026020526040902055505050565b508054600082559060005260206000209081019061011d91905b80821115610432576000815560010161041e565b5090565b6000806040838503121561044957600080fd5b8235801515811461045957600080fd5b946020939093013593505050565b60006020828403121561047957600080fd5b5051919050565b60006020828403121561049257600080fd5b5035919050565b600080604083850312156104ac57600080fd5b50508035926020909101359150565b600082198211156104ce576104ce610505565b500190565b6000828210156104e5576104e5610505565b500390565b60006000198214156104fe576104fe610505565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea2646970667358221220949916cbf8c8de12107d8ae3fe9b5c56c424ec9a2426eef0ce754c5a917006c464736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b506040516105fa3803806105fa83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610567806100936000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80630d7f9bde146100675780633d4197f01461007157806399eb5d4c146100845780639c3dfaf614610097578063e1cb0e52146100aa578063f6aacfb1146100c5575b600080fd5b61006f6100f7565b005b61006f61007f366004610436565b610120565b61006f61009236600461044f565b61012b565b61006f6100a5366004610480565b6101df565b6100b26101ec565b6040519081526020015b60405180910390f35b6100e76100d3366004610436565b600090815260026020526040902054151590565b60405190151581526020016100bc565b600061010360016101fd565b90508061010f816104b8565b91505061011d600182610271565b50565b61011d600182610271565b60005b6000828152600360205260409020548110156101c3576000828152600360205260408120805483908110610164576101646104d3565b9060005260206000200154905083156101a257600081815260026020526040902054610192906001906104e9565b6000828152600160205260409020555b600090815260026020526040812055806101bb816104b8565b91505061012e565b5060008181526003602052604081206101db91610404565b5050565b6101db61007f8284610500565b60006101f860016101fd565b905090565b6000818152600260205260408120541561025e5760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b65640060448201526064015b60405180910390fd5b5060009081526001602052604090205490565b600082815260026020526040902054156102c45760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b6044820152606401610255565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b15801561031357600080fd5b505afa158015610327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034b9190610518565b905080610365575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b1580156103aa57600080fd5b505af11580156103be573d6000803e3d6000fd5b5050506000828152600360209081526040822080546001818101835591845291909220018590556103f0915083610500565b600084815260026020526040902055505050565b508054600082559060005260206000209081019061011d91905b80821115610432576000815560010161041e565b5090565b60006020828403121561044857600080fd5b5035919050565b6000806040838503121561046257600080fd5b8235801515811461047257600080fd5b946020939093013593505050565b6000806040838503121561049357600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b60006000198214156104cc576104cc6104a2565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6000828210156104fb576104fb6104a2565b500390565b60008219821115610513576105136104a2565b500190565b60006020828403121561052a57600080fd5b505191905056fea2646970667358221220ff3e9b216f486291abf77fd75e3cf116a1bc1966fe769c226137d71f0fc1981064736f6c63430008090033"; public static final String FUNC_FINALISE = "finalise"; diff --git a/application/gpact-examples/conditional/src/main/java/net/consensys/gpact/examples/conditional/soliditywrappers/RootBlockchainContract.java b/application/gpact-examples/conditional/src/main/java/net/consensys/gpact/examples/conditional/soliditywrappers/RootBlockchainContract.java index 878bc746..e4a1147b 100644 --- a/application/gpact-examples/conditional/src/main/java/net/consensys/gpact/examples/conditional/soliditywrappers/RootBlockchainContract.java +++ b/application/gpact-examples/conditional/src/main/java/net/consensys/gpact/examples/conditional/soliditywrappers/RootBlockchainContract.java @@ -29,7 +29,7 @@ */ @SuppressWarnings("rawtypes") public class RootBlockchainContract extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b506040516108c33803806108c383398101604081905261002f91610082565b600080546001600160a01b039485166001600160a01b031991821617909155600492909255600580549190931691161790556100be565b80516001600160a01b038116811461007d57600080fd5b919050565b60008060006060848603121561009757600080fd5b6100a084610066565b9250602084015191506100b560408501610066565b90509250925092565b6107f6806100cd6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063b52b657d1161005b578063b52b657d146100bd578063cb8b383b146100d0578063d9801925146100eb578063f6aacfb1146100f357600080fd5b806358033de11461008257806399eb5d4c14610097578063b5133231146100aa575b600080fd5b6100956100903660046106c5565b610125565b005b6100956100a536600461067b565b61035c565b6100956100b83660046106c5565b61040c565b6100956100cb3660046106c5565b61041a565b6100d8610425565b6040519081526020015b60405180910390f35b6100d8610436565b6101156101013660046106c5565b600090815260026020526040902054151590565b60405190151581526020016100e2565b6000805460048054600554604080518481526024810182526020810180516001600160e01b03166370e5872960e11b1790529051632388b54d60e21b81526001600160a01b0395861695638e22d5349561018595949091169291016106de565b602060405180830381600087803b15801561019f57600080fd5b505af11580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d791906106ac565b90506101e28161041a565b808211156102a057600054600480546005546040805160248101889052604480820188905282518083039091018152606490910182526020810180516001600160e01b0316634e1efd7b60e11b17905290516392b2c33560e01b81526001600160a01b03958616956392b2c335956102619594919091169291016106de565b600060405180830381600087803b15801561027b57600080fd5b505af115801561028f573d6000803e3d6000fd5b5050505061029c8161040c565b5050565b60006102ad83600d61074a565b6000546004805460055460408051602480820188905282518083039091018152604490910182526020810180516001600160e01b03166303d4197f60e41b17905290516392b2c33560e01b81529596506001600160a01b03948516956392b2c3359561031c95931692016106de565b600060405180830381600087803b15801561033657600080fd5b505af115801561034a573d6000803e3d6000fd5b505050506103578361040c565b505050565b60005b6000828152600360205260409020548110156103f4576000828152600360205260408120805483908110610395576103956107aa565b9060005260206000200154905083156103d3576000818152600260205260409020546103c390600190610762565b6000828152600160205260409020555b600090815260026020526040812055806103ec81610779565b91505061035f565b50600081815260036020526040812061029c91610649565b610417600082610442565b50565b610417600182610442565b600061043160006105da565b905090565b600061043160016105da565b6000828152600260205260409020541561049a5760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b60448201526064015b60405180910390fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b1580156104e957600080fd5b505afa1580156104fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052191906106ac565b90508061053b575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b15801561058057600080fd5b505af1158015610594573d6000803e3d6000fd5b5050506000828152600360209081526040822080546001818101835591845291909220018590556105c691508361074a565b600084815260026020526040902055505050565b600081815260026020526040812054156106365760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b6564006044820152606401610491565b5060009081526001602052604090205490565b508054600082559060005260206000209081019061041791905b808211156106775760008155600101610663565b5090565b6000806040838503121561068e57600080fd5b8235801515811461069e57600080fd5b946020939093013593505050565b6000602082840312156106be57600080fd5b5051919050565b6000602082840312156106d757600080fd5b5035919050565b8381526000602060018060a01b0385168184015260606040840152835180606085015260005b8181101561072057858101830151858201608001528201610704565b81811115610732576000608083870101525b50601f01601f19169290920160800195945050505050565b6000821982111561075d5761075d610794565b500190565b60008282101561077457610774610794565b500390565b600060001982141561078d5761078d610794565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea2646970667358221220be6593a67eb7c309a0029291745b8e3d603a74a0417b825447989e27c9d37b4064736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b506040516108c33803806108c383398101604081905261002f91610082565b600080546001600160a01b039485166001600160a01b031991821617909155600492909255600580549190931691161790556100be565b80516001600160a01b038116811461007d57600080fd5b919050565b60008060006060848603121561009757600080fd5b6100a084610066565b9250602084015191506100b560408501610066565b90509250925092565b6107f6806100cd6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063b52b657d1161005b578063b52b657d146100bd578063cb8b383b146100d0578063d9801925146100eb578063f6aacfb1146100f357600080fd5b806358033de11461008257806399eb5d4c14610097578063b5133231146100aa575b600080fd5b61009561009036600461067b565b610125565b005b6100956100a5366004610694565b61035c565b6100956100b836600461067b565b61040c565b6100956100cb36600461067b565b61041a565b6100d8610425565b6040519081526020015b60405180910390f35b6100d8610436565b61011561010136600461067b565b600090815260026020526040902054151590565b60405190151581526020016100e2565b6000805460048054600554604080518481526024810182526020810180516001600160e01b03166370e5872960e11b1790529051632388b54d60e21b81526001600160a01b0395861695638e22d5349561018595949091169291016106c5565b602060405180830381600087803b15801561019f57600080fd5b505af11580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610731565b90506101e28161041a565b808211156102a057600054600480546005546040805160248101889052604480820188905282518083039091018152606490910182526020810180516001600160e01b0316634e1efd7b60e11b17905290516392b2c33560e01b81526001600160a01b03958616956392b2c335956102619594919091169291016106c5565b600060405180830381600087803b15801561027b57600080fd5b505af115801561028f573d6000803e3d6000fd5b5050505061029c8161040c565b5050565b60006102ad83600d610760565b6000546004805460055460408051602480820188905282518083039091018152604490910182526020810180516001600160e01b03166303d4197f60e41b17905290516392b2c33560e01b81529596506001600160a01b03948516956392b2c3359561031c95931692016106c5565b600060405180830381600087803b15801561033657600080fd5b505af115801561034a573d6000803e3d6000fd5b505050506103578361040c565b505050565b60005b6000828152600360205260409020548110156103f457600082815260036020526040812080548390811061039557610395610778565b9060005260206000200154905083156103d3576000818152600260205260409020546103c39060019061078e565b6000828152600160205260409020555b600090815260026020526040812055806103ec816107a5565b91505061035f565b50600081815260036020526040812061029c91610649565b610417600082610442565b50565b610417600182610442565b600061043160006105da565b905090565b600061043160016105da565b6000828152600260205260409020541561049a5760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b60448201526064015b60405180910390fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b1580156104e957600080fd5b505afa1580156104fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105219190610731565b90508061053b575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b15801561058057600080fd5b505af1158015610594573d6000803e3d6000fd5b5050506000828152600360209081526040822080546001818101835591845291909220018590556105c6915083610760565b600084815260026020526040902055505050565b600081815260026020526040812054156106365760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b6564006044820152606401610491565b5060009081526001602052604090205490565b508054600082559060005260206000209081019061041791905b808211156106775760008155600101610663565b5090565b60006020828403121561068d57600080fd5b5035919050565b600080604083850312156106a757600080fd5b823580151581146106b757600080fd5b946020939093013593505050565b8381526000602060018060a01b0385168184015260606040840152835180606085015260005b81811015610707578581018301518582016080015282016106eb565b81811115610719576000608083870101525b50601f01601f19169290920160800195945050505050565b60006020828403121561074357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156107735761077361074a565b500190565b634e487b7160e01b600052603260045260246000fd5b6000828210156107a0576107a061074a565b500390565b60006000198214156107b9576107b961074a565b506001019056fea2646970667358221220bf1464a3076d834102f26ada9630448f139d427e2ff2600774ca0ca8903ac21264736f6c63430008090033"; public static final String FUNC_FINALISE = "finalise"; diff --git a/application/gpact-examples/hotel-train/src/main/java/net/consensys/gpact/examples/hoteltrain/soliditywrappers/Hotel.java b/application/gpact-examples/hotel-train/src/main/java/net/consensys/gpact/examples/hoteltrain/soliditywrappers/Hotel.java index 892660c3..93f75be1 100644 --- a/application/gpact-examples/hotel-train/src/main/java/net/consensys/gpact/examples/hoteltrain/soliditywrappers/Hotel.java +++ b/application/gpact-examples/hotel-train/src/main/java/net/consensys/gpact/examples/hoteltrain/soliditywrappers/Hotel.java @@ -34,7 +34,7 @@ */ @SuppressWarnings("rawtypes") public class Hotel extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b50604051610e4e380380610e4e83398101604081905261002f91610089565b600080546001600160a01b039283166001600160a01b03199182161790915560078054821633179055600880549390921692169190911790556100bc565b80516001600160a01b038116811461008457600080fd5b919050565b6000806040838503121561009c57600080fd5b6100a58361006d565b91506100b36020840161006d565b90509250929050565b610d83806100cb6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637ebf2c60116100665780637ebf2c601461010657806399eb5d4c14610119578063d131aa7e1461012c578063f40109951461014d578063f6aacfb11461016d57600080fd5b80631358646e14610098578063184ad3c6146100ad5780631b474cf7146100c05780633ca1a5b4146100f3575b600080fd5b6100ab6100a6366004610c3a565b61019f565b005b6100ab6100bb366004610bdc565b61044c565b6100d36100ce366004610bc3565b6104aa565b604080519384526020840192909252908201526060015b60405180910390f35b6100ab610101366004610c18565b6104f0565b6100ab610114366004610c18565b610517565b6100ab610127366004610b7e565b610570565b61013f61013a366004610bc3565b610620565b6040519081526020016100ea565b61016061015b366004610bc3565b61067b565b6040516100ea9190610c66565b61018f61017b366004610bc3565b600090815260026020526040902054151590565b60405190151581526020016100ea565b6000546001600160a01b031633146101fe5760405162461bcd60e51b815260206004820152601760248201527f4d7573742062652063726f7373636861696e2063616c6c00000000000000000060448201526064015b60405180910390fd5b600080610209610774565b60008281526006602052604090205491945092508291506001600160a01b0380831691161461028a5760405162461bcd60e51b815260206004820152602760248201527f53656e646572206973206e6f7420616e20617070726f7665642074726176656c604482015266206167656e637960c81b60648201526084016101f5565b856102ce5760405162461bcd60e51b8152602060048201526014602482015273446174652063616e206e6f74206265207a65726f60601b60448201526064016101f5565b60005b60045481101561040e5760006102e86000836107ac565b90506102f66001838a6107f7565b1580156103035750858111155b8015610323575060006103186001848b61084b565b6001600160a01b0316145b156103fb576103356001838a32610888565b610341600288846108ca565b61034d6003888a6108ca565b6008546001600160a01b03848116600090815260056020526040908190205460075491516323b872dd60e01b815290831660048201529082166024820152604481018490529116906323b872dd90606401602060405180830381600087803b1580156103b857600080fd5b505af11580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f09190610b5a565b505050505050505050565b508061040681610ce2565b9150506102d1565b5060405162461bcd60e51b81526020600482015260126024820152714e6f20726f6f6d7320617661696c61626c6560701b60448201526064016101f5565b6007546001600160a01b0316331461046357600080fd5b600092835260066020908152604080852080546001600160a01b03199081166001600160a01b03968716908117909255908652600590925290932080549093169116179055565b60008060006104ba6003856107ac565b9050806104ce5760009250600091506104e9565b6104d96002856107ac565b91506104e66000836107ac565b92505b9193909250565b6007546001600160a01b0316331461050757600080fd5b610513600083836108ca565b5050565b6007546001600160a01b0316331461052e57600080fd5b60005b8181101561056b576004805461055991600091908261054f83610ce2565b91905055856108ca565b8061056381610ce2565b915050610531565b505050565b60005b6000828152600360205260409020548110156106085760008281526003602052604081208054839081106105a9576105a9610d13565b9060005260206000200154905083156105e7576000818152600260205260409020546105d790600190610ccb565b6000828152600160205260409020555b6000908152600260205260408120558061060081610ce2565b915050610573565b50600081815260036020526040812061051391610b04565b6000805b6004548110156106755761063a600182856107f7565b158015610650575061064e6001828561084b565b155b15610663578161065f81610ce2565b9250505b8061066d81610ce2565b915050610624565b50919050565b6060600061068883610620565b9050806004546106989190610ccb565b67ffffffffffffffff8111156106b0576106b0610d29565b6040519080825280602002602001820160405280156106d9578160200160208202803683370190505b5091506000805b60045481101561076c576106f6600182876107f7565b61075a5760006107086001838861084b565b90506001600160a01b038116156107585780858461072581610ce2565b95508151811061073757610737610d13565b60200260200101906001600160a01b031690816001600160a01b0316815250505b505b8061076481610ce2565b9150506106e0565b505050919050565b600080808036806020605f19820184376000519550602060408203600037600051945060208082036000376000519350505050909192565b60008083836040516020016107cb929190918252602082015260400190565b6040516020818303038152906040528051906020012090506107ef8160001c610902565b949350505050565b604080516020810185905290810183905260608101829052600090819060800160408051601f1981840301815291815281516020928301206000818152600290935291205490915015155b95945050505050565b6040805160208082018690528183018590526060808301859052835180840390910181526080909201909252805191012060009061084281610902565b604080516020808201879052818301869052606080830186905283518084039091018152608090920190925280519101206108c38183610971565b5050505050565b604080516020808201869052818301859052825180830384018152606090920190925280519101206108fc8183610971565b50505050565b6000818152600260205260408120541561095e5760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b65640060448201526064016101f5565b5060009081526001602052604090205490565b600082815260026020526040902054156109c45760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b60448201526064016101f5565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b158015610a1357600080fd5b505afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190610baa565b905080610a65575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b158015610aaa57600080fd5b505af1158015610abe573d6000803e3d6000fd5b505050600082815260036020908152604082208054600181810183559184529190922001859055610af0915083610cb3565b600084815260026020526040902055505050565b5080546000825590600052602060002090810190610b229190610b25565b50565b5b80821115610b3a5760008155600101610b26565b5090565b80356001600160a01b0381168114610b5557600080fd5b919050565b600060208284031215610b6c57600080fd5b8151610b7781610d3f565b9392505050565b60008060408385031215610b9157600080fd5b8235610b9c81610d3f565b946020939093013593505050565b600060208284031215610bbc57600080fd5b5051919050565b600060208284031215610bd557600080fd5b5035919050565b600080600060608486031215610bf157600080fd5b83359250610c0160208501610b3e565b9150610c0f60408501610b3e565b90509250925092565b60008060408385031215610c2b57600080fd5b50508035926020909101359150565b600080600060608486031215610c4f57600080fd5b505081359360208301359350604090920135919050565b6020808252825182820181905260009190848201906040850190845b81811015610ca75783516001600160a01b031683529284019291840191600101610c82565b50909695505050505050565b60008219821115610cc657610cc6610cfd565b500190565b600082821015610cdd57610cdd610cfd565b500390565b6000600019821415610cf657610cf6610cfd565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8015158114610b2257600080fdfea2646970667358221220ddb7cfa4f17526ea03fb83ede142918591bd0b49941cdfa9d0d49c93e8ce2d2064736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b50604051610e4e380380610e4e83398101604081905261002f91610089565b600080546001600160a01b039283166001600160a01b03199182161790915560078054821633179055600880549390921692169190911790556100bc565b80516001600160a01b038116811461008457600080fd5b919050565b6000806040838503121561009c57600080fd5b6100a58361006d565b91506100b36020840161006d565b90509250929050565b610d83806100cb6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637ebf2c60116100665780637ebf2c601461010657806399eb5d4c14610119578063d131aa7e1461012c578063f40109951461014d578063f6aacfb11461016d57600080fd5b80631358646e14610098578063184ad3c6146100ad5780631b474cf7146100c05780633ca1a5b4146100f3575b600080fd5b6100ab6100a6366004610b3e565b61019f565b005b6100ab6100bb366004610b86565b61044c565b6100d36100ce366004610bc2565b6104aa565b604080519384526020840192909252908201526060015b60405180910390f35b6100ab610101366004610bdb565b6104f0565b6100ab610114366004610bdb565b610517565b6100ab610127366004610c0b565b610570565b61013f61013a366004610bc2565b610620565b6040519081526020016100ea565b61016061015b366004610bc2565b61067b565b6040516100ea9190610c37565b61018f61017b366004610bc2565b600090815260026020526040902054151590565b60405190151581526020016100ea565b6000546001600160a01b031633146101fe5760405162461bcd60e51b815260206004820152601760248201527f4d7573742062652063726f7373636861696e2063616c6c00000000000000000060448201526064015b60405180910390fd5b600080610209610774565b60008281526006602052604090205491945092508291506001600160a01b0380831691161461028a5760405162461bcd60e51b815260206004820152602760248201527f53656e646572206973206e6f7420616e20617070726f7665642074726176656c604482015266206167656e637960c81b60648201526084016101f5565b856102ce5760405162461bcd60e51b8152602060048201526014602482015273446174652063616e206e6f74206265207a65726f60601b60448201526064016101f5565b60005b60045481101561040e5760006102e86000836107ac565b90506102f66001838a6107f7565b1580156103035750858111155b8015610323575060006103186001848b61084b565b6001600160a01b0316145b156103fb576103356001838a32610888565b610341600288846108ca565b61034d6003888a6108ca565b6008546001600160a01b03848116600090815260056020526040908190205460075491516323b872dd60e01b815290831660048201529082166024820152604481018490529116906323b872dd90606401602060405180830381600087803b1580156103b857600080fd5b505af11580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f09190610c84565b505050505050505050565b508061040681610cbe565b9150506102d1565b5060405162461bcd60e51b81526020600482015260126024820152714e6f20726f6f6d7320617661696c61626c6560701b60448201526064016101f5565b6007546001600160a01b0316331461046357600080fd5b600092835260066020908152604080852080546001600160a01b03199081166001600160a01b03968716908117909255908652600590925290932080549093169116179055565b60008060006104ba6003856107ac565b9050806104ce5760009250600091506104e9565b6104d96002856107ac565b91506104e66000836107ac565b92505b9193909250565b6007546001600160a01b0316331461050757600080fd5b610513600083836108ca565b5050565b6007546001600160a01b0316331461052e57600080fd5b60005b8181101561056b576004805461055991600091908261054f83610cbe565b91905055856108ca565b8061056381610cbe565b915050610531565b505050565b60005b6000828152600360205260409020548110156106085760008281526003602052604081208054839081106105a9576105a9610cd9565b9060005260206000200154905083156105e7576000818152600260205260409020546105d790600190610cef565b6000828152600160205260409020555b6000908152600260205260408120558061060081610cbe565b915050610573565b50600081815260036020526040812061051391610b04565b6000805b6004548110156106755761063a600182856107f7565b158015610650575061064e6001828561084b565b155b15610663578161065f81610cbe565b9250505b8061066d81610cbe565b915050610624565b50919050565b6060600061068883610620565b9050806004546106989190610cef565b67ffffffffffffffff8111156106b0576106b0610d06565b6040519080825280602002602001820160405280156106d9578160200160208202803683370190505b5091506000805b60045481101561076c576106f6600182876107f7565b61075a5760006107086001838861084b565b90506001600160a01b038116156107585780858461072581610cbe565b95508151811061073757610737610cd9565b60200260200101906001600160a01b031690816001600160a01b0316815250505b505b8061076481610cbe565b9150506106e0565b505050919050565b600080808036806020605f19820184376000519550602060408203600037600051945060208082036000376000519350505050909192565b60008083836040516020016107cb929190918252602082015260400190565b6040516020818303038152906040528051906020012090506107ef8160001c610902565b949350505050565b604080516020810185905290810183905260608101829052600090819060800160408051601f1981840301815291815281516020928301206000818152600290935291205490915015155b95945050505050565b6040805160208082018690528183018590526060808301859052835180840390910181526080909201909252805191012060009061084281610902565b604080516020808201879052818301869052606080830186905283518084039091018152608090920190925280519101206108c38183610971565b5050505050565b604080516020808201869052818301859052825180830384018152606090920190925280519101206108fc8183610971565b50505050565b6000818152600260205260408120541561095e5760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b65640060448201526064016101f5565b5060009081526001602052604090205490565b600082815260026020526040902054156109c45760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b60448201526064016101f5565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b158015610a1357600080fd5b505afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190610d1c565b905080610a65575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b158015610aaa57600080fd5b505af1158015610abe573d6000803e3d6000fd5b505050600082815260036020908152604082208054600181810183559184529190922001859055610af0915083610d35565b600084815260026020526040902055505050565b5080546000825590600052602060002090810190610b229190610b25565b50565b5b80821115610b3a5760008155600101610b26565b5090565b600080600060608486031215610b5357600080fd5b505081359360208301359350604090920135919050565b80356001600160a01b0381168114610b8157600080fd5b919050565b600080600060608486031215610b9b57600080fd5b83359250610bab60208501610b6a565b9150610bb960408501610b6a565b90509250925092565b600060208284031215610bd457600080fd5b5035919050565b60008060408385031215610bee57600080fd5b50508035926020909101359150565b8015158114610b2257600080fd5b60008060408385031215610c1e57600080fd5b8235610c2981610bfd565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b81811015610c785783516001600160a01b031683529284019291840191600101610c53565b50909695505050505050565b600060208284031215610c9657600080fd5b8151610ca181610bfd565b9392505050565b634e487b7160e01b600052601160045260246000fd5b6000600019821415610cd257610cd2610ca8565b5060010190565b634e487b7160e01b600052603260045260246000fd5b600082821015610d0157610d01610ca8565b500390565b634e487b7160e01b600052604160045260246000fd5b600060208284031215610d2e57600080fd5b5051919050565b60008219821115610d4857610d48610ca8565b50019056fea264697066735822122083acf34828c941259a53bea6f4f2e60a138bc104c0256d1679de3ffba32d64bc64736f6c63430008090033"; public static final String FUNC_ADDAPPROVEDTRAVELAGENCY = "addApprovedTravelAgency"; diff --git a/application/gpact-examples/hotel-train/src/main/java/net/consensys/gpact/examples/hoteltrain/soliditywrappers/TravelAgency.java b/application/gpact-examples/hotel-train/src/main/java/net/consensys/gpact/examples/hoteltrain/soliditywrappers/TravelAgency.java index 141c284d..b72ca0ac 100644 --- a/application/gpact-examples/hotel-train/src/main/java/net/consensys/gpact/examples/hoteltrain/soliditywrappers/TravelAgency.java +++ b/application/gpact-examples/hotel-train/src/main/java/net/consensys/gpact/examples/hoteltrain/soliditywrappers/TravelAgency.java @@ -30,7 +30,7 @@ */ @SuppressWarnings("rawtypes") public class TravelAgency extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b506040516109cb3803806109cb83398101604081905261002f916100a2565b600080546001600160a01b03199081166001600160a01b03938416179091556004805433908316179055600595909555600680548616948216949094179093556007919091556008805490931691161790556100f9565b80516001600160a01b038116811461009d57600080fd5b919050565b600080600080600060a086880312156100ba57600080fd5b855194506100ca60208701610086565b9350604086015192506100df60608701610086565b91506100ed60808701610086565b90509295509295909350565b6108c3806101086000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638146b5c01161005b5780638146b5c01461010057806399eb5d4c146101155780639d0599ac14610128578063f6aacfb11461013b57600080fd5b8063036b0edf1461008d578063168fd46f146100b557806341b1637c146100cc5780634d1177da146100f7575b600080fd5b6100a061009b366004610770565b61015d565b60405190151581526020015b60405180910390f35b6100be60075481565b6040519081526020016100ac565b6008546100df906001600160a01b031681565b6040516001600160a01b0390911681526020016100ac565b6100be60055481565b61011361010e366004610789565b610174565b005b610113610123366004610726565b6103b7565b6006546100df906001600160a01b031681565b6100a0610149366004610770565b600090815260026020526040902054151590565b60008061016b600084610467565b15159392505050565b6000546001600160a01b031633146101f05760405162461bcd60e51b815260206004820152603460248201527f53686f756c64206f6e6c792062652063616c6c65642062792043726f73736368604482015273185a5b8810dbdb9d1c9bdb0810dbdb9d1c9858dd60621b60648201526084015b60405180910390fd5b6004546001600160a01b0316321461024a5760405162461bcd60e51b815260206004820152601a60248201527f4f6e6c79206f776e65722063616e20646f20626f6f6b696e677300000000000060448201526064016101e7565b600054600554600654604080516024810187905260448101869052606480820181905282518083039091018152608490910182526020810180516001600160e01b03166309ac323760e11b17905290516392b2c33560e01b81526001600160a01b03948516946392b2c335946102c79490939116916004016107ab565b600060405180830381600087803b1580156102e157600080fd5b505af11580156102f5573d6000803e3d6000fd5b5050600054600754600854604080516024810189905260448101889052606480820181905282518083039091018152608490910182526020810180516001600160e01b03166309ac323760e11b17905290516392b2c33560e01b81526001600160a01b0394851696506392b2c335955061037594909216916004016107ab565b600060405180830381600087803b15801561038f57600080fd5b505af11580156103a3573d6000803e3d6000fd5b505050506103b3600082846104b2565b5050565b60005b60008281526003602052604090205481101561044f5760008281526003602052604081208054839081106103f0576103f0610877565b90600052602060002001549050831561042e5760008181526002602052604090205461041e9060019061082f565b6000828152600160205260409020555b6000908152600260205260408120558061044781610846565b9150506103ba565b5060008181526003602052604081206103b3916106ec565b6000808383604051602001610486929190918252602082015260400190565b6040516020818303038152906040528051906020012090506104aa8160001c6104ea565b949350505050565b604080516020808201869052818301859052825180830384018152606090920190925280519101206104e48183610559565b50505050565b600081815260026020526040812054156105465760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b65640060448201526064016101e7565b5060009081526001602052604090205490565b600082815260026020526040902054156105ac5760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b60448201526064016101e7565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b1580156105fb57600080fd5b505afa15801561060f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106339190610757565b90508061064d575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b15801561069257600080fd5b505af11580156106a6573d6000803e3d6000fd5b5050506000828152600360209081526040822080546001818101835591845291909220018590556106d8915083610817565b600084815260026020526040902055505050565b508054600082559060005260206000209081019061070a919061070d565b50565b5b80821115610722576000815560010161070e565b5090565b6000806040838503121561073957600080fd5b8235801515811461074957600080fd5b946020939093013593505050565b60006020828403121561076957600080fd5b5051919050565b60006020828403121561078257600080fd5b5035919050565b6000806040838503121561079c57600080fd5b50508035926020909101359150565b8381526000602060018060a01b0385168184015260606040840152835180606085015260005b818110156107ed578581018301518582016080015282016107d1565b818111156107ff576000608083870101525b50601f01601f19169290920160800195945050505050565b6000821982111561082a5761082a610861565b500190565b60008282101561084157610841610861565b500390565b600060001982141561085a5761085a610861565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea2646970667358221220b3e54458e1210c0ffdcd4271212cffbdd74c0a653a7182979531deade422a17464736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b506040516109cb3803806109cb83398101604081905261002f916100a2565b600080546001600160a01b03199081166001600160a01b03938416179091556004805433908316179055600595909555600680548616948216949094179093556007919091556008805490931691161790556100f9565b80516001600160a01b038116811461009d57600080fd5b919050565b600080600080600060a086880312156100ba57600080fd5b855194506100ca60208701610086565b9350604086015192506100df60608701610086565b91506100ed60808701610086565b90509295509295909350565b6108c3806101086000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638146b5c01161005b5780638146b5c01461010057806399eb5d4c146101155780639d0599ac14610128578063f6aacfb11461013b57600080fd5b8063036b0edf1461008d578063168fd46f146100b557806341b1637c146100cc5780634d1177da146100f7575b600080fd5b6100a061009b366004610726565b61015d565b60405190151581526020015b60405180910390f35b6100be60075481565b6040519081526020016100ac565b6008546100df906001600160a01b031681565b6040516001600160a01b0390911681526020016100ac565b6100be60055481565b61011361010e36600461073f565b610174565b005b610113610123366004610761565b6103b7565b6006546100df906001600160a01b031681565b6100a0610149366004610726565b600090815260026020526040902054151590565b60008061016b600084610467565b15159392505050565b6000546001600160a01b031633146101f05760405162461bcd60e51b815260206004820152603460248201527f53686f756c64206f6e6c792062652063616c6c65642062792043726f73736368604482015273185a5b8810dbdb9d1c9bdb0810dbdb9d1c9858dd60621b60648201526084015b60405180910390fd5b6004546001600160a01b0316321461024a5760405162461bcd60e51b815260206004820152601a60248201527f4f6e6c79206f776e65722063616e20646f20626f6f6b696e677300000000000060448201526064016101e7565b600054600554600654604080516024810187905260448101869052606480820181905282518083039091018152608490910182526020810180516001600160e01b03166309ac323760e11b17905290516392b2c33560e01b81526001600160a01b03948516946392b2c335946102c7949093911691600401610792565b600060405180830381600087803b1580156102e157600080fd5b505af11580156102f5573d6000803e3d6000fd5b5050600054600754600854604080516024810189905260448101889052606480820181905282518083039091018152608490910182526020810180516001600160e01b03166309ac323760e11b17905290516392b2c33560e01b81526001600160a01b0394851696506392b2c33595506103759490921691600401610792565b600060405180830381600087803b15801561038f57600080fd5b505af11580156103a3573d6000803e3d6000fd5b505050506103b3600082846104b2565b5050565b60005b60008281526003602052604090205481101561044f5760008281526003602052604081208054839081106103f0576103f06107fe565b90600052602060002001549050831561042e5760008181526002602052604090205461041e9060019061082a565b6000828152600160205260409020555b6000908152600260205260408120558061044781610841565b9150506103ba565b5060008181526003602052604081206103b3916106ec565b6000808383604051602001610486929190918252602082015260400190565b6040516020818303038152906040528051906020012090506104aa8160001c6104ea565b949350505050565b604080516020808201869052818301859052825180830384018152606090920190925280519101206104e48183610559565b50505050565b600081815260026020526040812054156105465760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b65640060448201526064016101e7565b5060009081526001602052604090205490565b600082815260026020526040902054156105ac5760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b60448201526064016101e7565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b1580156105fb57600080fd5b505afa15801561060f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610633919061085c565b90508061064d575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b15801561069257600080fd5b505af11580156106a6573d6000803e3d6000fd5b5050506000828152600360209081526040822080546001818101835591845291909220018590556106d8915083610875565b600084815260026020526040902055505050565b508054600082559060005260206000209081019061070a919061070d565b50565b5b80821115610722576000815560010161070e565b5090565b60006020828403121561073857600080fd5b5035919050565b6000806040838503121561075257600080fd5b50508035926020909101359150565b6000806040838503121561077457600080fd5b8235801515811461078457600080fd5b946020939093013593505050565b8381526000602060018060a01b0385168184015260606040840152835180606085015260005b818110156107d4578581018301518582016080015282016107b8565b818111156107e6576000608083870101525b50601f01601f19169290920160800195945050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008282101561083c5761083c610814565b500390565b600060001982141561085557610855610814565b5060010190565b60006020828403121561086e57600080fd5b5051919050565b6000821982111561088857610888610814565b50019056fea26469706673582212200aba4a4bd867caf8068ab6bdf93ac194a5b8bb348d06a91ed80602256515f9bb64736f6c63430008090033"; public static final String FUNC_BOOKHOTELANDTRAIN = "bookHotelAndTrain"; diff --git a/application/gpact-examples/read/src/main/java/net/consensys/gpact/examples/read/soliditywrappers/ContractA.java b/application/gpact-examples/read/src/main/java/net/consensys/gpact/examples/read/soliditywrappers/ContractA.java index a8f2d2b2..5ec3f0d9 100644 --- a/application/gpact-examples/read/src/main/java/net/consensys/gpact/examples/read/soliditywrappers/ContractA.java +++ b/application/gpact-examples/read/src/main/java/net/consensys/gpact/examples/read/soliditywrappers/ContractA.java @@ -38,7 +38,7 @@ */ @SuppressWarnings("rawtypes") public class ContractA extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b506040516106fe3803806106fe83398101604081905261002f91610082565b600080546001600160a01b039485166001600160a01b031991821617909155600492909255600580549190931691161790556100be565b80516001600160a01b038116811461007d57600080fd5b919050565b60008060006060848603121561009757600080fd5b6100a084610066565b9250602084015191506100b560408501610066565b90509250925092565b610631806100cd6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630b4ed8131461005157806399eb5d4c1461005b578063e1cb0e521461006e578063f6aacfb114610089575b600080fd5b6100596100bb565b005b6100596100693660046104b6565b6101b0565b610076610264565b6040519081526020015b60405180910390f35b6100ab610097366004610500565b600090815260026020526040902054151590565b6040519015158152602001610080565b6000805460048054600554604080518481526024810182526020810180516001600160e01b0316631b53398f60e21b1790529051632388b54d60e21b81526001600160a01b0395861695638e22d5349561011b9594909116929101610519565b602060405180830381600087803b15801561013557600080fd5b505af1158015610149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016d91906104e7565b905061017a600082610275565b6040518181527fabdacda18abdb744b5ea95790fd361f37d4454a3e3269814cf272e2bafb7503d9060200160405180910390a150565b60005b6000828152600360205260409020548110156102485760008281526003602052604081208054839081106101e9576101e96105e5565b906000526020600020015490508315610227576000818152600260205260409020546102179060019061059d565b6000828152600160205260409020555b60009081526002602052604081205580610240816105b4565b9150506101b3565b5060008181526003602052604081206102609161047c565b5050565b6000610270600061040d565b905090565b600082815260026020526040902054156102cd5760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b60448201526064015b60405180910390fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b15801561031c57600080fd5b505afa158015610330573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035491906104e7565b90508061036e575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b1580156103b357600080fd5b505af11580156103c7573d6000803e3d6000fd5b5050506000828152600360209081526040822080546001818101835591845291909220018590556103f9915083610585565b600084815260026020526040902055505050565b600081815260026020526040812054156104695760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b65640060448201526064016102c4565b5060009081526001602052604090205490565b508054600082559060005260206000209081019061049a919061049d565b50565b5b808211156104b2576000815560010161049e565b5090565b600080604083850312156104c957600080fd5b823580151581146104d957600080fd5b946020939093013593505050565b6000602082840312156104f957600080fd5b5051919050565b60006020828403121561051257600080fd5b5035919050565b8381526000602060018060a01b0385168184015260606040840152835180606085015260005b8181101561055b5785810183015185820160800152820161053f565b8181111561056d576000608083870101525b50601f01601f19169290920160800195945050505050565b60008219821115610598576105986105cf565b500190565b6000828210156105af576105af6105cf565b500390565b60006000198214156105c8576105c86105cf565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea2646970667358221220bd731d06370fe34f28dc28c5ab4db159020fff7ad3380bd0795f8b94c9eaec0064736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b506040516106fe3803806106fe83398101604081905261002f91610082565b600080546001600160a01b039485166001600160a01b031991821617909155600492909255600580549190931691161790556100be565b80516001600160a01b038116811461007d57600080fd5b919050565b60008060006060848603121561009757600080fd5b6100a084610066565b9250602084015191506100b560408501610066565b90509250925092565b610631806100cd6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630b4ed8131461005157806399eb5d4c1461005b578063e1cb0e521461006e578063f6aacfb114610089575b600080fd5b6100596100bb565b005b6100596100693660046104b6565b6101b0565b610076610264565b6040519081526020015b60405180910390f35b6100ab6100973660046104e7565b600090815260026020526040902054151590565b6040519015158152602001610080565b6000805460048054600554604080518481526024810182526020810180516001600160e01b0316631b53398f60e21b1790529051632388b54d60e21b81526001600160a01b0395861695638e22d5349561011b9594909116929101610500565b602060405180830381600087803b15801561013557600080fd5b505af1158015610149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016d919061056c565b905061017a600082610275565b6040518181527fabdacda18abdb744b5ea95790fd361f37d4454a3e3269814cf272e2bafb7503d9060200160405180910390a150565b60005b6000828152600360205260409020548110156102485760008281526003602052604081208054839081106101e9576101e9610585565b90600052602060002001549050831561022757600081815260026020526040902054610217906001906105b1565b6000828152600160205260409020555b60009081526002602052604081205580610240816105c8565b9150506101b3565b5060008181526003602052604081206102609161047c565b5050565b6000610270600061040d565b905090565b600082815260026020526040902054156102cd5760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b60448201526064015b60405180910390fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b15801561031c57600080fd5b505afa158015610330573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610354919061056c565b90508061036e575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b1580156103b357600080fd5b505af11580156103c7573d6000803e3d6000fd5b5050506000828152600360209081526040822080546001818101835591845291909220018590556103f99150836105e3565b600084815260026020526040902055505050565b600081815260026020526040812054156104695760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b65640060448201526064016102c4565b5060009081526001602052604090205490565b508054600082559060005260206000209081019061049a919061049d565b50565b5b808211156104b2576000815560010161049e565b5090565b600080604083850312156104c957600080fd5b823580151581146104d957600080fd5b946020939093013593505050565b6000602082840312156104f957600080fd5b5035919050565b8381526000602060018060a01b0385168184015260606040840152835180606085015260005b8181101561054257858101830151858201608001528201610526565b81811115610554576000608083870101525b50601f01601f19169290920160800195945050505050565b60006020828403121561057e57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156105c3576105c361059b565b500390565b60006000198214156105dc576105dc61059b565b5060010190565b600082198211156105f6576105f661059b565b50019056fea2646970667358221220bcaa2da70733ccad5f88fcd05a8fd9686465ad39fa01673098927fa56f4ec82464736f6c63430008090033"; public static final String FUNC_DOCROSSCHAINREAD = "doCrosschainRead"; diff --git a/application/gpact-examples/read/src/main/java/net/consensys/gpact/examples/read/soliditywrappers/ContractB.java b/application/gpact-examples/read/src/main/java/net/consensys/gpact/examples/read/soliditywrappers/ContractB.java index ba99a678..2dd2d884 100644 --- a/application/gpact-examples/read/src/main/java/net/consensys/gpact/examples/read/soliditywrappers/ContractB.java +++ b/application/gpact-examples/read/src/main/java/net/consensys/gpact/examples/read/soliditywrappers/ContractB.java @@ -27,7 +27,7 @@ */ @SuppressWarnings("rawtypes") public class ContractB extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b506040516100d63803806100d683398101604081905261002f91610037565b600055610050565b60006020828403121561004957600080fd5b5051919050565b60788061005e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80636d4ce63c14602d575b600080fd5b60005460405190815260200160405180910390f3fea2646970667358221220268610b0b09db0138e67edf623f958f7aa020f79b73a6dc93109ed4b2c18cadf64736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b506040516100d63803806100d683398101604081905261002f91610037565b600055610050565b60006020828403121561004957600080fd5b5051919050565b60788061005e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80636d4ce63c14602d575b600080fd5b60005460405190815260200160405180910390f3fea264697066735822122005dffeb49e615a9027c560301e1d19860a5abc7399f864ab350fc68566e0f18c64736f6c63430008090033"; public static final String FUNC_GET = "get"; diff --git a/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/Balances.java b/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/Balances.java index 4cc4c30c..c5d89344 100644 --- a/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/Balances.java +++ b/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/Balances.java @@ -29,7 +29,7 @@ */ @SuppressWarnings("rawtypes") public class Balances extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b5060405161078438038061078483398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6106f1806100936000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806399eb5d4c1461005c578063beabacc814610071578063e30443bc14610084578063f6aacfb114610097578063f8b2cb4f146100ce575b600080fd5b61006f61006a3660046105f0565b6100ef565b005b61006f61007f36600461058a565b6101a3565b61006f6100923660046105c6565b61025c565b6100b96100a536600461062c565b600090815260026020526040902054151590565b60405190151581526020015b60405180910390f35b6100e16100dc366004610568565b610271565b6040519081526020016100c5565b60005b600082815260036020526040902054811015610187576000828152600360205260408120805483908110610128576101286106a5565b906000526020600020015490508315610166576000818152600260205260409020546101569060019061065d565b6000828152600160205260409020555b6000908152600260205260408120558061017f81610674565b9150506100f2565b50600081815260036020526040812061019f91610512565b5050565b60006101ae84610271565b905060006101bb84610271565b90508282101561021e5760405162461bcd60e51b8152602060048201526024808201527f56616c7565207472616e736665723a20696e73756666696369656e742062616c604482015263616e636560e01b60648201526084015b60405180910390fd5b61023c60006001600160a01b038716610237868661065d565b61028d565b61025560006001600160a01b0386166102378685610645565b5050505050565b61019f6000836001600160a01b03168361028d565b60006102876000836001600160a01b03166102c5565b92915050565b604080516020808201869052818301859052825180830384018152606090920190925280519101206102bf8183610310565b50505050565b60008083836040516020016102e4929190918252602082015260400190565b6040516020818303038152906040528051906020012090506103088160001c6104a3565b949350505050565b600082815260026020526040902054156103635760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b6044820152606401610215565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b1580156103b257600080fd5b505afa1580156103c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ea9190610613565b905080610404575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b15801561044957600080fd5b505af115801561045d573d6000803e3d6000fd5b50505060008281526003602090815260408220805460018181018355918452919092200185905561048f915083610645565b600084815260026020526040902055505050565b600081815260026020526040812054156104ff5760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b6564006044820152606401610215565b5060009081526001602052604090205490565b50805460008255906000526020600020908101906105309190610533565b50565b5b808211156105485760008155600101610534565b5090565b80356001600160a01b038116811461056357600080fd5b919050565b60006020828403121561057a57600080fd5b6105838261054c565b9392505050565b60008060006060848603121561059f57600080fd5b6105a88461054c565b92506105b66020850161054c565b9150604084013590509250925092565b600080604083850312156105d957600080fd5b6105e28361054c565b946020939093013593505050565b6000806040838503121561060357600080fd5b823580151581146105e257600080fd5b60006020828403121561062557600080fd5b5051919050565b60006020828403121561063e57600080fd5b5035919050565b600082198211156106585761065861068f565b500190565b60008282101561066f5761066f61068f565b500390565b60006000198214156106885761068861068f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea26469706673582212201920e0f12101510d67e376f2dd707025e758f21b6a76dbe0fa48f05a59772fe664736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b5060405161078438038061078483398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6106f1806100936000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806399eb5d4c1461005c578063beabacc814610071578063e30443bc14610084578063f6aacfb114610097578063f8b2cb4f146100ce575b600080fd5b61006f61006a36600461054c565b6100ef565b005b61006f61007f366004610599565b6101a3565b61006f6100923660046105d5565b61025c565b6100b96100a53660046105f1565b600090815260026020526040902054151590565b60405190151581526020015b60405180910390f35b6100e16100dc36600461060a565b610271565b6040519081526020016100c5565b60005b6000828152600360205260409020548110156101875760008281526003602052604081208054839081106101285761012861062c565b9060005260206000200154905083156101665760008181526002602052604090205461015690600190610658565b6000828152600160205260409020555b6000908152600260205260408120558061017f8161066f565b9150506100f2565b50600081815260036020526040812061019f91610512565b5050565b60006101ae84610271565b905060006101bb84610271565b90508282101561021e5760405162461bcd60e51b8152602060048201526024808201527f56616c7565207472616e736665723a20696e73756666696369656e742062616c604482015263616e636560e01b60648201526084015b60405180910390fd5b61023c60006001600160a01b0387166102378686610658565b61028d565b61025560006001600160a01b038616610237868561068a565b5050505050565b61019f6000836001600160a01b03168361028d565b60006102876000836001600160a01b03166102c5565b92915050565b604080516020808201869052818301859052825180830384018152606090920190925280519101206102bf8183610310565b50505050565b60008083836040516020016102e4929190918252602082015260400190565b6040516020818303038152906040528051906020012090506103088160001c6104a3565b949350505050565b600082815260026020526040902054156103635760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b6044820152606401610215565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b1580156103b257600080fd5b505afa1580156103c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ea91906106a2565b905080610404575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b15801561044957600080fd5b505af115801561045d573d6000803e3d6000fd5b50505060008281526003602090815260408220805460018181018355918452919092200185905561048f91508361068a565b600084815260026020526040902055505050565b600081815260026020526040812054156104ff5760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b6564006044820152606401610215565b5060009081526001602052604090205490565b50805460008255906000526020600020908101906105309190610533565b50565b5b808211156105485760008155600101610534565b5090565b6000806040838503121561055f57600080fd5b8235801515811461056f57600080fd5b946020939093013593505050565b80356001600160a01b038116811461059457600080fd5b919050565b6000806000606084860312156105ae57600080fd5b6105b78461057d565b92506105c56020850161057d565b9150604084013590509250925092565b600080604083850312156105e857600080fd5b61056f8361057d565b60006020828403121561060357600080fd5b5035919050565b60006020828403121561061c57600080fd5b6106258261057d565b9392505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008282101561066a5761066a610642565b500390565b600060001982141561068357610683610642565b5060010190565b6000821982111561069d5761069d610642565b500190565b6000602082840312156106b457600080fd5b505191905056fea26469706673582212208b350c6f2cf1a4db97ba9eb89e5c680cd738e4de2c08563dfaf5f3639fb0315a64736f6c63430008090033"; public static final String FUNC_FINALISE = "finalise"; diff --git a/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/BusLogic.java b/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/BusLogic.java index e080c00e..cf15d583 100644 --- a/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/BusLogic.java +++ b/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/BusLogic.java @@ -38,7 +38,7 @@ */ @SuppressWarnings("rawtypes") public class BusLogic extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b5060405161053538038061053583398101604081905261002f916100ac565b600680546001600160a01b039889166001600160a01b0319918216179091556000969096556001805495881695871695909517909455600292909255600380549186169185169190911790556004556005805491909316911617905561011d565b80516001600160a01b03811681146100a757600080fd5b919050565b600080600080600080600060e0888a0312156100c757600080fd5b6100d088610090565b9650602088015195506100e560408901610090565b9450606088015193506100fa60808901610090565b925060a0880151915061010f60c08901610090565b905092959891949750929550565b6104098061012c6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063d196c76e14610030575b600080fd5b61004361003e3660046102e5565b610045565b005b6006546002546003546040805160048082526024820183526020820180516001600160e01b0316634c6afee560e11b1790529151632388b54d60e21b81526000956001600160a01b0390811695638e22d534956100a79591949216920161033a565b602060405180830381600087803b1580156100c157600080fd5b505af11580156100d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100f99190610321565b9050600061010783836103a6565b600654600054600154604080516001600160a01b038a811660248301528b81166044830152606480830188905283518084039091018152608490920183526020820180516001600160e01b03166317d5759960e31b17905291516392b2c33560e01b8152959650938116946392b2c3359461018b949392909216919060040161033a565b600060405180830381600087803b1580156101a557600080fd5b505af11580156101b9573d6000803e3d6000fd5b505060065460048054600554604080516001600160a01b038d811660248301528c8116604483015260648083018d905283518084039091018152608490920183526020820180516001600160e01b031663042c38bb60e21b17905291516392b2c33560e01b815295821697506392b2c335965061023d95939491909216920161033a565b600060405180830381600087803b15801561025757600080fd5b505af115801561026b573d6000803e3d6000fd5b5050604080516001600160a01b03808a16825288166020820152908101869052606081018590527fe98a754d57da22349279d2240bff334f71728546e2052a6d667080cf21d97d979250608001905060405180910390a15050505050565b80356001600160a01b03811681146102e057600080fd5b919050565b6000806000606084860312156102fa57600080fd5b610303846102c9565b9250610311602085016102c9565b9150604084013590509250925092565b60006020828403121561033357600080fd5b5051919050565b8381526000602060018060a01b0385168184015260606040840152835180606085015260005b8181101561037c57858101830151858201608001528201610360565b8181111561038e576000608083870101525b50601f01601f19169290920160800195945050505050565b60008160001904831182151516156103ce57634e487b7160e01b600052601160045260246000fd5b50029056fea26469706673582212202153fb588cde308656f006245ee23f4cc67544e5c178221533497c897d604ee664736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b5060405161053538038061053583398101604081905261002f916100ac565b600680546001600160a01b039889166001600160a01b0319918216179091556000969096556001805495881695871695909517909455600292909255600380549186169185169190911790556004556005805491909316911617905561011d565b80516001600160a01b03811681146100a757600080fd5b919050565b600080600080600080600060e0888a0312156100c757600080fd5b6100d088610090565b9650602088015195506100e560408901610090565b9450606088015193506100fa60808901610090565b925060a0880151915061010f60c08901610090565b905092959891949750929550565b6104098061012c6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063d196c76e14610030575b600080fd5b61004361003e3660046102e5565b610045565b005b6006546002546003546040805160048082526024820183526020820180516001600160e01b0316634c6afee560e11b1790529151632388b54d60e21b81526000956001600160a01b0390811695638e22d534956100a795919492169201610321565b602060405180830381600087803b1580156100c157600080fd5b505af11580156100d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100f9919061038d565b9050600061010783836103a6565b600654600054600154604080516001600160a01b038a811660248301528b81166044830152606480830188905283518084039091018152608490920183526020820180516001600160e01b03166317d5759960e31b17905291516392b2c33560e01b8152959650938116946392b2c3359461018b9493929092169190600401610321565b600060405180830381600087803b1580156101a557600080fd5b505af11580156101b9573d6000803e3d6000fd5b505060065460048054600554604080516001600160a01b038d811660248301528c8116604483015260648083018d905283518084039091018152608490920183526020820180516001600160e01b031663042c38bb60e21b17905291516392b2c33560e01b815295821697506392b2c335965061023d959394919092169201610321565b600060405180830381600087803b15801561025757600080fd5b505af115801561026b573d6000803e3d6000fd5b5050604080516001600160a01b03808a16825288166020820152908101869052606081018590527fe98a754d57da22349279d2240bff334f71728546e2052a6d667080cf21d97d979250608001905060405180910390a15050505050565b80356001600160a01b03811681146102e057600080fd5b919050565b6000806000606084860312156102fa57600080fd5b610303846102c9565b9250610311602085016102c9565b9150604084013590509250925092565b8381526000602060018060a01b0385168184015260606040840152835180606085015260005b8181101561036357858101830151858201608001528201610347565b81811115610375576000608083870101525b50601f01601f19169290920160800195945050505050565b60006020828403121561039f57600080fd5b5051919050565b60008160001904831182151516156103ce57634e487b7160e01b600052601160045260246000fd5b50029056fea2646970667358221220907379d933d1844cc54d0e99a60071cea8a11fd13dd9e5b2a28de9bef3fda95364736f6c63430008090033"; public static final String FUNC_STOCKSHIPMENT = "stockShipment"; diff --git a/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/PriceOracle.java b/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/PriceOracle.java index 777042dd..e48898d8 100644 --- a/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/PriceOracle.java +++ b/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/PriceOracle.java @@ -27,7 +27,7 @@ */ @SuppressWarnings("rawtypes") public class PriceOracle extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b50600180546001600160a01b0319163317905560fa806100316000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806391b7f5ed14603757806398d5fdca146048575b600080fd5b6046604236600460ac565b605d565b005b60005460405190815260200160405180910390f35b6001546001600160a01b0316331460a75760405162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b604482015260640160405180910390fd5b600055565b60006020828403121560bd57600080fd5b503591905056fea264697066735822122026e9142038aab25ae44aa0b325813a51b31b82097aa85d5678c0db0c7ace66e864736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b50600180546001600160a01b0319163317905560fa806100316000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806391b7f5ed14603757806398d5fdca146048575b600080fd5b6046604236600460ac565b605d565b005b60005460405190815260200160405180910390f35b6001546001600160a01b0316331460a75760405162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b604482015260640160405180910390fd5b600055565b60006020828403121560bd57600080fd5b503591905056fea2646970667358221220483349a68511f0d0349bc29998aaa85d40b808c00deaf9e6e996d43cd15246e564736f6c63430008090033"; public static final String FUNC_GETPRICE = "getPrice"; diff --git a/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/Stock.java b/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/Stock.java index 9fd00cbb..e90e4bb0 100644 --- a/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/Stock.java +++ b/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/Stock.java @@ -29,7 +29,7 @@ */ @SuppressWarnings("rawtypes") public class Stock extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b5060405161078438038061078483398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6106f1806100936000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806310b0e2ec1461005c5780638edf30ef1461007157806399eb5d4c14610084578063c5eaabfb14610097578063f6aacfb1146100bd575b600080fd5b61006f61006a36600461058a565b6100ef565b005b61006f61007f3660046105c6565b6101a8565b61006f6100923660046105f0565b6101c1565b6100aa6100a5366004610568565b610271565b6040519081526020015b60405180910390f35b6100df6100cb36600461062c565b600090815260026020526040902054151590565b60405190151581526020016100b4565b60006100fa84610271565b9050600061010784610271565b90508282101561016a5760405162461bcd60e51b8152602060048201526024808201527f53746f636b207472616e736665723a20696e73756666696369656e742062616c604482015263616e636560e01b60648201526084015b60405180910390fd5b61018860006001600160a01b038716610183868661065d565b61028d565b6101a160006001600160a01b0386166101838685610645565b5050505050565b6101bd6000836001600160a01b03168361028d565b5050565b60005b6000828152600360205260409020548110156102595760008281526003602052604081208054839081106101fa576101fa6106a5565b906000526020600020015490508315610238576000818152600260205260409020546102289060019061065d565b6000828152600160205260409020555b6000908152600260205260408120558061025181610674565b9150506101c4565b5060008181526003602052604081206101bd91610512565b60006102876000836001600160a01b03166102c5565b92915050565b604080516020808201869052818301859052825180830384018152606090920190925280519101206102bf8183610310565b50505050565b60008083836040516020016102e4929190918252602082015260400190565b6040516020818303038152906040528051906020012090506103088160001c6104a3565b949350505050565b600082815260026020526040902054156103635760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b6044820152606401610161565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b1580156103b257600080fd5b505afa1580156103c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ea9190610613565b905080610404575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b15801561044957600080fd5b505af115801561045d573d6000803e3d6000fd5b50505060008281526003602090815260408220805460018181018355918452919092200185905561048f915083610645565b600084815260026020526040902055505050565b600081815260026020526040812054156104ff5760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b6564006044820152606401610161565b5060009081526001602052604090205490565b50805460008255906000526020600020908101906105309190610533565b50565b5b808211156105485760008155600101610534565b5090565b80356001600160a01b038116811461056357600080fd5b919050565b60006020828403121561057a57600080fd5b6105838261054c565b9392505050565b60008060006060848603121561059f57600080fd5b6105a88461054c565b92506105b66020850161054c565b9150604084013590509250925092565b600080604083850312156105d957600080fd5b6105e28361054c565b946020939093013593505050565b6000806040838503121561060357600080fd5b823580151581146105e257600080fd5b60006020828403121561062557600080fd5b5051919050565b60006020828403121561063e57600080fd5b5035919050565b600082198211156106585761065861068f565b500190565b60008282101561066f5761066f61068f565b500390565b60006000198214156106885761068861068f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea264697066735822122048052b6eae7d46ff7f5da8f225d405de6aca497c004684778ee6ff96aedcacc964736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b5060405161078438038061078483398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6106f1806100936000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806310b0e2ec1461005c5780638edf30ef1461007157806399eb5d4c14610084578063c5eaabfb14610097578063f6aacfb1146100bd575b600080fd5b61006f61006a366004610568565b6100ef565b005b61006f61007f3660046105a4565b6101a8565b61006f6100923660046105ce565b6101c1565b6100aa6100a53660046105f1565b610271565b6040519081526020015b60405180910390f35b6100df6100cb366004610613565b600090815260026020526040902054151590565b60405190151581526020016100b4565b60006100fa84610271565b9050600061010784610271565b90508282101561016a5760405162461bcd60e51b8152602060048201526024808201527f53746f636b207472616e736665723a20696e73756666696369656e742062616c604482015263616e636560e01b60648201526084015b60405180910390fd5b61018860006001600160a01b0387166101838686610642565b61028d565b6101a160006001600160a01b0386166101838685610659565b5050505050565b6101bd6000836001600160a01b03168361028d565b5050565b60005b6000828152600360205260409020548110156102595760008281526003602052604081208054839081106101fa576101fa610671565b9060005260206000200154905083156102385760008181526002602052604090205461022890600190610642565b6000828152600160205260409020555b6000908152600260205260408120558061025181610687565b9150506101c4565b5060008181526003602052604081206101bd91610512565b60006102876000836001600160a01b03166102c5565b92915050565b604080516020808201869052818301859052825180830384018152606090920190925280519101206102bf8183610310565b50505050565b60008083836040516020016102e4929190918252602082015260400190565b6040516020818303038152906040528051906020012090506103088160001c6104a3565b949350505050565b600082815260026020526040902054156103635760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b6044820152606401610161565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b1580156103b257600080fd5b505afa1580156103c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ea91906106a2565b905080610404575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b15801561044957600080fd5b505af115801561045d573d6000803e3d6000fd5b50505060008281526003602090815260408220805460018181018355918452919092200185905561048f915083610659565b600084815260026020526040902055505050565b600081815260026020526040812054156104ff5760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b6564006044820152606401610161565b5060009081526001602052604090205490565b50805460008255906000526020600020908101906105309190610533565b50565b5b808211156105485760008155600101610534565b5090565b80356001600160a01b038116811461056357600080fd5b919050565b60008060006060848603121561057d57600080fd5b6105868461054c565b92506105946020850161054c565b9150604084013590509250925092565b600080604083850312156105b757600080fd5b6105c08361054c565b946020939093013593505050565b600080604083850312156105e157600080fd5b823580151581146105c057600080fd5b60006020828403121561060357600080fd5b61060c8261054c565b9392505050565b60006020828403121561062557600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156106545761065461062c565b500390565b6000821982111561066c5761066c61062c565b500190565b634e487b7160e01b600052603260045260246000fd5b600060001982141561069b5761069b61062c565b5060010190565b6000602082840312156106b457600080fd5b505191905056fea26469706673582212208ff0fa1fbc0aaf7c5790ac3b9001f239390a3073cecde593359928289dd4975764736f6c63430008090033"; public static final String FUNC_DELIVERY = "delivery"; diff --git a/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/TradeWallet.java b/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/TradeWallet.java index 90ce7c8f..4efef00a 100644 --- a/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/TradeWallet.java +++ b/application/gpact-examples/trade/src/main/java/net/consensys/gpact/examples/trade/soliditywrappers/TradeWallet.java @@ -39,7 +39,7 @@ */ @SuppressWarnings("rawtypes") public class TradeWallet extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b506040516108c13803806108c183398101604081905261002f91610082565b600080546001600160a01b039485166001600160a01b031991821617909155600492909255600580549190931691161790556100be565b80516001600160a01b038116811461007d57600080fd5b919050565b60008060006060848603121561009757600080fd5b6100a084610066565b9250602084015191506100b560408501610066565b90509250925092565b6107f4806100cd6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630b3504e61461005c5780632db25e051461007757806399eb5d4c1461008a578063c8de7c601461009f578063f6aacfb1146100b2575b600080fd5b6100646100e4565b6040519081526020015b60405180910390f35b6100646100853660046106c3565b6100f5565b61009d610098366004610687565b610108565b005b61009d6100ad36600461064f565b6101bc565b6100d46100c03660046106c3565b600090815260026020526040902054151590565b604051901515815260200161006e565b60006100f060006102fd565b905090565b6000610102600083610308565b92915050565b60005b6000828152600360205260409020548110156101a0576000828152600360205260408120805483908110610141576101416107a8565b90600052602060002001549050831561017f5760008181526002602052604090205461016f90600190610760565b6000828152600160205260409020555b6000908152600260205260408120558061019881610777565b91505061010b565b5060008181526003602052604081206101b891610615565b5050565b60005460048054600554604080516001600160a01b038881166024830152326044830152606480830189905283518084039091018152608490920183526020820180516001600160e01b03166368cb63b760e11b17905291516392b2c33560e01b8152958216956392b2c3359561023995949390931692016106dc565b600060405180830381600087803b15801561025357600080fd5b505af1158015610267573d6000803e3d6000fd5b50506040516bffffffffffffffffffffffff19606086811b8216602084015232901b166034820152604881018490526000925060680190506040516020818303038152906040528051906020012090506102c560008260001c6103aa565b6040518181527f979597633b92b98cf82a1b3e32dee4f4e729c2be11ced37801cbcea939cd83a89060200160405180910390a1505050565b600061010282610413565b60008061031484610413565b90508281116103605760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b60448201526064015b60405180910390fd5b60008460405160200161037591815260200190565b60408051601f19818403018152919052805160209091012090506103a161039c8583610748565b610413565b95945050505050565b60006103b583610413565b90506000836040516020016103cc91815260200190565b60408051601f19818403018152919052805160209091012090506103f96103f38383610748565b84610482565b61040d84610408846001610748565b610482565b50505050565b6000818152600260205260408120541561046f5760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b6564006044820152606401610357565b5060009081526001602052604090205490565b600082815260026020526040902054156104d55760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b6044820152606401610357565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b15801561052457600080fd5b505afa158015610538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055c91906106aa565b905080610576575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b1580156105bb57600080fd5b505af11580156105cf573d6000803e3d6000fd5b505050600082815260036020908152604082208054600181810183559184529190922001859055610601915083610748565b600084815260026020526040902055505050565b50805460008255906000526020600020908101906106339190610636565b50565b5b8082111561064b5760008155600101610637565b5090565b6000806040838503121561066257600080fd5b82356001600160a01b038116811461067957600080fd5b946020939093013593505050565b6000806040838503121561069a57600080fd5b8235801515811461067957600080fd5b6000602082840312156106bc57600080fd5b5051919050565b6000602082840312156106d557600080fd5b5035919050565b8381526000602060018060a01b0385168184015260606040840152835180606085015260005b8181101561071e57858101830151858201608001528201610702565b81811115610730576000608083870101525b50601f01601f19169290920160800195945050505050565b6000821982111561075b5761075b610792565b500190565b60008282101561077257610772610792565b500390565b600060001982141561078b5761078b610792565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea264697066735822122043f9cc41a7f4513e387e5063a835f4b693f919191513bc47005ff1a10da6123264736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b506040516108c13803806108c183398101604081905261002f91610082565b600080546001600160a01b039485166001600160a01b031991821617909155600492909255600580549190931691161790556100be565b80516001600160a01b038116811461007d57600080fd5b919050565b60008060006060848603121561009757600080fd5b6100a084610066565b9250602084015191506100b560408501610066565b90509250925092565b6107f4806100cd6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630b3504e61461005c5780632db25e051461007757806399eb5d4c1461008a578063c8de7c601461009f578063f6aacfb1146100b2575b600080fd5b6100646100e4565b6040519081526020015b60405180910390f35b61006461008536600461064f565b6100f5565b61009d610098366004610668565b610108565b005b61009d6100ad366004610699565b6101bc565b6100d46100c036600461064f565b600090815260026020526040902054151590565b604051901515815260200161006e565b60006100f060006102fd565b905090565b6000610102600083610308565b92915050565b60005b6000828152600360205260409020548110156101a0576000828152600360205260408120805483908110610141576101416106c3565b90600052602060002001549050831561017f5760008181526002602052604090205461016f906001906106ef565b6000828152600160205260409020555b6000908152600260205260408120558061019881610706565b91505061010b565b5060008181526003602052604081206101b891610615565b5050565b60005460048054600554604080516001600160a01b038881166024830152326044830152606480830189905283518084039091018152608490920183526020820180516001600160e01b03166368cb63b760e11b17905291516392b2c33560e01b8152958216956392b2c335956102399594939093169201610721565b600060405180830381600087803b15801561025357600080fd5b505af1158015610267573d6000803e3d6000fd5b50506040516bffffffffffffffffffffffff19606086811b8216602084015232901b166034820152604881018490526000925060680190506040516020818303038152906040528051906020012090506102c560008260001c6103aa565b6040518181527f979597633b92b98cf82a1b3e32dee4f4e729c2be11ced37801cbcea939cd83a89060200160405180910390a1505050565b600061010282610413565b60008061031484610413565b90508281116103605760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b60448201526064015b60405180910390fd5b60008460405160200161037591815260200190565b60408051601f19818403018152919052805160209091012090506103a161039c858361078d565b610413565b95945050505050565b60006103b583610413565b90506000836040516020016103cc91815260200190565b60408051601f19818403018152919052805160209091012090506103f96103f3838361078d565b84610482565b61040d8461040884600161078d565b610482565b50505050565b6000818152600260205260408120541561046f5760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b6564006044820152606401610357565b5060009081526001602052604090205490565b600082815260026020526040902054156104d55760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b6044820152606401610357565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b15801561052457600080fd5b505afa158015610538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055c91906107a5565b905080610576575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b1580156105bb57600080fd5b505af11580156105cf573d6000803e3d6000fd5b50505060008281526003602090815260408220805460018181018355918452919092200185905561060191508361078d565b600084815260026020526040902055505050565b50805460008255906000526020600020908101906106339190610636565b50565b5b8082111561064b5760008155600101610637565b5090565b60006020828403121561066157600080fd5b5035919050565b6000806040838503121561067b57600080fd5b8235801515811461068b57600080fd5b946020939093013593505050565b600080604083850312156106ac57600080fd5b82356001600160a01b038116811461068b57600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610701576107016106d9565b500390565b600060001982141561071a5761071a6106d9565b5060010190565b8381526000602060018060a01b0385168184015260606040840152835180606085015260005b8181101561076357858101830151858201608001528201610747565b81811115610775576000608083870101525b50601f01601f19169290920160800195945050505050565b600082198211156107a0576107a06106d9565b500190565b6000602082840312156107b757600080fd5b505191905056fea264697066735822122018b9d015ecac71d7c24ea80b26b688635b380a828bb6ebcbaad77356040b891464736f6c63430008090033"; public static final String FUNC_EXECUTETRADE = "executeTrade"; diff --git a/application/gpact-examples/write/src/main/java/net/consensys/gpact/examples/write/soliditywrappers/ContractA.java b/application/gpact-examples/write/src/main/java/net/consensys/gpact/examples/write/soliditywrappers/ContractA.java index 60691907..0367abca 100644 --- a/application/gpact-examples/write/src/main/java/net/consensys/gpact/examples/write/soliditywrappers/ContractA.java +++ b/application/gpact-examples/write/src/main/java/net/consensys/gpact/examples/write/soliditywrappers/ContractA.java @@ -27,7 +27,7 @@ */ @SuppressWarnings("rawtypes") public class ContractA extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b5060405161027138038061027183398101604081905261002f91610082565b600280546001600160a01b039485166001600160a01b031991821617909155600092909255600180549190931691161790556100be565b80516001600160a01b038116811461007d57600080fd5b919050565b60008060006060848603121561009757600080fd5b6100a084610066565b9250602084015191506100b560408501610066565b90509250925092565b6101a4806100cd6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063209a5a9b14610030575b600080fd5b61004361003e3660046100e9565b610045565b005b60025460005460015460408051602480820187905282518083039091018152604490910182526020810180516001600160e01b03166360fe47b160e01b17905290516392b2c33560e01b81526001600160a01b03948516946392b2c335946100b4949093911691600401610102565b600060405180830381600087803b1580156100ce57600080fd5b505af11580156100e2573d6000803e3d6000fd5b5050505050565b6000602082840312156100fb57600080fd5b5035919050565b8381526000602060018060a01b0385168184015260606040840152835180606085015260005b8181101561014457858101830151858201608001528201610128565b81811115610156576000608083870101525b50601f01601f1916929092016080019594505050505056fea2646970667358221220cf0c6a8fd87629dfd41581dc1c5cb45b39d858ba0bfeaae953cd4a73a824a25864736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b5060405161027138038061027183398101604081905261002f91610082565b600280546001600160a01b039485166001600160a01b031991821617909155600092909255600180549190931691161790556100be565b80516001600160a01b038116811461007d57600080fd5b919050565b60008060006060848603121561009757600080fd5b6100a084610066565b9250602084015191506100b560408501610066565b90509250925092565b6101a4806100cd6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063209a5a9b14610030575b600080fd5b61004361003e3660046100e9565b610045565b005b60025460005460015460408051602480820187905282518083039091018152604490910182526020810180516001600160e01b03166360fe47b160e01b17905290516392b2c33560e01b81526001600160a01b03948516946392b2c335946100b4949093911691600401610102565b600060405180830381600087803b1580156100ce57600080fd5b505af11580156100e2573d6000803e3d6000fd5b5050505050565b6000602082840312156100fb57600080fd5b5035919050565b8381526000602060018060a01b0385168184015260606040840152835180606085015260005b8181101561014457858101830151858201608001528201610128565b81811115610156576000608083870101525b50601f01601f1916929092016080019594505050505056fea2646970667358221220d0ff832c478dac0d6a3b436e3476f853e4aed8a64f3bceaacbc8dfd079d0284764736f6c63430008090033"; public static final String FUNC_DOCROSSCHAINWRITE = "doCrosschainWrite"; diff --git a/application/gpact-examples/write/src/main/java/net/consensys/gpact/examples/write/soliditywrappers/ContractB.java b/application/gpact-examples/write/src/main/java/net/consensys/gpact/examples/write/soliditywrappers/ContractB.java index 6de0fec3..78b07de6 100644 --- a/application/gpact-examples/write/src/main/java/net/consensys/gpact/examples/write/soliditywrappers/ContractB.java +++ b/application/gpact-examples/write/src/main/java/net/consensys/gpact/examples/write/soliditywrappers/ContractB.java @@ -38,7 +38,7 @@ */ @SuppressWarnings("rawtypes") public class ContractB extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b506040516105af3803806105af83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61051c806100936000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806360fe47b11461005157806399eb5d4c14610066578063e1cb0e5214610079578063f6aacfb114610094575b600080fd5b61006461005f366004610457565b6100c6565b005b61006461007436600461040d565b610107565b6100816101bb565b6040519081526020015b60405180910390f35b6100b66100a2366004610457565b600090815260026020526040902054151590565b604051901515815260200161008b565b6100d16000826101cc565b6040518181527fbc9e8ea3b0777e6b9815f4c534668e08ddcaa8595a383ac46aebb40336ce81d79060200160405180910390a150565b60005b60008281526003602052604090205481101561019f576000828152600360205260408120805483908110610140576101406104d0565b90600052602060002001549050831561017e5760008181526002602052604090205461016e90600190610488565b6000828152600160205260409020555b600090815260026020526040812055806101978161049f565b91505061010a565b5060008181526003602052604081206101b7916103d3565b5050565b60006101c76000610364565b905090565b600082815260026020526040902054156102245760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b60448201526064015b60405180910390fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b15801561027357600080fd5b505afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab919061043e565b9050806102c5575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b15801561030a57600080fd5b505af115801561031e573d6000803e3d6000fd5b505050600082815260036020908152604082208054600181810183559184529190922001859055610350915083610470565b600084815260026020526040902055505050565b600081815260026020526040812054156103c05760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b656400604482015260640161021b565b5060009081526001602052604090205490565b50805460008255906000526020600020908101906103f191906103f4565b50565b5b8082111561040957600081556001016103f5565b5090565b6000806040838503121561042057600080fd5b8235801515811461043057600080fd5b946020939093013593505050565b60006020828403121561045057600080fd5b5051919050565b60006020828403121561046957600080fd5b5035919050565b60008219821115610483576104836104ba565b500190565b60008282101561049a5761049a6104ba565b500390565b60006000198214156104b3576104b36104ba565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea2646970667358221220ea30ad2f9cbb96901ada3c517e2954d504d19003ed3f8f4aeae0bb1e3830100964736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b506040516105af3803806105af83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61051c806100936000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806360fe47b11461005157806399eb5d4c14610066578063e1cb0e5214610079578063f6aacfb114610094575b600080fd5b61006461005f36600461040d565b6100c6565b005b610064610074366004610426565b610107565b6100816101bb565b6040519081526020015b60405180910390f35b6100b66100a236600461040d565b600090815260026020526040902054151590565b604051901515815260200161008b565b6100d16000826101cc565b6040518181527fbc9e8ea3b0777e6b9815f4c534668e08ddcaa8595a383ac46aebb40336ce81d79060200160405180910390a150565b60005b60008281526003602052604090205481101561019f57600082815260036020526040812080548390811061014057610140610457565b90600052602060002001549050831561017e5760008181526002602052604090205461016e90600190610483565b6000828152600160205260409020555b600090815260026020526040812055806101978161049a565b91505061010a565b5060008181526003602052604081206101b7916103d3565b5050565b60006101c76000610364565b905090565b600082815260026020526040902054156102245760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b60448201526064015b60405180910390fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b15801561027357600080fd5b505afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab91906104b5565b9050806102c5575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b15801561030a57600080fd5b505af115801561031e573d6000803e3d6000fd5b5050506000828152600360209081526040822080546001818101835591845291909220018590556103509150836104ce565b600084815260026020526040902055505050565b600081815260026020526040812054156103c05760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b656400604482015260640161021b565b5060009081526001602052604090205490565b50805460008255906000526020600020908101906103f191906103f4565b50565b5b8082111561040957600081556001016103f5565b5090565b60006020828403121561041f57600080fd5b5035919050565b6000806040838503121561043957600080fd5b8235801515811461044957600080fd5b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156104955761049561046d565b500390565b60006000198214156104ae576104ae61046d565b5060010190565b6000602082840312156104c757600080fd5b5051919050565b600082198211156104e1576104e161046d565b50019056fea2646970667358221220343b480f338928f3db5b6651d7fd0b14e5d3d46baeeb3de15661c7822c7eda8364736f6c63430008090033"; public static final String FUNC_FINALISE = "finalise"; diff --git a/application/sfc-examples/tokenbridge/build.gradle b/application/sfc-examples/tokenbridge/build.gradle index a1cc6979..80174990 100644 --- a/application/sfc-examples/tokenbridge/build.gradle +++ b/application/sfc-examples/tokenbridge/build.gradle @@ -32,6 +32,11 @@ dependencies { // https://mvnrepository.com/artifact/io.reactivex.rxjava2/rxjava implementation group: 'io.reactivex.rxjava2', name: 'rxjava', version: '2.2.2' + // https://mvnrepository.com/artifact/org.apache.tuweni/tuweni-bytes + implementation group: 'org.apache.tuweni', name: 'tuweni-bytes', version: '1.0.0' + // https://mvnrepository.com/artifact/org.apache.tuweni/tuweni-units + implementation group: 'org.apache.tuweni', name: 'tuweni-units', version: '1.0.0' + testImplementation project (':commontest') testImplementation group: 'junit', name: 'junit', version: '4.12' } diff --git a/application/sfc-examples/tokenbridge/gen.sh b/application/sfc-examples/tokenbridge/gen.sh index 9ae24bd7..5ec7fadb 100755 --- a/application/sfc-examples/tokenbridge/gen.sh +++ b/application/sfc-examples/tokenbridge/gen.sh @@ -14,7 +14,9 @@ WEB3J=../web3j-rlp/codegen/build/install/codegen/bin/codegen solc $CONTRACTSDIR/SfcErc20MassConservationBridge.sol --allow-paths . --bin --abi --optimize -o $BUILDDIR --overwrite +solc $CONTRACTSDIR/SfcErc20MintingBurningBridge.sol --allow-paths . --bin --abi --optimize -o $BUILDDIR --overwrite $WEB3J solidity generate -a=$BUILDDIR/SfcErc20MassConservationBridge.abi -b=$BUILDDIR/SfcErc20MassConservationBridge.bin -o=$OUTPUTDIR -p=$PACKAGE +$WEB3J solidity generate -a=$BUILDDIR/SfcErc20MintingBurningBridge.abi -b=$BUILDDIR/SfcErc20MintingBurningBridge.bin -o=$OUTPUTDIR -p=$PACKAGE diff --git a/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/AbstractERC20Bridge.java b/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/AbstractERC20Bridge.java index bcaac5c9..6849128d 100644 --- a/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/AbstractERC20Bridge.java +++ b/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/AbstractERC20Bridge.java @@ -37,9 +37,10 @@ public abstract class AbstractERC20Bridge extends AbstractBlockchain { // Total number of tokens issued for booking. public final BigInteger tokenSupply; - ERC20PresetFixedSupply erc20; public final String entity; + protected String erc20BridgeAddress; + public AbstractERC20Bridge(final String entity, BigInteger tokenSupply, Credentials credentials, BlockchainId bcId, String uri, DynamicGasProvider.Strategy gasPriceStrategy, int blockPeriod) throws IOException { @@ -48,36 +49,24 @@ public AbstractERC20Bridge(final String entity, BigInteger tokenSupply, this.tokenSupply = tokenSupply; } - public void deployContract() throws Exception { - String name = this.entity; - String symbol= this.entity; - String owner = this.credentials.getAddress(); - this.erc20 = ERC20PresetFixedSupply.deploy(this.web3j, this.tm, this.gasProvider, name, symbol, this.tokenSupply, owner).send(); - LOG.info(" Deploy {} ERC20: {}. Token Supply: {}", this.entity, this.erc20.getContractAddress(), this.tokenSupply); - } + public abstract void deployContracts(String cbcAddress) throws Exception; - public String getErc20ContractAddress() { - return this.erc20.getContractAddress(); - } + public abstract void addRemoteERC20(BlockchainId remoteBcId, String remoteERC20ContractAddress) throws Exception; + public abstract void addBlockchain(BlockchainId remoteBcId, String remoteERC20BridgeContractAddress) throws Exception; - public void giveTokens(final Erc20User user, final int number) throws Exception { - this.erc20.transfer(user.getAddress(), BigInteger.valueOf(number)).send(); - } + public abstract String getErc20ContractAddress(); - public void showErc20Balances(Erc20User[] users) throws Exception { - LOG.info(" {} ERC 20 Balances", this.entity); - for (Erc20User user: users) { - BigInteger bal = this.erc20.balanceOf(user.getAddress()).send(); - LOG.info(" Account {}:{} balance: {}", user.getName(), user.getAddress(), bal); - } - } - public void showErc20Allowance(String owner, String spender) throws Exception { - BigInteger allowance = this.erc20.allowance(owner, spender).send(); - LOG.info(" {}: Owner {}: Spender: {}: Allowance: {}", this.entity, owner, spender, allowance); + public abstract String getErc20BridgeContractAddress(); - } + public abstract void giveTokensToERC20Bridge(final int number) throws Exception; + + public abstract void giveTokens(final Erc20User user, final int number) throws Exception; + + public abstract void showErc20Balances(Erc20User[] users) throws Exception; + + public abstract void showErc20Allowance(String owner, String spender) throws Exception; } diff --git a/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/Erc20User.java b/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/Erc20User.java index fce4db29..aa597fec 100644 --- a/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/Erc20User.java +++ b/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/Erc20User.java @@ -98,8 +98,11 @@ public String getAddress() { } - public void transfer(boolean fromAToB, int amountInt) throws Exception { + transfer(fromAToB, this.creds.getAddress(), amountInt); + } + + public void transfer(boolean fromAToB, String recipient, int amountInt) throws Exception { LOG.info(" Transfer: {}: {}: {} tokens ", this.name, fromAToB ? "ChainA -> ChainB" : "ChainB -> ChainA", amountInt); BigInteger amount = BigInteger.valueOf(amountInt); @@ -134,15 +137,21 @@ public void transfer(boolean fromAToB, int amountInt) throws Exception { SfcErc20MassConservationBridge sfcErc20Bridge = SfcErc20MassConservationBridge.load(sourceBridgeContractAddress, web3j, tm, gasProvider); LOG.info(" Call: BcId: {}, ERC20 Bridge: {}", sourceBlockchainId, sourceBridgeContractAddress); RemoteFunctionCall functionCall = sfcErc20Bridge.transferToOtherBlockchain( - destinationBlockchainId.asBigInt(), sourceERC20ContractAddress, this.creds.getAddress(), amount); + destinationBlockchainId.asBigInt(), sourceERC20ContractAddress, recipient, amount); SimpleCrosschainExecutor executor = new SimpleCrosschainExecutor(crossControlManagerGroup); - TransactionReceipt[] receipts = executor.execute(sourceBlockchainId, functionCall); - - boolean success = (receipts.length == 2) && receipts[0].isStatusOK() && receipts[1].isStatusOK(); + Tuple results = executor.execute(sourceBlockchainId, functionCall); + boolean success = results.getThird(); LOG.info("Success: {}", success); - if (!success) { + LOG.error("Crosschain Execution failed. See log for details"); + String errorMsg = results.getSecond(); + if (errorMsg != null) { + LOG.error("Error information: {}", errorMsg); + } + for (TransactionReceipt txr: results.getFirst()) { + LOG.error("Transaction Receipt: {}", txr.toString()); + } throw new Exception("Crosschain Execution failed. See log for details"); } } diff --git a/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/MassConservationERC20Bridge.java b/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/MassConservationERC20Bridge.java index 41d8ba5a..f8fb8903 100644 --- a/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/MassConservationERC20Bridge.java +++ b/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/MassConservationERC20Bridge.java @@ -16,6 +16,7 @@ import net.consensys.gpact.common.BlockchainId; import net.consensys.gpact.common.DynamicGasProvider; +import net.consensys.gpact.openzeppelin.soliditywrappers.ERC20PresetFixedSupply; import net.consensys.gpact.sfc.examples.tokenbridge.soliditywrappers.SfcErc20MassConservationBridge; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -33,6 +34,7 @@ public class MassConservationERC20Bridge extends AbstractERC20Bridge { private static final Logger LOG = LogManager.getLogger(MassConservationERC20Bridge.class); + ERC20PresetFixedSupply erc20; SfcErc20MassConservationBridge erc20Bridge; @@ -41,10 +43,20 @@ public MassConservationERC20Bridge(final String entity, BigInteger tokenSupply, super(entity, tokenSupply, credentials, bcId, uri, gasPriceStrategy, blockPeriod); } - public void deployContract(String cbcAddress) throws Exception { - super.deployContract(); + public void deployContracts(String cbcAddress) throws Exception { + String name = this.entity; + String symbol= this.entity; + String owner = this.credentials.getAddress(); + this.erc20 = ERC20PresetFixedSupply.deploy(this.web3j, this.tm, this.gasProvider, name, symbol, this.tokenSupply, owner).send(); + LOG.info(" Deploy {} ERC20: {}. Token Supply: {}", this.entity, this.erc20.getContractAddress(), this.tokenSupply); + this.erc20Bridge = SfcErc20MassConservationBridge.deploy(this.web3j, this.tm, this.gasProvider, cbcAddress).send(); - LOG.info(" Deploy ERC20 Bridge: {}", this.erc20Bridge.getContractAddress()); + LOG.info(" Deploy ERC20 Mass Conservation Bridge: {}", this.erc20Bridge.getContractAddress()); + this.erc20BridgeAddress = this.erc20Bridge.getContractAddress(); + } + + public String getErc20ContractAddress() { + return this.erc20.getContractAddress(); } public String getErc20BridgeContractAddress() { @@ -52,8 +64,40 @@ public String getErc20BridgeContractAddress() { } public void addRemoteERC20(BlockchainId remoteBcId, String remoteERC20ContractAddress) throws Exception { -// LOG.info(" Setting Remote ERC20: Local BcId: {}, Remote BcId: {}, Remote ERC20: {}", -// this.blockchainId, remoteBcId, remoteERC20ContractAddress); + LOG.info(" Setting Remote ERC20: Local BcId: {}, Remote BcId: {}, Local ERC20: {}, Remote ERC20: {}", + this.blockchainId, remoteBcId, this.erc20.getContractAddress(), remoteERC20ContractAddress); this.erc20Bridge.changeContractMapping(this.erc20.getContractAddress(), remoteBcId.asBigInt(), remoteERC20ContractAddress).send(); } + + public void addBlockchain(BlockchainId remoteBcId, String remoteERC20BridgeContractAddress) throws Exception { + LOG.info(" Setting Remote ERC20 Bridge: Remote BcId: {}, Remote ERC20Bridge: {}", + remoteBcId, remoteERC20BridgeContractAddress); + this.erc20Bridge.changeBlockchainMapping(remoteBcId.asBigInt(), remoteERC20BridgeContractAddress).send(); + } + + public void giveTokensToERC20Bridge(final int number) throws Exception { + this.erc20.transfer(this.erc20BridgeAddress, BigInteger.valueOf(number)).send(); + } + + public void giveTokens(final Erc20User user, final int number) throws Exception { + this.erc20.transfer(user.getAddress(), BigInteger.valueOf(number)).send(); + } + + + public void showErc20Balances(Erc20User[] users) throws Exception { + LOG.info(" {} ERC 20 Balances", this.entity); + BigInteger totalSupply = this.erc20.totalSupply().send(); + LOG.info(" Total Supply: {}", totalSupply); + BigInteger bal = this.erc20.balanceOf(this.erc20BridgeAddress).send(); + LOG.info(" ERC20 Bridge Account {}: balance: {}", this.erc20BridgeAddress, bal); + for (Erc20User user: users) { + bal = this.erc20.balanceOf(user.getAddress()).send(); + LOG.info(" Account {}:{} balance: {}", user.getName(), user.getAddress(), bal); + } + } + public void showErc20Allowance(String owner, String spender) throws Exception { + BigInteger allowance = this.erc20.allowance(owner, spender).send(); + LOG.info(" {}: Owner {}: Spender: {}: Allowance: {}", this.entity, owner, spender, allowance); + } + } diff --git a/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/MinterBurnerERC20Bridge.java b/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/MinterBurnerERC20Bridge.java new file mode 100644 index 00000000..f9b90cbf --- /dev/null +++ b/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/MinterBurnerERC20Bridge.java @@ -0,0 +1,113 @@ +/* + * Copyright 2021 ConsenSys Software Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ +package net.consensys.gpact.sfc.examples.tokenbridge; + +import net.consensys.gpact.common.BlockchainId; +import net.consensys.gpact.common.DynamicGasProvider; +import net.consensys.gpact.openzeppelin.soliditywrappers.ERC20PresetMinterPauser; +import net.consensys.gpact.sfc.examples.tokenbridge.soliditywrappers.SfcErc20MintingBurningBridge; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.hyperledger.besu.crypto.Hash; +import org.web3j.crypto.Credentials; +import org.apache.tuweni.bytes.Bytes; + +import java.io.IOException; +import java.math.BigInteger; + + +/** + * Configures and operates an ERC 20 contract and the ERC 20 Bridge + * contract on a certain blockchain. + * + */ +public class MinterBurnerERC20Bridge extends AbstractERC20Bridge { + private static final Logger LOG = LogManager.getLogger(MinterBurnerERC20Bridge.class); + + public static byte[] MINTER_ROLE = Hash.keccak256(Bytes.wrap("MINTER_ROLE".getBytes())).toArray(); + + + + ERC20PresetMinterPauser erc20; + + SfcErc20MintingBurningBridge erc20Bridge; + + + public MinterBurnerERC20Bridge(final String entity, BigInteger tokenSupply, + Credentials credentials, BlockchainId bcId, String uri, DynamicGasProvider.Strategy gasPriceStrategy, int blockPeriod) throws IOException { + super(entity, tokenSupply, credentials, bcId, uri, gasPriceStrategy, blockPeriod); + } + + public void deployContracts(String cbcAddress) throws Exception { + String name = this.entity; + String symbol= this.entity; + String owner = this.credentials.getAddress(); + this.erc20 = ERC20PresetMinterPauser.deploy(this.web3j, this.tm, this.gasProvider, name, symbol).send(); + LOG.info(" Deploy {} ERC20: {}.", this.entity, this.erc20.getContractAddress()); + + this.erc20Bridge = SfcErc20MintingBurningBridge.deploy(this.web3j, this.tm, this.gasProvider, cbcAddress).send(); + LOG.info(" Deploy ERC20 Minter Burner Bridge: {}", this.erc20Bridge.getContractAddress()); + this.erc20BridgeAddress = this.erc20Bridge.getContractAddress(); + + LOG.info(" Configure ERC20 Bridge to be the minter for the ERC20 contract"); + this.erc20.grantRole(MINTER_ROLE, this.erc20BridgeAddress).send(); + } + + public String getErc20ContractAddress() { + return this.erc20.getContractAddress(); + } + + public String getErc20BridgeContractAddress() { + return this.erc20Bridge.getContractAddress(); + } + + public void addRemoteERC20(BlockchainId remoteBcId, String remoteERC20ContractAddress) throws Exception { + LOG.info(" Setting Remote ERC20: Local BcId: {}, Remote BcId: {}, Local ERC20: {}, Remote ERC20: {}", + this.blockchainId, remoteBcId, this.erc20.getContractAddress(), remoteERC20ContractAddress); + this.erc20Bridge.changeContractMapping(this.erc20.getContractAddress(), remoteBcId.asBigInt(), remoteERC20ContractAddress).send(); + } + + public void addBlockchain(BlockchainId remoteBcId, String remoteERC20BridgeContractAddress) throws Exception { + LOG.info(" Setting Remote ERC20 Bridge: Remote BcId: {}, Remote ERC20Bridge: {}", + remoteBcId, remoteERC20BridgeContractAddress); + this.erc20Bridge.changeBlockchainMapping(remoteBcId.asBigInt(), remoteERC20BridgeContractAddress).send(); + } + + public void giveTokensToERC20Bridge(final int number) throws Exception { + throw new Exception("ERC 20 Bridge doesn't need tokens. It can mint then whenever it needs"); + } + + public void giveTokens(final Erc20User user, final int number) throws Exception { + throw new Exception("Only the bridge can mint tokens"); + } + + + public void showErc20Balances(Erc20User[] users) throws Exception { + LOG.info(" {} ERC 20 Balances", this.entity); + BigInteger totalSupply = this.erc20.totalSupply().send(); + LOG.info(" Total Supply: {}", totalSupply); + BigInteger bal = this.erc20.balanceOf(this.erc20BridgeAddress).send(); + LOG.info(" ERC20 Bridge Account {}: balance: {}", this.erc20BridgeAddress, bal); + for (Erc20User user: users) { + bal = this.erc20.balanceOf(user.getAddress()).send(); + LOG.info(" Account {}:{} balance: {}", user.getName(), user.getAddress(), bal); + } + } + public void showErc20Allowance(String owner, String spender) throws Exception { + BigInteger allowance = this.erc20.allowance(owner, spender).send(); + LOG.info(" {}: Owner {}: Spender: {}: Allowance: {}", this.entity, owner, spender, allowance); + } + +} diff --git a/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/TokenBridge.java b/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/TokenBridge.java index 8ac17148..0335151e 100644 --- a/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/TokenBridge.java +++ b/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/TokenBridge.java @@ -22,10 +22,15 @@ import java.math.BigInteger; - +/** + * Sample code showing how to use the Simple Function Call protocol + * ERC 20 Mass Conservation and Minter Burner bridges. + */ public class TokenBridge { static final Logger LOG = LogManager.getLogger(TokenBridge.class); + public static final boolean BLOCKCHAIN_B_MASS_CONSERVATION = false; + public static final int NUM_TIMES_EXECUTE = 2; public static void main(String[] args) throws Exception { @@ -45,22 +50,34 @@ public static void main(String[] args) throws Exception { SimpleCrossControlManagerGroup crossControlManagerGroup = exampleManager.getSfcCrossControlManagerGroup(); final int CHAIN_A_TOKEN_SUPPLY = 1000; - final int CHAIN_B_TOKEN_SUPPLY = 2000; + final int CHAIN_B_TOKEN_SUPPLY = 1000; // Set-up classes to manage blockchains. Credentials erc20OwnerCreds = CredentialsCreator.createCredentials(); MassConservationERC20Bridge chainA = new MassConservationERC20Bridge( "ChainA", BigInteger.valueOf(CHAIN_A_TOKEN_SUPPLY), erc20OwnerCreds, root.bcId, root.uri, root.gasPriceStrategy, root.period); - MassConservationERC20Bridge chainB = new MassConservationERC20Bridge( + AbstractERC20Bridge chainB; + if (BLOCKCHAIN_B_MASS_CONSERVATION) { + chainB = new MassConservationERC20Bridge( + "ChainB", BigInteger.valueOf(CHAIN_B_TOKEN_SUPPLY), + erc20OwnerCreds, bc2.bcId, bc2.uri, bc2.gasPriceStrategy, bc2.period); + } + else { + chainB = new MinterBurnerERC20Bridge( "ChainB", BigInteger.valueOf(CHAIN_B_TOKEN_SUPPLY), erc20OwnerCreds, bc2.bcId, bc2.uri, bc2.gasPriceStrategy, bc2.period); + } // Deploy application contracts. BlockchainId chainABcId = chainA.getBlockchainId(); - chainA.deployContract(crossControlManagerGroup.getCbcAddress(chainABcId)); + chainA.deployContracts(crossControlManagerGroup.getCbcAddress(chainABcId)); BlockchainId chainBBcId = chainB.getBlockchainId(); - chainB.deployContract(crossControlManagerGroup.getCbcAddress(chainBBcId)); + chainB.deployContracts(crossControlManagerGroup.getCbcAddress(chainBBcId)); + + // Connect the ERC 20 Bridges + chainA.addBlockchain(chainBBcId, chainB.getErc20BridgeContractAddress()); + chainB.addBlockchain(chainABcId, chainA.getErc20BridgeContractAddress()); // Register the ERC20 contracts with each blockchain. chainA.addRemoteERC20(chainBBcId, chainB.getErc20ContractAddress()); @@ -97,6 +114,10 @@ public static void main(String[] args) throws Exception { chainA.giveTokens(user2, 200); chainA.giveTokens(user3, 300); + if (BLOCKCHAIN_B_MASS_CONSERVATION) { + chainB.giveTokensToERC20Bridge(1000); + } + Erc20User[] users = new Erc20User[]{user1, user2, user3}; chainA.showErc20Balances(users); @@ -106,7 +127,12 @@ public static void main(String[] args) throws Exception { LOG.info("Execution: {} *****************", numExecutions); StatsHolder.log("Execution: " + numExecutions + " **************************"); - user1.transfer(true, numExecutions + 7); + user1.transfer(true, 20); + user2.transfer(true, user2.getAddress(), 30); + user3.transfer(true, user2.getAddress(), 10); + + user2.transfer(false, 39); + user1.transfer(false, 18); chainA.showErc20Balances(users); chainB.showErc20Balances(users); diff --git a/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/soliditywrappers/SfcErc20MassConservationBridge.java b/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/soliditywrappers/SfcErc20MassConservationBridge.java index 81aed3cd..f4ee4691 100644 --- a/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/soliditywrappers/SfcErc20MassConservationBridge.java +++ b/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/soliditywrappers/SfcErc20MassConservationBridge.java @@ -39,14 +39,18 @@ */ @SuppressWarnings("rawtypes") public class SfcErc20MassConservationBridge extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b50604051610dfc380380610dfc83398101604081905261002f9161009c565b600080546001600160a81b031916336101008102919091178255604051839282917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b0392909216919091179055506100cc565b6000602082840312156100ae57600080fd5b81516001600160a01b03811681146100c557600080fd5b9392505050565b610d21806100db6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80638278ef6d116100715780638278ef6d1461017757806384aea6331461018a5780638da5cb5b1461019d578063da72c1e8146101b3578063e39fc90e146101c6578063f2fde38b146101fa57600080fd5b806306b47e9e146100ae5780632e44a5b5146100c35780635c975abb14610113578063715018a61461011e57806380ccbde414610126575b600080fd5b6100c16100bc366004610b4f565b61020d565b005b6100fe6100d1366004610bad565b6001600160a01b039081166000908152600260209081526040808320948352939052919091205416151590565b60405190151581526020015b60405180910390f35b60005460ff166100fe565b6100c16102c2565b61015f610134366004610bad565b6001600160a01b03908116600090815260026020908152604080832094835293905291909120541690565b6040516001600160a01b03909116815260200161010a565b6100c1610185366004610ae9565b610341565b6100c1610198366004610bd9565b61057e565b60005461010090046001600160a01b031661015f565b6100c16101c1366004610ae9565b6107e4565b61015f6101d4366004610b25565b60026020908152600092835260408084209091529082529020546001600160a01b031681565b6100c1610208366004610ac7565b6108fa565b6000546001600160a01b036101009091041633146102465760405162461bcd60e51b815260040161023d90610c1d565b60405180910390fd5b6001600160a01b03838116600081815260026020908152604080832087845282529182902080546001600160a01b0319169486169485179055815192835282018590528101919091527f3887b7740ba2f669b578cfaf7b54c097711335413cf96f681d36dbf97b98a830906060015b60405180910390a1505050565b6000546001600160a01b036101009091041633146102f25760405162461bcd60e51b815260040161023d90610c1d565b600080546040516101009091046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360008054610100600160a81b0319169055565b60005460ff16156103875760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161023d565b6001546001600160a01b031633146104175760405162461bcd60e51b815260206004820152604760248201527f43616e206e6f742070726f63657373207472616e73666572732066726f6d206360448201527f6f6e747261637473206f74686572207468616e207468652062726964676520636064820152661bdb9d1c9858dd60ca1b608482015260a40161023d565b6000806104226109f5565b9092509050806001600160a01b03811661047e5760405162461bcd60e51b815260206004820152601b60248201527f536f75726365206973206e6f7420636f72726563742045524332300000000000604482015260640161023d565b6001600160a01b038087166000908152600260209081526040808320878452909152902054811690821681146104f65760405162461bcd60e51b815260206004820152601b60248201527f536f75726365206973206e6f7420636f72726563742045524332300000000000604482015260640161023d565b610501878787610a1d565b61051d5760405162461bcd60e51b815260040161023d90610c52565b604080518581526001600160a01b03848116602083015289811682840152881660608201526080810187905290517f3008be2f38f2c92605e65a39c193c4b67868ea0dd742f5b9d6f228c9e258ece19181900360a00190a150505050505050565b60005460ff16156105c45760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161023d565b6001600160a01b03808416600090815260026020908152604080832088845290915290205416806106305760405162461bcd60e51b8152602060048201526016602482015275546f6b656e206e6f74207472616e7366657261626c6560501b604482015260640161023d565b6040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b038516906323b872dd90606401602060405180830381600087803b15801561067e57600080fd5b505af1158015610692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b69190610b8b565b6106d25760405162461bcd60e51b815260040161023d90610c52565b600154604080516001600160a01b0384811660248301528681166044830152606480830187905283518084039091018152608490920183526020820180516001600160e01b0316638278ef6d60e01b17905291516392b2c33560e01b815291909216916392b2c3359161074c918991869190600401610c7f565b600060405180830381600087803b15801561076657600080fd5b505af115801561077a573d6000803e3d6000fd5b5050604080518881526001600160a01b038881166020830152858116828401523360608301528716608082015260a0810186905290517f752a2bfed77c22e59eeaf9351f545a08f5ee0110b8d6de0e7bcaf32a5dfa661b93509081900360c0019150a15050505050565b6000546001600160a01b036101009091041633146108145760405162461bcd60e51b815260040161023d90610c1d565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b15801561085e57600080fd5b505af1158015610872573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108969190610b8b565b6108b25760405162461bcd60e51b815260040161023d90610c52565b604080516001600160a01b038086168252841660208201529081018290527f728fe8c3e9dd087cac70e8ff44565c920a2bb77c726ed3191394fefb4aabc358906060016102b5565b6000546001600160a01b0361010090910416331461092a5760405162461bcd60e51b815260040161023d90610c1d565b6001600160a01b03811661098f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161023d565b600080546040516001600160a01b038085169361010090930416917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000808036806020603f19820184376000519450602080820360003760005193505050509091565b60405163a9059cbb60e01b81526001600160a01b038381166004830152602482018390526000919085169063a9059cbb90604401602060405180830381600087803b158015610a6b57600080fd5b505af1158015610a7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa39190610b8b565b949350505050565b80356001600160a01b0381168114610ac257600080fd5b919050565b600060208284031215610ad957600080fd5b610ae282610aab565b9392505050565b600080600060608486031215610afe57600080fd5b610b0784610aab565b9250610b1560208501610aab565b9150604084013590509250925092565b60008060408385031215610b3857600080fd5b610b4183610aab565b946020939093013593505050565b600080600060608486031215610b6457600080fd5b610b6d84610aab565b925060208401359150610b8260408501610aab565b90509250925092565b600060208284031215610b9d57600080fd5b81518015158114610ae257600080fd5b60008060408385031215610bc057600080fd5b82359150610bd060208401610aab565b90509250929050565b60008060008060808587031215610bef57600080fd5b84359350610bff60208601610aab565b9250610c0d60408601610aab565b9396929550929360600135925050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601390820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b604082015260600190565b8381526000602060018060a01b0385168184015260606040840152835180606085015260005b81811015610cc157858101830151858201608001528201610ca5565b81811115610cd3576000608083870101525b50601f01601f1916929092016080019594505050505056fea2646970667358221220f4abbb568d5539fe371f3b6bb365980dc70b549b7c8a2968cb04f5e14b29906364736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b50604051610ee1380380610ee183398101604081905261002f9161009c565b600080546001600160a81b031916336101008102919091178255604051839282917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b0392909216919091179055506100cc565b6000602082840312156100ae57600080fd5b81516001600160a01b03811681146100c557600080fd5b9392505050565b610e06806100db6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80638278ef6d116100715780638278ef6d146101ab57806384aea633146101be5780638da5cb5b146101d1578063da72c1e8146101e7578063e787282a146101fa578063f2fde38b1461020d57600080fd5b806306b47e9e146100b95780630dd4b783146100ce5780632e44a5b5146101145780635c975abb1461015f578063715018a61461016a57806380ccbde414610172575b600080fd5b6100cc6100c7366004610bea565b610220565b005b6100f76100dc366004610c26565b6000908152600360205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b61014f610122366004610c3f565b6001600160a01b039081166000908152600260209081526040808320948352939052919091205416151590565b604051901515815260200161010b565b60005460ff1661014f565b6100cc6102d5565b6100f7610180366004610c3f565b6001600160a01b03908116600090815260026020908152604080832094835293905291909120541690565b6100cc6101b9366004610c6b565b610354565b6100cc6101cc366004610ca7565b6105e8565b60005461010090046001600160a01b03166100f7565b6100cc6101f5366004610c6b565b61083b565b6100cc610208366004610c3f565b6108be565b6100cc61021b366004610ceb565b61091c565b6000546001600160a01b036101009091041633146102595760405162461bcd60e51b815260040161025090610d0d565b60405180910390fd5b6001600160a01b03838116600081815260026020908152604080832087845282529182902080546001600160a01b0319169486169485179055815192835282018590528101919091527f3887b7740ba2f669b578cfaf7b54c097711335413cf96f681d36dbf97b98a830906060015b60405180910390a1505050565b6000546001600160a01b036101009091041633146103055760405162461bcd60e51b815260040161025090610d0d565b600080546040516101009091046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360008054610100600160a81b0319169055565b60005460ff161561039a5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610250565b6001546001600160a01b0316331461042a5760405162461bcd60e51b815260206004820152604760248201527f43616e206e6f742070726f63657373207472616e73666572732066726f6d206360448201527f6f6e747261637473206f74686572207468616e207468652062726964676520636064820152661bdb9d1c9858dd60ca1b608482015260a401610250565b600080610435610a17565b9092509050806001600160a01b03811661049d5760405162461bcd60e51b8152602060048201526024808201527f45524320323020427269646765202863616c6c65722920636f6e7472616374206044820152630697320360e41b6064820152608401610250565b6000838152600360205260409020546001600160a01b03168061051b5760405162461bcd60e51b815260206004820152603060248201527f4e6f204552432032302042726964676520737570706f7274656420666f72207360448201526f37bab931b290313637b1b5b1b430b4b760811b6064820152608401610250565b806001600160a01b0316826001600160a01b03161461057c5760405162461bcd60e51b815260206004820152601e60248201527f496e636f727265637420736f75726365204552432032302042726964676500006044820152606401610250565b610587878787610a3f565b604080518581526001600160a01b03848116602083015289811682840152881660608201526080810187905290517f3008be2f38f2c92605e65a39c193c4b67868ea0dd742f5b9d6f228c9e258ece19181900360a00190a150505050505050565b60005460ff161561062e5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610250565b6000848152600360205260409020546001600160a01b0316806106935760405162461bcd60e51b815260206004820152601860248201527f426c6f636b636861696e206e6f7420737570706f7274656400000000000000006044820152606401610250565b6001600160a01b038085166000908152600260209081526040808320898452909152902054168061071d5760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e206e6f74207472616e7366657261626c6520746f2072657175657360448201526d3a32b210313637b1b5b1b430b4b760911b6064820152608401610250565b610728853385610b04565b600154604080516001600160a01b0384811660248301528781166044830152606480830188905283518084039091018152608490920183526020820180516001600160e01b0316638278ef6d60e01b17905291516392b2c33560e01b815291909216916392b2c335916107a2918a91879190600401610d42565b600060405180830381600087803b1580156107bc57600080fd5b505af11580156107d0573d6000803e3d6000fd5b5050604080518981526001600160a01b038981166020830152858116828401523360608301528816608082015260a0810187905290517f752a2bfed77c22e59eeaf9351f545a08f5ee0110b8d6de0e7bcaf32a5dfa661b93509081900360c0019150a1505050505050565b6000546001600160a01b0361010090910416331461086b5760405162461bcd60e51b815260040161025090610d0d565b610876838383610a3f565b604080516001600160a01b038086168252841660208201529081018290527f728fe8c3e9dd087cac70e8ff44565c920a2bb77c726ed3191394fefb4aabc358906060016102c8565b6000546001600160a01b036101009091041633146108ee5760405162461bcd60e51b815260040161025090610d0d565b60009182526003602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6000546001600160a01b0361010090910416331461094c5760405162461bcd60e51b815260040161025090610d0d565b6001600160a01b0381166109b15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610250565b600080546040516001600160a01b038085169361010090930416917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000808036806020603f19820184376000519450602080820360003760005193505050509091565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190610dae565b610aff5760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610250565b505050565b6040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401602060405180830381600087803b158015610b5457600080fd5b505af1158015610b68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8c9190610dae565b610aff5760405162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b6044820152606401610250565b80356001600160a01b0381168114610be557600080fd5b919050565b600080600060608486031215610bff57600080fd5b610c0884610bce565b925060208401359150610c1d60408501610bce565b90509250925092565b600060208284031215610c3857600080fd5b5035919050565b60008060408385031215610c5257600080fd5b82359150610c6260208401610bce565b90509250929050565b600080600060608486031215610c8057600080fd5b610c8984610bce565b9250610c9760208501610bce565b9150604084013590509250925092565b60008060008060808587031215610cbd57600080fd5b84359350610ccd60208601610bce565b9250610cdb60408601610bce565b9396929550929360600135925050565b600060208284031215610cfd57600080fd5b610d0682610bce565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8381526000602060018060a01b0385168184015260606040840152835180606085015260005b81811015610d8457858101830151858201608001528201610d68565b81811115610d96576000608083870101525b50601f01601f19169290920160800195945050505050565b600060208284031215610dc057600080fd5b81518015158114610d0657600080fdfea26469706673582212204c0706c3f893f27b2c7bcded87a639ef218985bea2d88fe501d1b0eded28c04e64736f6c63430008090033"; public static final String FUNC_ADMINTRANSFER = "adminTransfer"; + public static final String FUNC_CHANGEBLOCKCHAINMAPPING = "changeBlockchainMapping"; + public static final String FUNC_CHANGECONTRACTMAPPING = "changeContractMapping"; public static final String FUNC_GETBCIDTOKENMAPING = "getBcIdTokenMaping"; + public static final String FUNC_GETREMOTEERC20BRIDGECONTRACT = "getRemoteErc20BridgeContract"; + public static final String FUNC_ISBCIDTOKENALLOWED = "isBcIdTokenAllowed"; public static final String FUNC_OWNER = "owner"; @@ -57,8 +61,6 @@ public class SfcErc20MassConservationBridge extends Contract { public static final String FUNC_RENOUNCEOWNERSHIP = "renounceOwnership"; - public static final String FUNC_TOKENCONTRACTADDRESSMAPPING = "tokenContractAddressMapping"; - public static final String FUNC_TRANSFEROWNERSHIP = "transferOwnership"; public static final String FUNC_TRANSFERTOOTHERBLOCKCHAIN = "transferToOtherBlockchain"; @@ -364,6 +366,15 @@ public RemoteFunctionCall adminTransfer(String _erc20Contrac return executeRemoteCallTransaction(function); } + public RemoteFunctionCall changeBlockchainMapping(BigInteger _otherBcId, String _otherErc20Bridge) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_CHANGEBLOCKCHAINMAPPING, + Arrays.asList(new org.web3j.abi.datatypes.generated.Uint256(_otherBcId), + new org.web3j.abi.datatypes.Address(160, _otherErc20Bridge)), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + public RemoteFunctionCall changeContractMapping(String _thisBcTokenContract, BigInteger _otherBcId, String _othercTokenContract) { final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( FUNC_CHANGECONTRACTMAPPING, @@ -382,6 +393,13 @@ public RemoteFunctionCall getBcIdTokenMaping(BigInteger _bcId, String _t return executeRemoteCallSingleValueReturn(function, String.class); } + public RemoteFunctionCall getRemoteErc20BridgeContract(BigInteger _bcId) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_GETREMOTEERC20BRIDGECONTRACT, + Arrays.asList(new org.web3j.abi.datatypes.generated.Uint256(_bcId)), + Arrays.>asList(new TypeReference
() {})); + return executeRemoteCallSingleValueReturn(function, String.class); + } + public RemoteFunctionCall isBcIdTokenAllowed(BigInteger _bcId, String _tokenContract) { final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_ISBCIDTOKENALLOWED, Arrays.asList(new org.web3j.abi.datatypes.generated.Uint256(_bcId), @@ -422,14 +440,6 @@ public RemoteFunctionCall renounceOwnership() { return executeRemoteCallTransaction(function); } - public RemoteFunctionCall tokenContractAddressMapping(String param0, BigInteger param1) { - final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_TOKENCONTRACTADDRESSMAPPING, - Arrays.asList(new org.web3j.abi.datatypes.Address(160, param0), - new org.web3j.abi.datatypes.generated.Uint256(param1)), - Arrays.>asList(new TypeReference
() {})); - return executeRemoteCallSingleValueReturn(function, String.class); - } - public RemoteFunctionCall transferOwnership(String newOwner) { final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( FUNC_TRANSFEROWNERSHIP, diff --git a/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/soliditywrappers/SfcErc20MintingBurningBridge.java b/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/soliditywrappers/SfcErc20MintingBurningBridge.java new file mode 100644 index 00000000..66f3896e --- /dev/null +++ b/application/sfc-examples/tokenbridge/src/main/java/net/consensys/gpact/sfc/examples/tokenbridge/soliditywrappers/SfcErc20MintingBurningBridge.java @@ -0,0 +1,557 @@ +package net.consensys.gpact.sfc.examples.tokenbridge.soliditywrappers; + +import io.reactivex.Flowable; +import io.reactivex.functions.Function; +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import org.web3j.abi.EventEncoder; +import org.web3j.abi.FunctionEncoder; +import org.web3j.abi.TypeReference; +import org.web3j.abi.datatypes.Address; +import org.web3j.abi.datatypes.Bool; +import org.web3j.abi.datatypes.Event; +import org.web3j.abi.datatypes.Type; +import org.web3j.abi.datatypes.generated.Uint256; +import org.web3j.crypto.Credentials; +import org.web3j.protocol.Web3j; +import org.web3j.protocol.core.DefaultBlockParameter; +import org.web3j.protocol.core.RemoteCall; +import org.web3j.protocol.core.RemoteFunctionCall; +import org.web3j.protocol.core.methods.request.EthFilter; +import org.web3j.protocol.core.methods.response.BaseEventResponse; +import org.web3j.protocol.core.methods.response.Log; +import org.web3j.protocol.core.methods.response.TransactionReceipt; +import org.web3j.tx.Contract; +import org.web3j.tx.TransactionManager; +import org.web3j.tx.gas.ContractGasProvider; + +/** + *

Auto generated code. + *

Do not modify! + *

Please use the web3j command line tools, + * or the org.web3j.codegen.SolidityFunctionWrapperGenerator in the + * codegen module to update. + * + *

Generated with web3j version 4.8.5-SNAPSHOT. + */ +@SuppressWarnings("rawtypes") +public class SfcErc20MintingBurningBridge extends Contract { + public static final String BINARY = "608060405234801561001057600080fd5b50604051610dcd380380610dcd83398101604081905261002f9161009c565b600080546001600160a81b031916336101008102919091178255604051839282917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b0392909216919091179055506100cc565b6000602082840312156100ae57600080fd5b81516001600160a01b03811681146100c557600080fd5b9392505050565b610cf2806100db6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80638278ef6d116100715780638278ef6d146101ab57806384aea633146101be5780638da5cb5b146101d1578063da72c1e8146101e7578063e787282a146101fa578063f2fde38b1461020d57600080fd5b806306b47e9e146100b95780630dd4b783146100ce5780632e44a5b5146101145780635c975abb1461015f578063715018a61461016a57806380ccbde414610172575b600080fd5b6100cc6100c7366004610af8565b610220565b005b6100f76100dc366004610b34565b6000908152600360205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b61014f610122366004610b4d565b6001600160a01b039081166000908152600260209081526040808320948352939052919091205416151590565b604051901515815260200161010b565b60005460ff1661014f565b6100cc6102d5565b6100f7610180366004610b4d565b6001600160a01b03908116600090815260026020908152604080832094835293905291909120541690565b6100cc6101b9366004610b79565b610354565b6100cc6101cc366004610bb5565b6105e8565b60005461010090046001600160a01b03166100f7565b6100cc6101f5366004610b79565b61083b565b6100cc610208366004610b4d565b6108be565b6100cc61021b366004610bf9565b61091c565b6000546001600160a01b036101009091041633146102595760405162461bcd60e51b815260040161025090610c1b565b60405180910390fd5b6001600160a01b03838116600081815260026020908152604080832087845282529182902080546001600160a01b0319169486169485179055815192835282018590528101919091527f3887b7740ba2f669b578cfaf7b54c097711335413cf96f681d36dbf97b98a830906060015b60405180910390a1505050565b6000546001600160a01b036101009091041633146103055760405162461bcd60e51b815260040161025090610c1b565b600080546040516101009091046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360008054610100600160a81b0319169055565b60005460ff161561039a5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610250565b6001546001600160a01b0316331461042a5760405162461bcd60e51b815260206004820152604760248201527f43616e206e6f742070726f63657373207472616e73666572732066726f6d206360448201527f6f6e747261637473206f74686572207468616e207468652062726964676520636064820152661bdb9d1c9858dd60ca1b608482015260a401610250565b600080610435610a17565b9092509050806001600160a01b03811661049d5760405162461bcd60e51b8152602060048201526024808201527f45524320323020427269646765202863616c6c65722920636f6e7472616374206044820152630697320360e41b6064820152608401610250565b6000838152600360205260409020546001600160a01b03168061051b5760405162461bcd60e51b815260206004820152603060248201527f4e6f204552432032302042726964676520737570706f7274656420666f72207360448201526f37bab931b290313637b1b5b1b430b4b760811b6064820152608401610250565b806001600160a01b0316826001600160a01b03161461057c5760405162461bcd60e51b815260206004820152601e60248201527f496e636f727265637420736f75726365204552432032302042726964676500006044820152606401610250565b610587878787610a3f565b604080518581526001600160a01b03848116602083015289811682840152881660608201526080810187905290517f3008be2f38f2c92605e65a39c193c4b67868ea0dd742f5b9d6f228c9e258ece19181900360a00190a150505050505050565b60005460ff161561062e5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610250565b6000848152600360205260409020546001600160a01b0316806106935760405162461bcd60e51b815260206004820152601860248201527f426c6f636b636861696e206e6f7420737570706f7274656400000000000000006044820152606401610250565b6001600160a01b038085166000908152600260209081526040808320898452909152902054168061071d5760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e206e6f74207472616e7366657261626c6520746f2072657175657360448201526d3a32b210313637b1b5b1b430b4b760911b6064820152608401610250565b610728853385610aa7565b600154604080516001600160a01b0384811660248301528781166044830152606480830188905283518084039091018152608490920183526020820180516001600160e01b0316638278ef6d60e01b17905291516392b2c33560e01b815291909216916392b2c335916107a2918a91879190600401610c50565b600060405180830381600087803b1580156107bc57600080fd5b505af11580156107d0573d6000803e3d6000fd5b5050604080518981526001600160a01b038981166020830152858116828401523360608301528816608082015260a0810187905290517f752a2bfed77c22e59eeaf9351f545a08f5ee0110b8d6de0e7bcaf32a5dfa661b93509081900360c0019150a1505050505050565b6000546001600160a01b0361010090910416331461086b5760405162461bcd60e51b815260040161025090610c1b565b610876838383610a3f565b604080516001600160a01b038086168252841660208201529081018290527f728fe8c3e9dd087cac70e8ff44565c920a2bb77c726ed3191394fefb4aabc358906060016102c8565b6000546001600160a01b036101009091041633146108ee5760405162461bcd60e51b815260040161025090610c1b565b60009182526003602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6000546001600160a01b0361010090910416331461094c5760405162461bcd60e51b815260040161025090610c1b565b6001600160a01b0381166109b15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610250565b600080546040516001600160a01b038085169361010090930416917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000808036806020603f19820184376000519450602080820360003760005193505050509091565b6040516340c10f1960e01b81526001600160a01b038381166004830152602482018390528416906340c10f19906044015b600060405180830381600087803b158015610a8a57600080fd5b505af1158015610a9e573d6000803e3d6000fd5b50505050505050565b60405163079cc67960e41b81526001600160a01b038381166004830152602482018390528416906379cc679090604401610a70565b80356001600160a01b0381168114610af357600080fd5b919050565b600080600060608486031215610b0d57600080fd5b610b1684610adc565b925060208401359150610b2b60408501610adc565b90509250925092565b600060208284031215610b4657600080fd5b5035919050565b60008060408385031215610b6057600080fd5b82359150610b7060208401610adc565b90509250929050565b600080600060608486031215610b8e57600080fd5b610b9784610adc565b9250610ba560208501610adc565b9150604084013590509250925092565b60008060008060808587031215610bcb57600080fd5b84359350610bdb60208601610adc565b9250610be960408601610adc565b9396929550929360600135925050565b600060208284031215610c0b57600080fd5b610c1482610adc565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8381526000602060018060a01b0385168184015260606040840152835180606085015260005b81811015610c9257858101830151858201608001528201610c76565b81811115610ca4576000608083870101525b50601f01601f1916929092016080019594505050505056fea2646970667358221220423b3716f1d30703c4ed8ed6a14aee8e85be6382b34a2781b5c43f712d4025ce64736f6c63430008090033"; + + public static final String FUNC_ADMINTRANSFER = "adminTransfer"; + + public static final String FUNC_CHANGEBLOCKCHAINMAPPING = "changeBlockchainMapping"; + + public static final String FUNC_CHANGECONTRACTMAPPING = "changeContractMapping"; + + public static final String FUNC_GETBCIDTOKENMAPING = "getBcIdTokenMaping"; + + public static final String FUNC_GETREMOTEERC20BRIDGECONTRACT = "getRemoteErc20BridgeContract"; + + public static final String FUNC_ISBCIDTOKENALLOWED = "isBcIdTokenAllowed"; + + public static final String FUNC_OWNER = "owner"; + + public static final String FUNC_PAUSED = "paused"; + + public static final String FUNC_RECEIVEFROMOTHERBLOCKCHAIN = "receiveFromOtherBlockchain"; + + public static final String FUNC_RENOUNCEOWNERSHIP = "renounceOwnership"; + + public static final String FUNC_TRANSFEROWNERSHIP = "transferOwnership"; + + public static final String FUNC_TRANSFERTOOTHERBLOCKCHAIN = "transferToOtherBlockchain"; + + public static final Event ADMINTRANSFER_EVENT = new Event("AdminTransfer", + Arrays.>asList(new TypeReference

() {}, new TypeReference
() {}, new TypeReference() {})); + ; + + public static final Event OWNERSHIPTRANSFERRED_EVENT = new Event("OwnershipTransferred", + Arrays.>asList(new TypeReference
(true) {}, new TypeReference
(true) {})); + ; + + public static final Event PAUSED_EVENT = new Event("Paused", + Arrays.>asList(new TypeReference
() {})); + ; + + public static final Event RECEIVEDFROM_EVENT = new Event("ReceivedFrom", + Arrays.>asList(new TypeReference() {}, new TypeReference
() {}, new TypeReference
() {}, new TypeReference
() {}, new TypeReference() {})); + ; + + public static final Event TOKENCONTRACTADDRESSMAPPINGCHANGED_EVENT = new Event("TokenContractAddressMappingChanged", + Arrays.>asList(new TypeReference
() {}, new TypeReference() {}, new TypeReference
() {})); + ; + + public static final Event TRANSFERTO_EVENT = new Event("TransferTo", + Arrays.>asList(new TypeReference() {}, new TypeReference
() {}, new TypeReference
() {}, new TypeReference
() {}, new TypeReference
() {}, new TypeReference() {})); + ; + + public static final Event UNPAUSED_EVENT = new Event("Unpaused", + Arrays.>asList(new TypeReference
() {})); + ; + + @Deprecated + protected SfcErc20MintingBurningBridge(String contractAddress, Web3j web3j, Credentials credentials, BigInteger gasPrice, BigInteger gasLimit) { + super(BINARY, contractAddress, web3j, credentials, gasPrice, gasLimit); + } + + protected SfcErc20MintingBurningBridge(String contractAddress, Web3j web3j, Credentials credentials, ContractGasProvider contractGasProvider) { + super(BINARY, contractAddress, web3j, credentials, contractGasProvider); + } + + @Deprecated + protected SfcErc20MintingBurningBridge(String contractAddress, Web3j web3j, TransactionManager transactionManager, BigInteger gasPrice, BigInteger gasLimit) { + super(BINARY, contractAddress, web3j, transactionManager, gasPrice, gasLimit); + } + + protected SfcErc20MintingBurningBridge(String contractAddress, Web3j web3j, TransactionManager transactionManager, ContractGasProvider contractGasProvider) { + super(BINARY, contractAddress, web3j, transactionManager, contractGasProvider); + } + + public List getAdminTransferEvents(TransactionReceipt transactionReceipt) { + List valueList = extractEventParametersWithLog(ADMINTRANSFER_EVENT, transactionReceipt); + ArrayList responses = new ArrayList(valueList.size()); + for (Contract.EventValuesWithLog eventValues : valueList) { + AdminTransferEventResponse typedResponse = new AdminTransferEventResponse(); + typedResponse.log = eventValues.getLog(); + typedResponse._erc20Contract = (String) eventValues.getNonIndexedValues().get(0).getValue(); + typedResponse._recipient = (String) eventValues.getNonIndexedValues().get(1).getValue(); + typedResponse._amount = (BigInteger) eventValues.getNonIndexedValues().get(2).getValue(); + responses.add(typedResponse); + } + return responses; + } + + public Flowable adminTransferEventFlowable(EthFilter filter) { + return web3j.ethLogFlowable(filter).map(new Function() { + @Override + public AdminTransferEventResponse apply(Log log) { + Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(ADMINTRANSFER_EVENT, log); + AdminTransferEventResponse typedResponse = new AdminTransferEventResponse(); + typedResponse.log = log; + typedResponse._erc20Contract = (String) eventValues.getNonIndexedValues().get(0).getValue(); + typedResponse._recipient = (String) eventValues.getNonIndexedValues().get(1).getValue(); + typedResponse._amount = (BigInteger) eventValues.getNonIndexedValues().get(2).getValue(); + return typedResponse; + } + }); + } + + public Flowable adminTransferEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) { + EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress()); + filter.addSingleTopic(EventEncoder.encode(ADMINTRANSFER_EVENT)); + return adminTransferEventFlowable(filter); + } + + public List getOwnershipTransferredEvents(TransactionReceipt transactionReceipt) { + List valueList = extractEventParametersWithLog(OWNERSHIPTRANSFERRED_EVENT, transactionReceipt); + ArrayList responses = new ArrayList(valueList.size()); + for (Contract.EventValuesWithLog eventValues : valueList) { + OwnershipTransferredEventResponse typedResponse = new OwnershipTransferredEventResponse(); + typedResponse.log = eventValues.getLog(); + typedResponse.previousOwner = (String) eventValues.getIndexedValues().get(0).getValue(); + typedResponse.newOwner = (String) eventValues.getIndexedValues().get(1).getValue(); + responses.add(typedResponse); + } + return responses; + } + + public Flowable ownershipTransferredEventFlowable(EthFilter filter) { + return web3j.ethLogFlowable(filter).map(new Function() { + @Override + public OwnershipTransferredEventResponse apply(Log log) { + Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(OWNERSHIPTRANSFERRED_EVENT, log); + OwnershipTransferredEventResponse typedResponse = new OwnershipTransferredEventResponse(); + typedResponse.log = log; + typedResponse.previousOwner = (String) eventValues.getIndexedValues().get(0).getValue(); + typedResponse.newOwner = (String) eventValues.getIndexedValues().get(1).getValue(); + return typedResponse; + } + }); + } + + public Flowable ownershipTransferredEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) { + EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress()); + filter.addSingleTopic(EventEncoder.encode(OWNERSHIPTRANSFERRED_EVENT)); + return ownershipTransferredEventFlowable(filter); + } + + public List getPausedEvents(TransactionReceipt transactionReceipt) { + List valueList = extractEventParametersWithLog(PAUSED_EVENT, transactionReceipt); + ArrayList responses = new ArrayList(valueList.size()); + for (Contract.EventValuesWithLog eventValues : valueList) { + PausedEventResponse typedResponse = new PausedEventResponse(); + typedResponse.log = eventValues.getLog(); + typedResponse.account = (String) eventValues.getNonIndexedValues().get(0).getValue(); + responses.add(typedResponse); + } + return responses; + } + + public Flowable pausedEventFlowable(EthFilter filter) { + return web3j.ethLogFlowable(filter).map(new Function() { + @Override + public PausedEventResponse apply(Log log) { + Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(PAUSED_EVENT, log); + PausedEventResponse typedResponse = new PausedEventResponse(); + typedResponse.log = log; + typedResponse.account = (String) eventValues.getNonIndexedValues().get(0).getValue(); + return typedResponse; + } + }); + } + + public Flowable pausedEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) { + EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress()); + filter.addSingleTopic(EventEncoder.encode(PAUSED_EVENT)); + return pausedEventFlowable(filter); + } + + public List getReceivedFromEvents(TransactionReceipt transactionReceipt) { + List valueList = extractEventParametersWithLog(RECEIVEDFROM_EVENT, transactionReceipt); + ArrayList responses = new ArrayList(valueList.size()); + for (Contract.EventValuesWithLog eventValues : valueList) { + ReceivedFromEventResponse typedResponse = new ReceivedFromEventResponse(); + typedResponse.log = eventValues.getLog(); + typedResponse._srcBcId = (BigInteger) eventValues.getNonIndexedValues().get(0).getValue(); + typedResponse._srcTokenContract = (String) eventValues.getNonIndexedValues().get(1).getValue(); + typedResponse._destTokenContract = (String) eventValues.getNonIndexedValues().get(2).getValue(); + typedResponse._recipient = (String) eventValues.getNonIndexedValues().get(3).getValue(); + typedResponse._amount = (BigInteger) eventValues.getNonIndexedValues().get(4).getValue(); + responses.add(typedResponse); + } + return responses; + } + + public Flowable receivedFromEventFlowable(EthFilter filter) { + return web3j.ethLogFlowable(filter).map(new Function() { + @Override + public ReceivedFromEventResponse apply(Log log) { + Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(RECEIVEDFROM_EVENT, log); + ReceivedFromEventResponse typedResponse = new ReceivedFromEventResponse(); + typedResponse.log = log; + typedResponse._srcBcId = (BigInteger) eventValues.getNonIndexedValues().get(0).getValue(); + typedResponse._srcTokenContract = (String) eventValues.getNonIndexedValues().get(1).getValue(); + typedResponse._destTokenContract = (String) eventValues.getNonIndexedValues().get(2).getValue(); + typedResponse._recipient = (String) eventValues.getNonIndexedValues().get(3).getValue(); + typedResponse._amount = (BigInteger) eventValues.getNonIndexedValues().get(4).getValue(); + return typedResponse; + } + }); + } + + public Flowable receivedFromEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) { + EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress()); + filter.addSingleTopic(EventEncoder.encode(RECEIVEDFROM_EVENT)); + return receivedFromEventFlowable(filter); + } + + public List getTokenContractAddressMappingChangedEvents(TransactionReceipt transactionReceipt) { + List valueList = extractEventParametersWithLog(TOKENCONTRACTADDRESSMAPPINGCHANGED_EVENT, transactionReceipt); + ArrayList responses = new ArrayList(valueList.size()); + for (Contract.EventValuesWithLog eventValues : valueList) { + TokenContractAddressMappingChangedEventResponse typedResponse = new TokenContractAddressMappingChangedEventResponse(); + typedResponse.log = eventValues.getLog(); + typedResponse._thisBcTokenContract = (String) eventValues.getNonIndexedValues().get(0).getValue(); + typedResponse._otherBcId = (BigInteger) eventValues.getNonIndexedValues().get(1).getValue(); + typedResponse._othercTokenContract = (String) eventValues.getNonIndexedValues().get(2).getValue(); + responses.add(typedResponse); + } + return responses; + } + + public Flowable tokenContractAddressMappingChangedEventFlowable(EthFilter filter) { + return web3j.ethLogFlowable(filter).map(new Function() { + @Override + public TokenContractAddressMappingChangedEventResponse apply(Log log) { + Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(TOKENCONTRACTADDRESSMAPPINGCHANGED_EVENT, log); + TokenContractAddressMappingChangedEventResponse typedResponse = new TokenContractAddressMappingChangedEventResponse(); + typedResponse.log = log; + typedResponse._thisBcTokenContract = (String) eventValues.getNonIndexedValues().get(0).getValue(); + typedResponse._otherBcId = (BigInteger) eventValues.getNonIndexedValues().get(1).getValue(); + typedResponse._othercTokenContract = (String) eventValues.getNonIndexedValues().get(2).getValue(); + return typedResponse; + } + }); + } + + public Flowable tokenContractAddressMappingChangedEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) { + EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress()); + filter.addSingleTopic(EventEncoder.encode(TOKENCONTRACTADDRESSMAPPINGCHANGED_EVENT)); + return tokenContractAddressMappingChangedEventFlowable(filter); + } + + public List getTransferToEvents(TransactionReceipt transactionReceipt) { + List valueList = extractEventParametersWithLog(TRANSFERTO_EVENT, transactionReceipt); + ArrayList responses = new ArrayList(valueList.size()); + for (Contract.EventValuesWithLog eventValues : valueList) { + TransferToEventResponse typedResponse = new TransferToEventResponse(); + typedResponse.log = eventValues.getLog(); + typedResponse._destBcId = (BigInteger) eventValues.getNonIndexedValues().get(0).getValue(); + typedResponse._srcTokenContract = (String) eventValues.getNonIndexedValues().get(1).getValue(); + typedResponse._destTokenContract = (String) eventValues.getNonIndexedValues().get(2).getValue(); + typedResponse._sender = (String) eventValues.getNonIndexedValues().get(3).getValue(); + typedResponse._recipient = (String) eventValues.getNonIndexedValues().get(4).getValue(); + typedResponse._amount = (BigInteger) eventValues.getNonIndexedValues().get(5).getValue(); + responses.add(typedResponse); + } + return responses; + } + + public Flowable transferToEventFlowable(EthFilter filter) { + return web3j.ethLogFlowable(filter).map(new Function() { + @Override + public TransferToEventResponse apply(Log log) { + Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(TRANSFERTO_EVENT, log); + TransferToEventResponse typedResponse = new TransferToEventResponse(); + typedResponse.log = log; + typedResponse._destBcId = (BigInteger) eventValues.getNonIndexedValues().get(0).getValue(); + typedResponse._srcTokenContract = (String) eventValues.getNonIndexedValues().get(1).getValue(); + typedResponse._destTokenContract = (String) eventValues.getNonIndexedValues().get(2).getValue(); + typedResponse._sender = (String) eventValues.getNonIndexedValues().get(3).getValue(); + typedResponse._recipient = (String) eventValues.getNonIndexedValues().get(4).getValue(); + typedResponse._amount = (BigInteger) eventValues.getNonIndexedValues().get(5).getValue(); + return typedResponse; + } + }); + } + + public Flowable transferToEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) { + EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress()); + filter.addSingleTopic(EventEncoder.encode(TRANSFERTO_EVENT)); + return transferToEventFlowable(filter); + } + + public List getUnpausedEvents(TransactionReceipt transactionReceipt) { + List valueList = extractEventParametersWithLog(UNPAUSED_EVENT, transactionReceipt); + ArrayList responses = new ArrayList(valueList.size()); + for (Contract.EventValuesWithLog eventValues : valueList) { + UnpausedEventResponse typedResponse = new UnpausedEventResponse(); + typedResponse.log = eventValues.getLog(); + typedResponse.account = (String) eventValues.getNonIndexedValues().get(0).getValue(); + responses.add(typedResponse); + } + return responses; + } + + public Flowable unpausedEventFlowable(EthFilter filter) { + return web3j.ethLogFlowable(filter).map(new Function() { + @Override + public UnpausedEventResponse apply(Log log) { + Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(UNPAUSED_EVENT, log); + UnpausedEventResponse typedResponse = new UnpausedEventResponse(); + typedResponse.log = log; + typedResponse.account = (String) eventValues.getNonIndexedValues().get(0).getValue(); + return typedResponse; + } + }); + } + + public Flowable unpausedEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) { + EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress()); + filter.addSingleTopic(EventEncoder.encode(UNPAUSED_EVENT)); + return unpausedEventFlowable(filter); + } + + public RemoteFunctionCall adminTransfer(String _erc20Contract, String _recipient, BigInteger _amount) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_ADMINTRANSFER, + Arrays.asList(new org.web3j.abi.datatypes.Address(160, _erc20Contract), + new org.web3j.abi.datatypes.Address(160, _recipient), + new org.web3j.abi.datatypes.generated.Uint256(_amount)), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + public RemoteFunctionCall changeBlockchainMapping(BigInteger _otherBcId, String _otherErc20Bridge) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_CHANGEBLOCKCHAINMAPPING, + Arrays.asList(new org.web3j.abi.datatypes.generated.Uint256(_otherBcId), + new org.web3j.abi.datatypes.Address(160, _otherErc20Bridge)), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + public RemoteFunctionCall changeContractMapping(String _thisBcTokenContract, BigInteger _otherBcId, String _othercTokenContract) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_CHANGECONTRACTMAPPING, + Arrays.asList(new org.web3j.abi.datatypes.Address(160, _thisBcTokenContract), + new org.web3j.abi.datatypes.generated.Uint256(_otherBcId), + new org.web3j.abi.datatypes.Address(160, _othercTokenContract)), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + public RemoteFunctionCall getBcIdTokenMaping(BigInteger _bcId, String _tokenContract) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_GETBCIDTOKENMAPING, + Arrays.asList(new org.web3j.abi.datatypes.generated.Uint256(_bcId), + new org.web3j.abi.datatypes.Address(160, _tokenContract)), + Arrays.>asList(new TypeReference
() {})); + return executeRemoteCallSingleValueReturn(function, String.class); + } + + public RemoteFunctionCall getRemoteErc20BridgeContract(BigInteger _bcId) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_GETREMOTEERC20BRIDGECONTRACT, + Arrays.asList(new org.web3j.abi.datatypes.generated.Uint256(_bcId)), + Arrays.>asList(new TypeReference
() {})); + return executeRemoteCallSingleValueReturn(function, String.class); + } + + public RemoteFunctionCall isBcIdTokenAllowed(BigInteger _bcId, String _tokenContract) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_ISBCIDTOKENALLOWED, + Arrays.asList(new org.web3j.abi.datatypes.generated.Uint256(_bcId), + new org.web3j.abi.datatypes.Address(160, _tokenContract)), + Arrays.>asList(new TypeReference() {})); + return executeRemoteCallSingleValueReturn(function, Boolean.class); + } + + public RemoteFunctionCall owner() { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_OWNER, + Arrays.asList(), + Arrays.>asList(new TypeReference
() {})); + return executeRemoteCallSingleValueReturn(function, String.class); + } + + public RemoteFunctionCall paused() { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_PAUSED, + Arrays.asList(), + Arrays.>asList(new TypeReference() {})); + return executeRemoteCallSingleValueReturn(function, Boolean.class); + } + + public RemoteFunctionCall receiveFromOtherBlockchain(String _destTokenContract, String _recipient, BigInteger _amount) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_RECEIVEFROMOTHERBLOCKCHAIN, + Arrays.asList(new org.web3j.abi.datatypes.Address(160, _destTokenContract), + new org.web3j.abi.datatypes.Address(160, _recipient), + new org.web3j.abi.datatypes.generated.Uint256(_amount)), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + public RemoteFunctionCall renounceOwnership() { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_RENOUNCEOWNERSHIP, + Arrays.asList(), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + public RemoteFunctionCall transferOwnership(String newOwner) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_TRANSFEROWNERSHIP, + Arrays.asList(new org.web3j.abi.datatypes.Address(160, newOwner)), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + public RemoteFunctionCall transferToOtherBlockchain(BigInteger _destBcId, String _srcTokenContract, String _recipient, BigInteger _amount) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_TRANSFERTOOTHERBLOCKCHAIN, + Arrays.asList(new org.web3j.abi.datatypes.generated.Uint256(_destBcId), + new org.web3j.abi.datatypes.Address(160, _srcTokenContract), + new org.web3j.abi.datatypes.Address(160, _recipient), + new org.web3j.abi.datatypes.generated.Uint256(_amount)), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + @Deprecated + public static SfcErc20MintingBurningBridge load(String contractAddress, Web3j web3j, Credentials credentials, BigInteger gasPrice, BigInteger gasLimit) { + return new SfcErc20MintingBurningBridge(contractAddress, web3j, credentials, gasPrice, gasLimit); + } + + @Deprecated + public static SfcErc20MintingBurningBridge load(String contractAddress, Web3j web3j, TransactionManager transactionManager, BigInteger gasPrice, BigInteger gasLimit) { + return new SfcErc20MintingBurningBridge(contractAddress, web3j, transactionManager, gasPrice, gasLimit); + } + + public static SfcErc20MintingBurningBridge load(String contractAddress, Web3j web3j, Credentials credentials, ContractGasProvider contractGasProvider) { + return new SfcErc20MintingBurningBridge(contractAddress, web3j, credentials, contractGasProvider); + } + + public static SfcErc20MintingBurningBridge load(String contractAddress, Web3j web3j, TransactionManager transactionManager, ContractGasProvider contractGasProvider) { + return new SfcErc20MintingBurningBridge(contractAddress, web3j, transactionManager, contractGasProvider); + } + + public static RemoteCall deploy(Web3j web3j, Credentials credentials, ContractGasProvider contractGasProvider, String _sfcCbcContract) { + String encodedConstructor = FunctionEncoder.encodeConstructor(Arrays.asList(new org.web3j.abi.datatypes.Address(160, _sfcCbcContract))); + return deployRemoteCall(SfcErc20MintingBurningBridge.class, web3j, credentials, contractGasProvider, BINARY, encodedConstructor); + } + + public static RemoteCall deploy(Web3j web3j, TransactionManager transactionManager, ContractGasProvider contractGasProvider, String _sfcCbcContract) { + String encodedConstructor = FunctionEncoder.encodeConstructor(Arrays.asList(new org.web3j.abi.datatypes.Address(160, _sfcCbcContract))); + return deployRemoteCall(SfcErc20MintingBurningBridge.class, web3j, transactionManager, contractGasProvider, BINARY, encodedConstructor); + } + + @Deprecated + public static RemoteCall deploy(Web3j web3j, Credentials credentials, BigInteger gasPrice, BigInteger gasLimit, String _sfcCbcContract) { + String encodedConstructor = FunctionEncoder.encodeConstructor(Arrays.asList(new org.web3j.abi.datatypes.Address(160, _sfcCbcContract))); + return deployRemoteCall(SfcErc20MintingBurningBridge.class, web3j, credentials, gasPrice, gasLimit, BINARY, encodedConstructor); + } + + @Deprecated + public static RemoteCall deploy(Web3j web3j, TransactionManager transactionManager, BigInteger gasPrice, BigInteger gasLimit, String _sfcCbcContract) { + String encodedConstructor = FunctionEncoder.encodeConstructor(Arrays.asList(new org.web3j.abi.datatypes.Address(160, _sfcCbcContract))); + return deployRemoteCall(SfcErc20MintingBurningBridge.class, web3j, transactionManager, gasPrice, gasLimit, BINARY, encodedConstructor); + } + + public static class AdminTransferEventResponse extends BaseEventResponse { + public String _erc20Contract; + + public String _recipient; + + public BigInteger _amount; + } + + public static class OwnershipTransferredEventResponse extends BaseEventResponse { + public String previousOwner; + + public String newOwner; + } + + public static class PausedEventResponse extends BaseEventResponse { + public String account; + } + + public static class ReceivedFromEventResponse extends BaseEventResponse { + public BigInteger _srcBcId; + + public String _srcTokenContract; + + public String _destTokenContract; + + public String _recipient; + + public BigInteger _amount; + } + + public static class TokenContractAddressMappingChangedEventResponse extends BaseEventResponse { + public String _thisBcTokenContract; + + public BigInteger _otherBcId; + + public String _othercTokenContract; + } + + public static class TransferToEventResponse extends BaseEventResponse { + public BigInteger _destBcId; + + public String _srcTokenContract; + + public String _destTokenContract; + + public String _sender; + + public String _recipient; + + public BigInteger _amount; + } + + public static class UnpausedEventResponse extends BaseEventResponse { + public String account; + } +} diff --git a/application/sfc-examples/tokenbridge/src/main/resources/log4j2.xml b/application/sfc-examples/tokenbridge/src/main/resources/log4j2.xml new file mode 100644 index 00000000..88a65fc8 --- /dev/null +++ b/application/sfc-examples/tokenbridge/src/main/resources/log4j2.xml @@ -0,0 +1,30 @@ + + + + + INFO + + + + + + + + + + + + + + + + diff --git a/application/sfc-examples/tokenbridge/src/main/solidity/AbstractSfcErc20Bridge.sol b/application/sfc-examples/tokenbridge/src/main/solidity/AbstractSfcErc20Bridge.sol index eede2dfa..bdbaa156 100644 --- a/application/sfc-examples/tokenbridge/src/main/solidity/AbstractSfcErc20Bridge.sol +++ b/application/sfc-examples/tokenbridge/src/main/solidity/AbstractSfcErc20Bridge.sol @@ -27,14 +27,19 @@ import "./SfcErc20BridgeInterface.sol"; */ abstract contract AbstractSfcErc20Bridge is HiddenParameters, Pausable, Ownable, SfcErc20BridgeInterface { // Simple Function Call bridge. - CrosschainFunctionCallInterface crosschainBridge; + CrosschainFunctionCallInterface private crosschainBridge; // Mapping of ERC 20 contracts on this blockchain to ERC 20 contracts // of the same type on different blockchains. // // Map (token contract address on this blockchain => // Map (destination blockchain Id => address on remote contract) - mapping (address => mapping (uint256 => address)) public tokenContractAddressMapping; + mapping (address => mapping (uint256 => address)) private tokenContractAddressMapping; + + + // Addresses of ERC 20 bridges on other blockchains. + mapping (uint256 => address) private remoteErc20Bridges; + /** * @param _sfcCbcContract Simple Function Call protocol implementation. @@ -44,19 +49,15 @@ abstract contract AbstractSfcErc20Bridge is HiddenParameters, Pausable, Ownable, } - /** - * Update the mapping between an ERC 20 contract on this blockchain and an ERC 20 - * contract on another blockchain. - * - * @param _thisBcTokenContract Address of ERC 20 contract on this blockchain. - * @param _otherBcId Blockchain ID where the corresponding ERC 20 contract resides. - * @param _othercTokenContract Address of ERC 20 contract on the other blockchain. - */ function changeContractMapping(address _thisBcTokenContract, uint256 _otherBcId, address _othercTokenContract) onlyOwner override external { tokenContractAddressMapping[_thisBcTokenContract][_otherBcId] = _othercTokenContract; emit TokenContractAddressMappingChanged(_thisBcTokenContract, _otherBcId, _othercTokenContract); } + function changeBlockchainMapping(uint256 _otherBcId, address _otherErc20Bridge) onlyOwner override external { + remoteErc20Bridges[_otherBcId] = _otherErc20Bridge; + } + /** * Transfer tokens from msg.sender to this contract on this blockchain, * and request tokens on the remote blockchain be given to the requested @@ -69,19 +70,19 @@ abstract contract AbstractSfcErc20Bridge is HiddenParameters, Pausable, Ownable, * @param _amount The number of tokens to transfer. */ function transferToOtherBlockchain(uint256 _destBcId, address _srcTokenContract, address _recipient, uint256 _amount) whenNotPaused override public { - address destTokenContract = tokenContractAddressMapping[_srcTokenContract][_destBcId]; + address destErc20BridgeContract = remoteErc20Bridges[_destBcId]; + require(destErc20BridgeContract != address(0), "Blockchain not supported"); // The token must be able to be transferred to the target blockchain. - require(destTokenContract != address(0), "Token not transferable"); + address destTokenContract = tokenContractAddressMapping[_srcTokenContract][_destBcId]; + require(destTokenContract != address(0), "Token not transferable to requested blockchain"); // Transfer tokens from the user to this contract. // The transfer will revert if the account has inadequate balance or if adequate // allowance hasn't been set-up. - if (!IERC20(_srcTokenContract).transferFrom(msg.sender, address(this), _amount)) { - revert("transferFrom failed"); - } + transferOrBurn(_srcTokenContract, msg.sender, _amount); - crosschainBridge.crossBlockchainCall(_destBcId, destTokenContract, + crosschainBridge.crossBlockchainCall(_destBcId, destErc20BridgeContract, abi.encodeWithSelector(this.receiveFromOtherBlockchain.selector, destTokenContract, _recipient, _amount)); emit TransferTo(_destBcId, _srcTokenContract, destTokenContract, msg.sender, _recipient, _amount); @@ -102,28 +103,22 @@ abstract contract AbstractSfcErc20Bridge is HiddenParameters, Pausable, Ownable, (uint256 sourceBcId, uint256 sourceContract1) = extractTwoHiddenParams(); address sourceContract = address(uint160(sourceContract1)); // The source blockchain id is validated at the function call layer. No need to check - // that is isn't zero. - // The sourceContract could be manipulated by malicious validators. A value of zero - // would be deemed valid in the code that follows. Hence, check for zero here. - require(sourceContract != address(0), "Source is not correct ERC20"); - - // Determine the ERC contract address that corresponds to the address on this blockchain. - address expectedSourceContract = tokenContractAddressMapping[_destTokenContract][sourceBcId]; + // that it isn't zero. - require(sourceContract == expectedSourceContract, "Source is not correct ERC20"); + require(sourceContract != address(0), "ERC 20 Bridge (caller) contract is 0"); + address remoteErc20Bridge = remoteErc20Bridges[sourceBcId]; + require(remoteErc20Bridge != address(0), "No ERC 20 Bridge supported for source blockchain"); + require(sourceContract == remoteErc20Bridge, "Incorrect source ERC 20 Bridge"); - if (!transferOrMint(_destTokenContract, _recipient, _amount)) { - revert("transferFrom failed"); - } + transferOrMint(_destTokenContract, _recipient, _amount); emit ReceivedFrom(sourceBcId, sourceContract, _destTokenContract, _recipient, _amount); } + function adminTransfer(address _erc20Contract, address _recipient, uint256 _amount) onlyOwner override external { - if (!IERC20(_erc20Contract).transfer(_recipient, _amount)) { - revert("transferFrom failed"); - } + transferOrMint(_erc20Contract, _recipient, _amount); emit AdminTransfer(_erc20Contract, _recipient, _amount); } @@ -136,11 +131,32 @@ abstract contract AbstractSfcErc20Bridge is HiddenParameters, Pausable, Ownable, return tokenContractAddressMapping[_tokenContract][_bcId]; } + function getRemoteErc20BridgeContract(uint256 _bcId) external override view returns(address) { + return remoteErc20Bridges[_bcId]; + } // *************************************************************************** // ******* Internal below here *********************************************** // *************************************************************************** - function transferOrMint(address _tokenContract, address _recipient, uint256 _amount) virtual internal returns (bool); - + /** + * Mass Conservation: Transfer tokens that are owned by this contract to a recipient. + * OR + * Minting Burning: Mint token and assign them to a recipient. + * + * @param _tokenContract ERC 20 contract of the token being transferred or minted. + * @param _recipient Account to transfer ownership of the tokens to. + * @param _amount The number of tokens to be transferred. + */ + function transferOrMint(address _tokenContract, address _recipient, uint256 _amount) virtual internal; + /** + * Mass Conservation: TransferFrom tokens from a spender to this contract. + * OR + * Minting Burning: BurnFrom a spender's tokens. + * + * @param _tokenContract ERC 20 contract of the token being transferred or burned. + * @param _spender Account to transfer ownership of the tokens from. + * @param _amount The number of tokens to be transferred. + */ + function transferOrBurn(address _tokenContract, address _spender, uint256 _amount) virtual internal; } \ No newline at end of file diff --git a/application/sfc-examples/tokenbridge/src/main/solidity/SfcErc20BridgeInterface.sol b/application/sfc-examples/tokenbridge/src/main/solidity/SfcErc20BridgeInterface.sol index 0443228c..ce16e196 100644 --- a/application/sfc-examples/tokenbridge/src/main/solidity/SfcErc20BridgeInterface.sol +++ b/application/sfc-examples/tokenbridge/src/main/solidity/SfcErc20BridgeInterface.sol @@ -81,6 +81,12 @@ interface SfcErc20BridgeInterface { */ function changeContractMapping(address _thisBcTokenContract, uint256 _otherBcId, address _othercTokenContract) external; + /** + * Connect this ERC20 Bridge contract to an ERC20 Bridge contract on another blockchain. + */ + function changeBlockchainMapping(uint256 _otherBcId, address _otherErc20Bridge) external; + + /** * Transfer tokens from msg.sender to this contract on this blockchain, * and request tokens on the remote blockchain be given to the requested @@ -141,4 +147,6 @@ interface SfcErc20BridgeInterface { */ function getBcIdTokenMaping(uint256 _bcId, address _tokenContract) external view returns(address); + + function getRemoteErc20BridgeContract(uint256 _bcId) external view returns(address); } \ No newline at end of file diff --git a/application/sfc-examples/tokenbridge/src/main/solidity/SfcErc20MassConservationBridge.sol b/application/sfc-examples/tokenbridge/src/main/solidity/SfcErc20MassConservationBridge.sol index d6d28304..bb616efd 100644 --- a/application/sfc-examples/tokenbridge/src/main/solidity/SfcErc20MassConservationBridge.sol +++ b/application/sfc-examples/tokenbridge/src/main/solidity/SfcErc20MassConservationBridge.sol @@ -19,8 +19,12 @@ import "./SfcErc20BridgeInterface.sol"; import "./AbstractSfcErc20Bridge.sol"; /** - * ERC 20 bridge using the Simple Function Call protocol. - * + * ERC 20 bridge using the Simple Function Call protocol. This bridge is the owner + * of tokens that are transferred to other blockchains. When tokens are + * transferred to another blockchain, the user approves the contract using some + * of their tokens. The contract is then able to execute a transferFrom() for the + * tokens to be transferred. When tokens are transferred back to this chain, + * the contract transfers tokens to the recipient. */ contract SfcErc20MassConservationBridge is SfcErc20BridgeInterface, AbstractSfcErc20Bridge { @@ -31,15 +35,17 @@ contract SfcErc20MassConservationBridge is SfcErc20BridgeInterface, AbstractSfcE } - /** - * Transfer tokens that are owned by this contract to a recipient. - * - * @param _tokenContract ERC 20 contract of the token being transferred. - * @param _recipient Account to transfer ownership of the tokens to. - * @param _amount The number of tokens to be transferred. - */ - function transferOrMint(address _tokenContract, address _recipient, uint256 _amount) internal override returns (bool) { - return IERC20(_tokenContract).transfer(_recipient, _amount); + function transferOrMint(address _tokenContract, address _recipient, uint256 _amount) internal override { + if (!IERC20(_tokenContract).transfer(_recipient, _amount)) { + revert("transfer failed"); + } } + function transferOrBurn(address _tokenContract, address _spender, uint256 _amount) internal override { + if (!IERC20(_tokenContract).transferFrom(_spender, address(this), _amount)) { + revert("transferFrom failed"); + } + } + + } \ No newline at end of file diff --git a/application/sfc-examples/tokenbridge/src/main/solidity/SfcErc20MintingBurningBridge.sol b/application/sfc-examples/tokenbridge/src/main/solidity/SfcErc20MintingBurningBridge.sol new file mode 100644 index 00000000..52f10751 --- /dev/null +++ b/application/sfc-examples/tokenbridge/src/main/solidity/SfcErc20MintingBurningBridge.sol @@ -0,0 +1,43 @@ +/* + * Copyright 2021 ConsenSys Software Inc + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ +pragma solidity >=0.8.0; + +import "../../../../../../common/openzeppelin/src/main/solidity/token/ERC20/presets/ERC20PresetMinterPauser.sol"; +import "./SfcErc20BridgeInterface.sol"; +import "./AbstractSfcErc20Bridge.sol"; + +/** + * ERC 20 bridge using the Simple Function Call protocol. This bridge mints new tokens + * when they are transferred to this chain and burns tokens when they are transferred + * from this chain. + */ +contract SfcErc20MintingBurningBridge is SfcErc20BridgeInterface, AbstractSfcErc20Bridge { + + /** + * @param _sfcCbcContract Simple Function Call protocol implementation. + */ + constructor (address _sfcCbcContract) AbstractSfcErc20Bridge (_sfcCbcContract){ + } + + + function transferOrMint(address _tokenContract, address _recipient, uint256 _amount) internal override { + ERC20PresetMinterPauser(_tokenContract).mint(_recipient, _amount); + } + + function transferOrBurn(address _tokenContract, address _spender, uint256 _amount) internal override { + ERC20PresetMinterPauser(_tokenContract).burnFrom(_spender, _amount); + } + +} \ No newline at end of file diff --git a/application/sfc-examples/write/src/main/java/net/consensys/gpact/sfc/examples/write/SfcCrosschainWrite.java b/application/sfc-examples/write/src/main/java/net/consensys/gpact/sfc/examples/write/SfcCrosschainWrite.java index fba624d6..3d1b4674 100644 --- a/application/sfc-examples/write/src/main/java/net/consensys/gpact/sfc/examples/write/SfcCrosschainWrite.java +++ b/application/sfc-examples/write/src/main/java/net/consensys/gpact/sfc/examples/write/SfcCrosschainWrite.java @@ -70,12 +70,22 @@ public static void main(String[] args) throws Exception { RemoteCall functionCall = bc1ContractABlockchain.doCrosschainWrite(val); SimpleCrosschainExecutor executor = new SimpleCrosschainExecutor(crossControlManagerGroup); - TransactionReceipt[] receipts = executor.execute(rootBcId, functionCall); - - success = (receipts.length == 2) && receipts[0].isStatusOK() && receipts[1].isStatusOK(); + Tuple results = executor.execute(rootBcId, functionCall); + success = results.getThird(); LOG.info("Success: {}", success); - - bc2ContractBBlockchain.showEvents(receipts[1]); + if (!success) { + LOG.error("Crosschain Execution failed. See log for details"); + String errorMsg = results.getSecond(); + if (errorMsg != null) { + LOG.error("Error information: {}", errorMsg); + } + for (TransactionReceipt txr: results.getFirst()) { + LOG.error("Transaction Receipt: {}", txr.toString()); + } + throw new Exception("Crosschain Execution failed. See log for details"); + } + + bc2ContractBBlockchain.showEvents(results.getFirst()[1]); bc2ContractBBlockchain.checkValueWritten(val); } diff --git a/application/sfc-examples/write/src/main/java/net/consensys/gpact/sfc/examples/write/soliditywrappers/ContractA.java b/application/sfc-examples/write/src/main/java/net/consensys/gpact/sfc/examples/write/soliditywrappers/ContractA.java index c95716c5..b463f67f 100644 --- a/application/sfc-examples/write/src/main/java/net/consensys/gpact/sfc/examples/write/soliditywrappers/ContractA.java +++ b/application/sfc-examples/write/src/main/java/net/consensys/gpact/sfc/examples/write/soliditywrappers/ContractA.java @@ -27,7 +27,7 @@ */ @SuppressWarnings("rawtypes") public class ContractA extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b5060405161027138038061027183398101604081905261002f91610082565b600280546001600160a01b039485166001600160a01b031991821617909155600092909255600180549190931691161790556100be565b80516001600160a01b038116811461007d57600080fd5b919050565b60008060006060848603121561009757600080fd5b6100a084610066565b9250602084015191506100b560408501610066565b90509250925092565b6101a4806100cd6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063209a5a9b14610030575b600080fd5b61004361003e3660046100e9565b610045565b005b60025460005460015460408051602480820187905282518083039091018152604490910182526020810180516001600160e01b03166360fe47b160e01b17905290516392b2c33560e01b81526001600160a01b03948516946392b2c335946100b4949093911691600401610102565b600060405180830381600087803b1580156100ce57600080fd5b505af11580156100e2573d6000803e3d6000fd5b5050505050565b6000602082840312156100fb57600080fd5b5035919050565b8381526000602060018060a01b0385168184015260606040840152835180606085015260005b8181101561014457858101830151858201608001528201610128565b81811115610156576000608083870101525b50601f01601f1916929092016080019594505050505056fea26469706673582212208b4d1277ad31126306d132039ff97dbac8f0422d899536276b02b54f44b17e0c64736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b5060405161027138038061027183398101604081905261002f91610082565b600280546001600160a01b039485166001600160a01b031991821617909155600092909255600180549190931691161790556100be565b80516001600160a01b038116811461007d57600080fd5b919050565b60008060006060848603121561009757600080fd5b6100a084610066565b9250602084015191506100b560408501610066565b90509250925092565b6101a4806100cd6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063209a5a9b14610030575b600080fd5b61004361003e3660046100e9565b610045565b005b60025460005460015460408051602480820187905282518083039091018152604490910182526020810180516001600160e01b03166360fe47b160e01b17905290516392b2c33560e01b81526001600160a01b03948516946392b2c335946100b4949093911691600401610102565b600060405180830381600087803b1580156100ce57600080fd5b505af11580156100e2573d6000803e3d6000fd5b5050505050565b6000602082840312156100fb57600080fd5b5035919050565b8381526000602060018060a01b0385168184015260606040840152835180606085015260005b8181101561014457858101830151858201608001528201610128565b81811115610156576000608083870101525b50601f01601f1916929092016080019594505050505056fea2646970667358221220999aa16ed47916778e136f2ef0d3ed83035374b1a55bdf1419fa880561e116db64736f6c63430008090033"; public static final String FUNC_DOCROSSCHAINWRITE = "doCrosschainWrite"; diff --git a/application/sfc-examples/write/src/main/java/net/consensys/gpact/sfc/examples/write/soliditywrappers/ContractB.java b/application/sfc-examples/write/src/main/java/net/consensys/gpact/sfc/examples/write/soliditywrappers/ContractB.java index fc80cb35..5ea5421a 100644 --- a/application/sfc-examples/write/src/main/java/net/consensys/gpact/sfc/examples/write/soliditywrappers/ContractB.java +++ b/application/sfc-examples/write/src/main/java/net/consensys/gpact/sfc/examples/write/soliditywrappers/ContractB.java @@ -36,7 +36,7 @@ */ @SuppressWarnings("rawtypes") public class ContractB extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b5060e68061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806360fe47b1146037578063e1cb0e52146048575b600080fd5b604660423660046098565b605d565b005b60005460405190815260200160405180910390f35b60008190556040518181527fbc9e8ea3b0777e6b9815f4c534668e08ddcaa8595a383ac46aebb40336ce81d79060200160405180910390a150565b60006020828403121560a957600080fd5b503591905056fea26469706673582212201919e8532a3b46aa155b08bbca3c06351bb96645e06404588fa9334c7803485164736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b5060e68061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806360fe47b1146037578063e1cb0e52146048575b600080fd5b604660423660046098565b605d565b005b60005460405190815260200160405180910390f35b60008190556040518181527fbc9e8ea3b0777e6b9815f4c534668e08ddcaa8595a383ac46aebb40336ce81d79060200160405180910390a150565b60006020828403121560a957600080fd5b503591905056fea2646970667358221220d1c263c8a8d37f93dbbb8baaddf50bbf949a38703292975ccabe71d74d5db24a64736f6c63430008090033"; public static final String FUNC_GETVAL = "getVal"; diff --git a/common/common/src/test/java/net/consensys/gpact/test/soliditywrappers/BlsSignatureTest.java b/common/common/src/test/java/net/consensys/gpact/test/soliditywrappers/BlsSignatureTest.java index e26bd309..fb1ceffa 100644 --- a/common/common/src/test/java/net/consensys/gpact/test/soliditywrappers/BlsSignatureTest.java +++ b/common/common/src/test/java/net/consensys/gpact/test/soliditywrappers/BlsSignatureTest.java @@ -27,7 +27,7 @@ */ @SuppressWarnings("rawtypes") public class BlsSignatureTest extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b50610d50806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063bbb82d891461003b578063f6e548e91461005c575b600080fd5b6000546100489060ff1681565b604051901515815260200160405180910390f35b61006f61006a366004610b93565b610071565b005b60006100b287878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061015492505050565b905060006100f584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061027292505050565b90506101398287878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869250610344915050565b6000805460ff19169115159190911790555050505050505050565b61015c610acb565b60408051600480825260a082019092526000916020820160808036833701905050905060205b815161018f906020610c45565b81116101af5783810151828201526101a8602082610c2d565b9050610182565b50806000815181106101c3576101c3610cee565b60209081029190910101518251528051819060019081106101e6576101e6610cee565b602090810291909101015182516001602002015280518190600290811061020f5761020f610cee565b6020026020010151826020015160006002811061022e5761022e610cee565b602002015280518190600390811061024857610248610cee565b6020026020010151826020015160016002811061026757610267610cee565b602002015250919050565b6040805180820182526000808252602082018190528251600280825260608201909452919290919081602001602082028036833701905050905060205b81516102bc906020610c45565b81116102dc5783810151828201526102d5602082610c2d565b90506102af565b50604051806040016040528060008152602001600081525091508060008151811061030957610309610cee565b60200260200101518260000181815250508060018151811061032d5761032d610cee565b602002602001015182602001818152505050919050565b60408051600280825260608201909252600091829190816020015b604080518082019091526000808252602082015281526020019060019003908161035f5750506040805160028082526060820190925291925060009190602082015b6103a9610acb565b8152602001906001900390816103a15790505090506103c784610465565b826000815181106103da576103da610cee565b60200260200101819052506103ee856104fb565b8260018151811061040157610401610cee565b60200260200101819052506104146105f2565b8160008151811061042757610427610cee565b6020026020010181905250858160018151811061044657610446610cee565b602002602001018190525061045b82826106b2565b9695505050505050565b60408051808201909152600080825260208201527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd476104a383610a08565b156104c35750506040805180820190915260008082526020820152919050565b6040518060400160405280846000015181526020018285602001516104e89190610cb6565b6104f29084610c64565b90529392505050565b60408051808201825260008082526020808301829052845185820120845180860190955282855290840182905291925b600061053a60ff841685610c2d565b905061057161056b604080518082018252600080825260209182015281518083019092526001825260029082015290565b82610a22565b915061057c82610a08565b61058657506105ea565b8261059081610c96565b935050600a60ff8416106105e45760405162461bcd60e51b815260206004820152601660248201527511985a5b1959081d1bc81b585c081d1bc81c1bda5b9d60521b60448201526064015b60405180910390fd5b5061052b565b949350505050565b6105fa610acb565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b82527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60208381019190915281019190915290565b600081518351146106fd5760405162461bcd60e51b81526020600482015260156024820152742837b4b73a1031b7bab73a1036b4b9b6b0ba31b41760591b60448201526064016105db565b8251600061070c826006610c45565b905060008167ffffffffffffffff81111561072957610729610d04565b604051908082528060200260200182016040528015610752578160200160208202803683370190505b50905060005b8381101561098d5786818151811061077257610772610cee565b6020026020010151600001518282600661078c9190610c45565b610797906000610c2d565b815181106107a7576107a7610cee565b6020026020010181815250508681815181106107c5576107c5610cee565b602002602001015160200151828260066107df9190610c45565b6107ea906001610c2d565b815181106107fa576107fa610cee565b60200260200101818152505085818151811061081857610818610cee565b6020908102919091010151515182610831836006610c45565b61083c906002610c2d565b8151811061084c5761084c610cee565b60200260200101818152505085818151811061086a5761086a610cee565b60209081029190910181015151015182610885836006610c45565b610890906003610c2d565b815181106108a0576108a0610cee565b6020026020010181815250508581815181106108be576108be610cee565b6020026020010151602001516000600281106108dc576108dc610cee565b6020020151826108ed836006610c45565b6108f8906004610c2d565b8151811061090857610908610cee565b60200260200101818152505085818151811061092657610926610cee565b60200260200101516020015160016002811061094457610944610cee565b602002015182610955836006610c45565b610960906005610c2d565b8151811061097057610970610cee565b60209081029190910101528061098581610c7b565b915050610758565b50610996610af0565b6000602082602086026020860160086107d05a03fa9050806109fa5760405162461bcd60e51b815260206004820152601960248201527f50616972696e67206f7065726174696f6e206661696c65642e0000000000000060448201526064016105db565b505115159695505050505050565b8051600090158015610a1c57506020820151155b92915050565b6040805180820190915260008082526020820152610a3e610b0e565b83518152602080850151818301526040808301859052805180820182526000808252928101839052908160608560076107d05a03fa915081610ac25760405162461bcd60e51b815260206004820152601c60248201527f506f696e74206d756c7469706c69636174696f6e206661696c65642e0000000060448201526064016105db565b95945050505050565b6040518060400160405280610ade610b2c565b8152602001610aeb610b2c565b905290565b60405180602001604052806001906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60008083601f840112610b5c57600080fd5b50813567ffffffffffffffff811115610b7457600080fd5b602083019150836020828501011115610b8c57600080fd5b9250929050565b60008060008060008060608789031215610bac57600080fd5b863567ffffffffffffffff80821115610bc457600080fd5b610bd08a838b01610b4a565b90985096506020890135915080821115610be957600080fd5b610bf58a838b01610b4a565b90965094506040890135915080821115610c0e57600080fd5b50610c1b89828a01610b4a565b979a9699509497509295939492505050565b60008219821115610c4057610c40610cd8565b500190565b6000816000190483118215151615610c5f57610c5f610cd8565b500290565b600082821015610c7657610c76610cd8565b500390565b6000600019821415610c8f57610c8f610cd8565b5060010190565b600060ff821660ff811415610cad57610cad610cd8565b60010192915050565b600082610cd357634e487b7160e01b600052601260045260246000fd5b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212205e9192a1b998b80f9d752fa1480bb5d8d1b7dca01e772970862989d3bb56cf2764736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b50610d50806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063bbb82d891461003b578063f6e548e91461005c575b600080fd5b6000546100489060ff1681565b604051901515815260200160405180910390f35b61006f61006a366004610b93565b610071565b005b60006100b287878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061015492505050565b905060006100f584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061027292505050565b90506101398287878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869250610344915050565b6000805460ff19169115159190911790555050505050505050565b61015c610acb565b60408051600480825260a082019092526000916020820160808036833701905050905060205b815161018f906020610c59565b81116101af5783810151828201526101a8602082610c78565b9050610182565b50806000815181106101c3576101c3610c90565b60209081029190910101518251528051819060019081106101e6576101e6610c90565b602090810291909101015182516001602002015280518190600290811061020f5761020f610c90565b6020026020010151826020015160006002811061022e5761022e610c90565b602002015280518190600390811061024857610248610c90565b6020026020010151826020015160016002811061026757610267610c90565b602002015250919050565b6040805180820182526000808252602082018190528251600280825260608201909452919290919081602001602082028036833701905050905060205b81516102bc906020610c59565b81116102dc5783810151828201526102d5602082610c78565b90506102af565b50604051806040016040528060008152602001600081525091508060008151811061030957610309610c90565b60200260200101518260000181815250508060018151811061032d5761032d610c90565b602002602001015182602001818152505050919050565b60408051600280825260608201909252600091829190816020015b604080518082019091526000808252602082015281526020019060019003908161035f5750506040805160028082526060820190925291925060009190602082015b6103a9610acb565b8152602001906001900390816103a15790505090506103c784610465565b826000815181106103da576103da610c90565b60200260200101819052506103ee856104fb565b8260018151811061040157610401610c90565b60200260200101819052506104146105f2565b8160008151811061042757610427610c90565b6020026020010181905250858160018151811061044657610446610c90565b602002602001018190525061045b82826106b2565b9695505050505050565b60408051808201909152600080825260208201527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd476104a383610a08565b156104c35750506040805180820190915260008082526020820152919050565b6040518060400160405280846000015181526020018285602001516104e89190610ca6565b6104f29084610cc8565b90529392505050565b60408051808201825260008082526020808301829052845185820120845180860190955282855290840182905291925b600061053a60ff841685610c78565b905061057161056b604080518082018252600080825260209182015281518083019092526001825260029082015290565b82610a22565b915061057c82610a08565b61058657506105ea565b8261059081610cdf565b935050600a60ff8416106105e45760405162461bcd60e51b815260206004820152601660248201527511985a5b1959081d1bc81b585c081d1bc81c1bda5b9d60521b60448201526064015b60405180910390fd5b5061052b565b949350505050565b6105fa610acb565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b82527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60208381019190915281019190915290565b600081518351146106fd5760405162461bcd60e51b81526020600482015260156024820152742837b4b73a1031b7bab73a1036b4b9b6b0ba31b41760591b60448201526064016105db565b8251600061070c826006610c59565b905060008167ffffffffffffffff81111561072957610729610c2d565b604051908082528060200260200182016040528015610752578160200160208202803683370190505b50905060005b8381101561098d5786818151811061077257610772610c90565b6020026020010151600001518282600661078c9190610c59565b610797906000610c78565b815181106107a7576107a7610c90565b6020026020010181815250508681815181106107c5576107c5610c90565b602002602001015160200151828260066107df9190610c59565b6107ea906001610c78565b815181106107fa576107fa610c90565b60200260200101818152505085818151811061081857610818610c90565b6020908102919091010151515182610831836006610c59565b61083c906002610c78565b8151811061084c5761084c610c90565b60200260200101818152505085818151811061086a5761086a610c90565b60209081029190910181015151015182610885836006610c59565b610890906003610c78565b815181106108a0576108a0610c90565b6020026020010181815250508581815181106108be576108be610c90565b6020026020010151602001516000600281106108dc576108dc610c90565b6020020151826108ed836006610c59565b6108f8906004610c78565b8151811061090857610908610c90565b60200260200101818152505085818151811061092657610926610c90565b60200260200101516020015160016002811061094457610944610c90565b602002015182610955836006610c59565b610960906005610c78565b8151811061097057610970610c90565b60209081029190910101528061098581610cff565b915050610758565b50610996610af0565b6000602082602086026020860160086107d05a03fa9050806109fa5760405162461bcd60e51b815260206004820152601960248201527f50616972696e67206f7065726174696f6e206661696c65642e0000000000000060448201526064016105db565b505115159695505050505050565b8051600090158015610a1c57506020820151155b92915050565b6040805180820190915260008082526020820152610a3e610b0e565b83518152602080850151818301526040808301859052805180820182526000808252928101839052908160608560076107d05a03fa915081610ac25760405162461bcd60e51b815260206004820152601c60248201527f506f696e74206d756c7469706c69636174696f6e206661696c65642e0000000060448201526064016105db565b95945050505050565b6040518060400160405280610ade610b2c565b8152602001610aeb610b2c565b905290565b60405180602001604052806001906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60008083601f840112610b5c57600080fd5b50813567ffffffffffffffff811115610b7457600080fd5b602083019150836020828501011115610b8c57600080fd5b9250929050565b60008060008060008060608789031215610bac57600080fd5b863567ffffffffffffffff80821115610bc457600080fd5b610bd08a838b01610b4a565b90985096506020890135915080821115610be957600080fd5b610bf58a838b01610b4a565b90965094506040890135915080821115610c0e57600080fd5b50610c1b89828a01610b4a565b979a9699509497509295939492505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610c7357610c73610c43565b500290565b60008219821115610c8b57610c8b610c43565b500190565b634e487b7160e01b600052603260045260246000fd5b600082610cc357634e487b7160e01b600052601260045260246000fd5b500690565b600082821015610cda57610cda610c43565b500390565b600060ff821660ff811415610cf657610cf6610c43565b60010192915050565b6000600019821415610d1357610d13610c43565b506001019056fea26469706673582212204b76186c7d93a190cb10a97c62e1a0d099ebc49b5cddccbbff951c23b061d68364736f6c63430008090033"; public static final String FUNC_VERIFIED = "verified"; diff --git a/common/common/src/test/java/net/consensys/gpact/test/soliditywrappers/EcdsaSignatureTest.java b/common/common/src/test/java/net/consensys/gpact/test/soliditywrappers/EcdsaSignatureTest.java index 166dcbc9..d7641612 100644 --- a/common/common/src/test/java/net/consensys/gpact/test/soliditywrappers/EcdsaSignatureTest.java +++ b/common/common/src/test/java/net/consensys/gpact/test/soliditywrappers/EcdsaSignatureTest.java @@ -25,7 +25,7 @@ */ @SuppressWarnings("rawtypes") public class EcdsaSignatureTest extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b50610395806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063c976588c1461003b578063f3a2281d14610062575b600080fd5b61004e6100493660046102ce565b610075565b604051901515815260200160405180910390f35b61004e61007036600461024e565b610090565b600061008486868686866100ad565b90505b95945050505050565b60006100a087878787878761012c565b90505b9695505050505050565b6000604182146100bf57506000610087565b600083838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506020850151604086015160608701519697509095909450901a915061011e90508a8a8a86868661012c565b9a9950505050505050505050565b600080868660405161013f92919061034f565b604051809103902090508260ff16601b1415801561016157508260ff16601c14155b156101705760009150506100a3565b60408051600081526020810180835283905260ff851691810191909152606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156101c3573d6000803e3d6000fd5b505050602060405103516001600160a01b0316886001600160a01b0316149150506100a3565b80356001600160a01b038116811461020057600080fd5b919050565b60008083601f84011261021757600080fd5b50813567ffffffffffffffff81111561022f57600080fd5b60208301915083602082850101111561024757600080fd5b9250929050565b60008060008060008060a0878903121561026757600080fd5b610270876101e9565b9550602087013567ffffffffffffffff81111561028c57600080fd5b61029889828a01610205565b9096509450506040870135925060608701359150608087013560ff811681146102c057600080fd5b809150509295509295509295565b6000806000806000606086880312156102e657600080fd5b6102ef866101e9565b9450602086013567ffffffffffffffff8082111561030c57600080fd5b61031889838a01610205565b9096509450604088013591508082111561033157600080fd5b5061033e88828901610205565b969995985093965092949392505050565b818382376000910190815291905056fea2646970667358221220ae1cf7717f1f55d9c1f78c9750de81242106c472a2674a2660229747694d6c6064736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b50610395806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063c976588c1461003b578063f3a2281d14610062575b600080fd5b61004e61004936600461024e565b610075565b604051901515815260200160405180910390f35b61004e6100703660046102cf565b610090565b600061008486868686866100ad565b90505b95945050505050565b60006100a087878787878761012c565b90505b9695505050505050565b6000604182146100bf57506000610087565b600083838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506020850151604086015160608701519697509095909450901a915061011e90508a8a8a86868661012c565b9a9950505050505050505050565b600080868660405161013f92919061034f565b604051809103902090508260ff16601b1415801561016157508260ff16601c14155b156101705760009150506100a3565b60408051600081526020810180835283905260ff851691810191909152606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156101c3573d6000803e3d6000fd5b505050602060405103516001600160a01b0316886001600160a01b0316149150506100a3565b80356001600160a01b038116811461020057600080fd5b919050565b60008083601f84011261021757600080fd5b50813567ffffffffffffffff81111561022f57600080fd5b60208301915083602082850101111561024757600080fd5b9250929050565b60008060008060006060868803121561026657600080fd5b61026f866101e9565b9450602086013567ffffffffffffffff8082111561028c57600080fd5b61029889838a01610205565b909650945060408801359150808211156102b157600080fd5b506102be88828901610205565b969995985093965092949392505050565b60008060008060008060a087890312156102e857600080fd5b6102f1876101e9565b9550602087013567ffffffffffffffff81111561030d57600080fd5b61031989828a01610205565b9096509450506040870135925060608701359150608087013560ff8116811461034157600080fd5b809150509295509295509295565b818382376000910190815291905056fea2646970667358221220e55fb33aa47de053727dc86665d5f66759e235904f6aadfe3887e725f496035464736f6c63430008090033"; public static final String FUNC_VERIFY2 = "verify2"; diff --git a/common/openzeppelin/gen.sh b/common/openzeppelin/gen.sh index 8d1555fe..d3994354 100755 --- a/common/openzeppelin/gen.sh +++ b/common/openzeppelin/gen.sh @@ -14,10 +14,12 @@ WEB3J=../web3j-rlp/codegen/build/install/codegen/bin/codegen solc $CONTRACTSDIR/token/ERC20/presets/ERC20PresetFixedSupply.sol --allow-paths . --bin --abi --optimize -o $BUILDDIR --overwrite -# solc $CONTRACTSDIR/proxy/transparent/ProxyAdmin.sol --allow-paths . --bin --abi --optimize -o $BUILDDIR --overwrite +solc $CONTRACTSDIR/token/ERC20/presets/ERC20PresetMinterPauser.sol --allow-paths . --bin --abi --optimize -o $BUILDDIR --overwrite +#solc $CONTRACTSDIR/proxy/transparent/ProxyAdmin.sol --allow-paths . --bin --abi --optimize -o $BUILDDIR --overwrite # solc $CONTRACTSDIR/proxy/transparent/TransparentUpgradeableProxy.sol --allow-paths . --bin --abi --optimize -o $BUILDDIR --overwrite $WEB3J solidity generate -a=$BUILDDIR/ERC20PresetFixedSupply.abi -b=$BUILDDIR/ERC20PresetFixedSupply.bin -o=$OUTPUTDIR -p=$PACKAGE +$WEB3J solidity generate -a=$BUILDDIR/ERC20PresetMinterPauser.abi -b=$BUILDDIR/ERC20PresetMinterPauser.bin -o=$OUTPUTDIR -p=$PACKAGE # $WEB3J solidity generate -a=$BUILDDIR/ProxyAdmin.abi -b=$BUILDDIR/ProxyAdmin.bin -o=$OUTPUTDIR -p=$PACKAGE # $WEB3J solidity generate -a=$BUILDDIR/TransparentUpgradeableProxy.abi -b=$BUILDDIR/TransparentUpgradeableProxy.bin -o=$OUTPUTDIR -p=$PACKAGE diff --git a/common/openzeppelin/src/main/java/net/consensys/gpact/openzeppelin/soliditywrappers/ERC20PresetFixedSupply.java b/common/openzeppelin/src/main/java/net/consensys/gpact/openzeppelin/soliditywrappers/ERC20PresetFixedSupply.java index 552a5252..43f8f977 100644 --- a/common/openzeppelin/src/main/java/net/consensys/gpact/openzeppelin/soliditywrappers/ERC20PresetFixedSupply.java +++ b/common/openzeppelin/src/main/java/net/consensys/gpact/openzeppelin/soliditywrappers/ERC20PresetFixedSupply.java @@ -40,7 +40,7 @@ */ @SuppressWarnings("rawtypes") public class ERC20PresetFixedSupply extends Contract { - public static final String BINARY = "60806040523480156200001157600080fd5b5060405162000f2238038062000f228339810160408190526200003491620002c7565b8351849084906200004d9060039060208501906200016a565b508051620000639060049060208401906200016a565b5050506200007881836200008260201b60201c565b50505050620003d6565b6001600160a01b038216620000dd5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620000f191906200035c565b90915550506001600160a01b03821660009081526020819052604081208054839290620001209084906200035c565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001789062000383565b90600052602060002090601f0160209004810192826200019c5760008555620001e7565b82601f10620001b757805160ff1916838001178555620001e7565b82800160010185558215620001e7579182015b82811115620001e7578251825591602001919060010190620001ca565b50620001f5929150620001f9565b5090565b5b80821115620001f55760008155600101620001fa565b600082601f8301126200022257600080fd5b81516001600160401b03808211156200023f576200023f620003c0565b604051601f8301601f19908116603f011681019082821181831017156200026a576200026a620003c0565b816040528381526020925086838588010111156200028757600080fd5b600091505b83821015620002ab57858201830151818301840152908201906200028c565b83821115620002bd5760008385830101525b9695505050505050565b60008060008060808587031215620002de57600080fd5b84516001600160401b0380821115620002f657600080fd5b620003048883890162000210565b955060208701519150808211156200031b57600080fd5b506200032a8782880162000210565b60408701516060880151919550935090506001600160a01b03811681146200035157600080fd5b939692955090935050565b600082198211156200037e57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200039857607f821691505b60208210811415620003ba57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b610b3c80620003e66000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad578063a457c2d7146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015c57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc610214565b6040516100e99190610a31565b60405180910390f35b6101056101003660046109ee565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046109b2565b6102bc565b604051601281526020016100e9565b6101056101573660046109ee565b610372565b61016f61016a366004610a18565b6103a9565b005b61011961017f36600461095d565b6001600160a01b031660009081526020819052604090205490565b61016f6101a83660046109ee565b6103b6565b6100dc61043e565b6101056101c33660046109ee565b61044d565b6101056101d63660046109ee565b6104e8565b6101196101e936600461097f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60606003805461022390610ab5565b80601f016020809104026020016040519081016040528092919081815260200182805461024f90610ab5565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b60006102b33384846104f5565b50600192915050565b60006102c984848461061a565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156103535760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61036785336103628685610a9e565b6104f5565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102b3918590610362908690610a86565b6103b333826107f2565b50565b60006103c283336101e9565b9050818110156104205760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b606482015260840161034a565b61042f83336103628585610a9e565b61043983836107f2565b505050565b60606004805461022390610ab5565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156104cf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161034a565b6104de33856103628685610a9e565b5060019392505050565b60006102b333848461061a565b6001600160a01b0383166105575760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161034a565b6001600160a01b0382166105b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161034a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661067e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161034a565b6001600160a01b0382166106e05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161034a565b6001600160a01b038316600090815260208190526040902054818110156107585760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161034a565b6107628282610a9e565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290610798908490610a86565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107e491815260200190565b60405180910390a350505050565b6001600160a01b0382166108525760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161034a565b6001600160a01b038216600090815260208190526040902054818110156108c65760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161034a565b6108d08282610a9e565b6001600160a01b038416600090815260208190526040812091909155600280548492906108fe908490610a9e565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161060d565b80356001600160a01b038116811461095857600080fd5b919050565b60006020828403121561096f57600080fd5b61097882610941565b9392505050565b6000806040838503121561099257600080fd5b61099b83610941565b91506109a960208401610941565b90509250929050565b6000806000606084860312156109c757600080fd5b6109d084610941565b92506109de60208501610941565b9150604084013590509250925092565b60008060408385031215610a0157600080fd5b610a0a83610941565b946020939093013593505050565b600060208284031215610a2a57600080fd5b5035919050565b600060208083528351808285015260005b81811015610a5e57858101830151858201604001528201610a42565b81811115610a70576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115610a9957610a99610af0565b500190565b600082821015610ab057610ab0610af0565b500390565b600181811c90821680610ac957607f821691505b60208210811415610aea57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220302a7528bcd8e6183dcd91121fde835101ff7cd25df164a195cfb36711d5a69864736f6c63430008050033"; + public static final String BINARY = "60806040523480156200001157600080fd5b5060405162000f2238038062000f228339810160408190526200003491620002dd565b8351849084906200004d9060039060208501906200016a565b508051620000639060049060208401906200016a565b5050506200007881836200008260201b60201c565b50505050620003d6565b6001600160a01b038216620000dd5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620000f1919062000372565b90915550506001600160a01b038216600090815260208190526040812080548392906200012090849062000372565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001789062000399565b90600052602060002090601f0160209004810192826200019c5760008555620001e7565b82601f10620001b757805160ff1916838001178555620001e7565b82800160010185558215620001e7579182015b82811115620001e7578251825591602001919060010190620001ca565b50620001f5929150620001f9565b5090565b5b80821115620001f55760008155600101620001fa565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200023857600080fd5b81516001600160401b038082111562000255576200025562000210565b604051601f8301601f19908116603f0116810190828211818310171562000280576200028062000210565b816040528381526020925086838588010111156200029d57600080fd5b600091505b83821015620002c15785820183015181830184015290820190620002a2565b83821115620002d35760008385830101525b9695505050505050565b60008060008060808587031215620002f457600080fd5b84516001600160401b03808211156200030c57600080fd5b6200031a8883890162000226565b955060208701519150808211156200033157600080fd5b50620003408782880162000226565b60408701516060880151919550935090506001600160a01b03811681146200036757600080fd5b939692955090935050565b600082198211156200039457634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680620003ae57607f821691505b60208210811415620003d057634e487b7160e01b600052602260045260246000fd5b50919050565b610b3c80620003e66000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad578063a457c2d7146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015c57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc610214565b6040516100e99190610941565b60405180910390f35b6101056101003660046109b2565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046109dc565b6102bc565b604051601281526020016100e9565b6101056101573660046109b2565b610372565b61016f61016a366004610a18565b6103a9565b005b61011961017f366004610a31565b6001600160a01b031660009081526020819052604090205490565b61016f6101a83660046109b2565b6103b6565b6100dc61043e565b6101056101c33660046109b2565b61044d565b6101056101d63660046109b2565b6104e8565b6101196101e9366004610a53565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60606003805461022390610a86565b80601f016020809104026020016040519081016040528092919081815260200182805461024f90610a86565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b60006102b33384846104f5565b50600192915050565b60006102c984848461061a565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156103535760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61036785336103628685610ad7565b6104f5565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102b3918590610362908690610aee565b6103b333826107f2565b50565b60006103c283336101e9565b9050818110156104205760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b606482015260840161034a565b61042f83336103628585610ad7565b61043983836107f2565b505050565b60606004805461022390610a86565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156104cf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161034a565b6104de33856103628685610ad7565b5060019392505050565b60006102b333848461061a565b6001600160a01b0383166105575760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161034a565b6001600160a01b0382166105b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161034a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661067e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161034a565b6001600160a01b0382166106e05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161034a565b6001600160a01b038316600090815260208190526040902054818110156107585760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161034a565b6107628282610ad7565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290610798908490610aee565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107e491815260200190565b60405180910390a350505050565b6001600160a01b0382166108525760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161034a565b6001600160a01b038216600090815260208190526040902054818110156108c65760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161034a565b6108d08282610ad7565b6001600160a01b038416600090815260208190526040812091909155600280548492906108fe908490610ad7565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161060d565b600060208083528351808285015260005b8181101561096e57858101830151858201604001528201610952565b81811115610980576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146109ad57600080fd5b919050565b600080604083850312156109c557600080fd5b6109ce83610996565b946020939093013593505050565b6000806000606084860312156109f157600080fd5b6109fa84610996565b9250610a0860208501610996565b9150604084013590509250925092565b600060208284031215610a2a57600080fd5b5035919050565b600060208284031215610a4357600080fd5b610a4c82610996565b9392505050565b60008060408385031215610a6657600080fd5b610a6f83610996565b9150610a7d60208401610996565b90509250929050565b600181811c90821680610a9a57607f821691505b60208210811415610abb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082821015610ae957610ae9610ac1565b500390565b60008219821115610b0157610b01610ac1565b50019056fea26469706673582212202e241dbb092171169068fcb551f0acb126fdaf9452653b7c960b8774a650b2ea64736f6c63430008090033"; public static final String FUNC_ALLOWANCE = "allowance"; diff --git a/common/openzeppelin/src/main/java/net/consensys/gpact/openzeppelin/soliditywrappers/ERC20PresetMinterPauser.java b/common/openzeppelin/src/main/java/net/consensys/gpact/openzeppelin/soliditywrappers/ERC20PresetMinterPauser.java new file mode 100644 index 00000000..37bed4a9 --- /dev/null +++ b/common/openzeppelin/src/main/java/net/consensys/gpact/openzeppelin/soliditywrappers/ERC20PresetMinterPauser.java @@ -0,0 +1,700 @@ +package net.consensys.gpact.openzeppelin.soliditywrappers; + +import io.reactivex.Flowable; +import io.reactivex.functions.Function; +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import org.web3j.abi.EventEncoder; +import org.web3j.abi.FunctionEncoder; +import org.web3j.abi.TypeReference; +import org.web3j.abi.datatypes.Address; +import org.web3j.abi.datatypes.Bool; +import org.web3j.abi.datatypes.Event; +import org.web3j.abi.datatypes.Type; +import org.web3j.abi.datatypes.Utf8String; +import org.web3j.abi.datatypes.generated.Bytes32; +import org.web3j.abi.datatypes.generated.Uint256; +import org.web3j.abi.datatypes.generated.Uint8; +import org.web3j.crypto.Credentials; +import org.web3j.protocol.Web3j; +import org.web3j.protocol.core.DefaultBlockParameter; +import org.web3j.protocol.core.RemoteCall; +import org.web3j.protocol.core.RemoteFunctionCall; +import org.web3j.protocol.core.methods.request.EthFilter; +import org.web3j.protocol.core.methods.response.BaseEventResponse; +import org.web3j.protocol.core.methods.response.Log; +import org.web3j.protocol.core.methods.response.TransactionReceipt; +import org.web3j.tx.Contract; +import org.web3j.tx.TransactionManager; +import org.web3j.tx.gas.ContractGasProvider; + +/** + *

Auto generated code. + *

Do not modify! + *

Please use the web3j command line tools, + * or the org.web3j.codegen.SolidityFunctionWrapperGenerator in the + * codegen module to update. + * + *

Generated with web3j version 4.8.5-SNAPSHOT. + */ +@SuppressWarnings("rawtypes") +public class ERC20PresetMinterPauser extends Contract { + public static final String BINARY = "60806040523480156200001157600080fd5b5060405162001c5c38038062001c5c8339810160408190526200003491620003b5565b8151829082906200004d90600590602085019062000242565b5080516200006390600690602084019062000242565b50506007805460ff19169055506200007d600033620000dd565b620000a97f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620000dd565b620000d57f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000dd565b50506200045c565b620000f482826200012060201b620009ef1760201c565b60008281526001602090815260409091206200011b918390620009f962000130821b17901c565b505050565b6200012c828262000150565b5050565b600062000147836001600160a01b038416620001f0565b90505b92915050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200012c576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001ac3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600081815260018301602052604081205462000239575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200014a565b5060006200014a565b82805462000250906200041f565b90600052602060002090601f016020900481019282620002745760008555620002bf565b82601f106200028f57805160ff1916838001178555620002bf565b82800160010185558215620002bf579182015b82811115620002bf578251825591602001919060010190620002a2565b50620002cd929150620002d1565b5090565b5b80821115620002cd5760008155600101620002d2565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200031057600080fd5b81516001600160401b03808211156200032d576200032d620002e8565b604051601f8301601f19908116603f01168101908282118183101715620003585762000358620002e8565b816040528381526020925086838588010111156200037557600080fd5b600091505b838210156200039957858201830151818301840152908201906200037a565b83821115620003ab5760008385830101525b9695505050505050565b60008060408385031215620003c957600080fd5b82516001600160401b0380821115620003e157600080fd5b620003ef86838701620002fe565b935060208501519150808211156200040657600080fd5b506200041585828601620002fe565b9150509250929050565b600181811c908216806200043457607f821691505b602082108114156200045657634e487b7160e01b600052602260045260246000fd5b50919050565b6117f0806200046c6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806370a08231116100f9578063a457c2d711610097578063d539139311610071578063d5391393146103af578063d547741f146103d6578063dd62ed3e146103e9578063e63ab1e91461042257600080fd5b8063a457c2d714610376578063a9059cbb14610389578063ca15c8731461039c57600080fd5b80639010d07c116100d35780639010d07c1461032857806391d148541461035357806395d89b4114610366578063a217fddf1461036e57600080fd5b806370a08231146102e457806379cc67901461030d5780638456cb591461032057600080fd5b8063313ce567116101665780633f4ba83a116101405780633f4ba83a146102ab57806340c10f19146102b357806342966c68146102c65780635c975abb146102d957600080fd5b8063313ce5671461027657806336568abe14610285578063395093511461029857600080fd5b806318160ddd116101a257806318160ddd1461021957806323b872dd1461022b578063248a9ca31461023e5780632f2ff15d1461026157600080fd5b806301ffc9a7146101c957806306fdde03146101f1578063095ea7b314610206575b600080fd5b6101dc6101d7366004611561565b610449565b60405190151581526020015b60405180910390f35b6101f9610474565b6040516101e8919061158b565b6101dc6102143660046115fc565b610506565b6004545b6040519081526020016101e8565b6101dc610239366004611626565b61051c565b61021d61024c366004611662565b60009081526020819052604090206001015490565b61027461026f36600461167b565b6105d2565b005b604051601281526020016101e8565b61027461029336600461167b565b6105f9565b6101dc6102a63660046115fc565b61061b565b610274610652565b6102746102c13660046115fc565b6106f8565b6102746102d4366004611662565b61079b565b60075460ff166101dc565b61021d6102f23660046116a7565b6001600160a01b031660009081526002602052604090205490565b61027461031b3660046115fc565b6107a8565b61027461082b565b61033b6103363660046116c2565b6108cf565b6040516001600160a01b0390911681526020016101e8565b6101dc61036136600461167b565b6108ee565b6101f9610917565b61021d600081565b6101dc6103843660046115fc565b610926565b6101dc6103973660046115fc565b6109c1565b61021d6103aa366004611662565b6109ce565b61021d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102746103e436600461167b565b6109e5565b61021d6103f73660046116e4565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61021d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60006001600160e01b03198216635a05180f60e01b148061046e575061046e82610a0e565b92915050565b6060600580546104839061170e565b80601f01602080910402602001604051908101604052809291908181526020018280546104af9061170e565b80156104fc5780601f106104d1576101008083540402835291602001916104fc565b820191906000526020600020905b8154815290600101906020018083116104df57829003601f168201915b5050505050905090565b6000610513338484610a43565b50600192915050565b6000610529848484610b68565b6001600160a01b0384166000908152600360209081526040808320338452909152902054828110156105b35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6105c785336105c2868561175f565b610a43565b506001949350505050565b6105dc8282610d4b565b60008281526001602052604090206105f490826109f9565b505050565b6106038282610dcc565b60008281526001602052604090206105f49082610e46565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916105139185906105c2908690611776565b61067c7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336108ee565b6106ee5760405162461bcd60e51b815260206004820152603960248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20756e70617573650000000000000060648201526084016105aa565b6106f6610e5b565b565b6107227f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336108ee565b61078d5760405162461bcd60e51b815260206004820152603660248201527f45524332305072657365744d696e7465725061757365723a206d7573742068616044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105aa565b6107978282610eee565b5050565b6107a53382610fd9565b50565b60006107b483336103f7565b9050818110156108125760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b60648201526084016105aa565b61082183336105c2858561175f565b6105f48383610fd9565b6108557f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336108ee565b6108c75760405162461bcd60e51b815260206004820152603760248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20706175736500000000000000000060648201526084016105aa565b6106f6611134565b60008281526001602052604081206108e790836111af565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6060600680546104839061170e565b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156109a85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105aa565b6109b733856105c2868561175f565b5060019392505050565b6000610513338484610b68565b600081815260016020526040812061046e906111bb565b61060382826111c5565b6107978282611245565b60006108e7836001600160a01b0384166112c9565b60006001600160e01b03198216637965db0b60e01b148061046e57506301ffc9a760e01b6001600160e01b031983161461046e565b6001600160a01b038316610aa55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105aa565b6001600160a01b038216610b065760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105aa565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610bcc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105aa565b6001600160a01b038216610c2e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105aa565b610c39838383611318565b6001600160a01b03831660009081526002602052604090205481811015610cb15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105aa565b610cbb828261175f565b6001600160a01b038086166000908152600260205260408082209390935590851681529081208054849290610cf1908490611776565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d3d91815260200190565b60405180910390a350505050565b600082815260208190526040902060010154610d68905b336108ee565b6109ef5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b60648201526084016105aa565b6001600160a01b0381163314610e3c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016105aa565b6107978282611323565b60006108e7836001600160a01b038416611388565b60075460ff16610ea45760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105aa565b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610f445760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105aa565b610f5060008383611318565b8060046000828254610f629190611776565b90915550506001600160a01b03821660009081526002602052604081208054839290610f8f908490611776565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0382166110395760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105aa565b61104582600083611318565b6001600160a01b038216600090815260026020526040902054818110156110b95760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105aa565b6110c3828261175f565b6001600160a01b038416600090815260026020526040812091909155600480548492906110f190849061175f565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610b5b565b60075460ff161561117a5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105aa565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610ed13390565b60006108e78383611475565b600061046e825490565b6000828152602081905260409020600101546111e090610d62565b610e3c5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b60648201526084016105aa565b61124f82826108ee565b610797576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556112853390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008181526001830160205260408120546113105750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561046e565b50600061046e565b6105f48383836114fb565b61132d82826108ee565b15610797576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000818152600183016020526040812054801561146b5760006113ac60018361175f565b85549091506000906113c09060019061175f565b905060008660000182815481106113d9576113d961178e565b90600052602060002001549050808760000184815481106113fc576113fc61178e565b60009182526020808320909101929092558281526001890190915260409020849055865487908061142f5761142f6117a4565b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061046e565b600091505061046e565b815460009082106114d35760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016105aa565b8260000182815481106114e8576114e861178e565b9060005260206000200154905092915050565b60075460ff16156105f45760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105aa565b60006020828403121561157357600080fd5b81356001600160e01b0319811681146108e757600080fd5b600060208083528351808285015260005b818110156115b85785810183015185820160400152820161159c565b818111156115ca576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146115f757600080fd5b919050565b6000806040838503121561160f57600080fd5b611618836115e0565b946020939093013593505050565b60008060006060848603121561163b57600080fd5b611644846115e0565b9250611652602085016115e0565b9150604084013590509250925092565b60006020828403121561167457600080fd5b5035919050565b6000806040838503121561168e57600080fd5b8235915061169e602084016115e0565b90509250929050565b6000602082840312156116b957600080fd5b6108e7826115e0565b600080604083850312156116d557600080fd5b50508035926020909101359150565b600080604083850312156116f757600080fd5b611700836115e0565b915061169e602084016115e0565b600181811c9082168061172257607f821691505b6020821081141561174357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008282101561177157611771611749565b500390565b6000821982111561178957611789611749565b500190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfea26469706673582212209d9442eaa5836b28c3447bc5808b064d427aa35fe6605aae6d07b276262529f364736f6c63430008090033"; + + public static final String FUNC_DEFAULT_ADMIN_ROLE = "DEFAULT_ADMIN_ROLE"; + + public static final String FUNC_MINTER_ROLE = "MINTER_ROLE"; + + public static final String FUNC_PAUSER_ROLE = "PAUSER_ROLE"; + + public static final String FUNC_ALLOWANCE = "allowance"; + + public static final String FUNC_APPROVE = "approve"; + + public static final String FUNC_BALANCEOF = "balanceOf"; + + public static final String FUNC_BURN = "burn"; + + public static final String FUNC_BURNFROM = "burnFrom"; + + public static final String FUNC_DECIMALS = "decimals"; + + public static final String FUNC_DECREASEALLOWANCE = "decreaseAllowance"; + + public static final String FUNC_GETROLEADMIN = "getRoleAdmin"; + + public static final String FUNC_GETROLEMEMBER = "getRoleMember"; + + public static final String FUNC_GETROLEMEMBERCOUNT = "getRoleMemberCount"; + + public static final String FUNC_GRANTROLE = "grantRole"; + + public static final String FUNC_HASROLE = "hasRole"; + + public static final String FUNC_INCREASEALLOWANCE = "increaseAllowance"; + + public static final String FUNC_MINT = "mint"; + + public static final String FUNC_NAME = "name"; + + public static final String FUNC_PAUSE = "pause"; + + public static final String FUNC_PAUSED = "paused"; + + public static final String FUNC_RENOUNCEROLE = "renounceRole"; + + public static final String FUNC_REVOKEROLE = "revokeRole"; + + public static final String FUNC_SUPPORTSINTERFACE = "supportsInterface"; + + public static final String FUNC_SYMBOL = "symbol"; + + public static final String FUNC_TOTALSUPPLY = "totalSupply"; + + public static final String FUNC_TRANSFER = "transfer"; + + public static final String FUNC_TRANSFERFROM = "transferFrom"; + + public static final String FUNC_UNPAUSE = "unpause"; + + public static final Event APPROVAL_EVENT = new Event("Approval", + Arrays.>asList(new TypeReference

(true) {}, new TypeReference
(true) {}, new TypeReference() {})); + ; + + public static final Event PAUSED_EVENT = new Event("Paused", + Arrays.>asList(new TypeReference
() {})); + ; + + public static final Event ROLEADMINCHANGED_EVENT = new Event("RoleAdminChanged", + Arrays.>asList(new TypeReference(true) {}, new TypeReference(true) {}, new TypeReference(true) {})); + ; + + public static final Event ROLEGRANTED_EVENT = new Event("RoleGranted", + Arrays.>asList(new TypeReference(true) {}, new TypeReference
(true) {}, new TypeReference
(true) {})); + ; + + public static final Event ROLEREVOKED_EVENT = new Event("RoleRevoked", + Arrays.>asList(new TypeReference(true) {}, new TypeReference
(true) {}, new TypeReference
(true) {})); + ; + + public static final Event TRANSFER_EVENT = new Event("Transfer", + Arrays.>asList(new TypeReference
(true) {}, new TypeReference
(true) {}, new TypeReference() {})); + ; + + public static final Event UNPAUSED_EVENT = new Event("Unpaused", + Arrays.>asList(new TypeReference
() {})); + ; + + @Deprecated + protected ERC20PresetMinterPauser(String contractAddress, Web3j web3j, Credentials credentials, BigInteger gasPrice, BigInteger gasLimit) { + super(BINARY, contractAddress, web3j, credentials, gasPrice, gasLimit); + } + + protected ERC20PresetMinterPauser(String contractAddress, Web3j web3j, Credentials credentials, ContractGasProvider contractGasProvider) { + super(BINARY, contractAddress, web3j, credentials, contractGasProvider); + } + + @Deprecated + protected ERC20PresetMinterPauser(String contractAddress, Web3j web3j, TransactionManager transactionManager, BigInteger gasPrice, BigInteger gasLimit) { + super(BINARY, contractAddress, web3j, transactionManager, gasPrice, gasLimit); + } + + protected ERC20PresetMinterPauser(String contractAddress, Web3j web3j, TransactionManager transactionManager, ContractGasProvider contractGasProvider) { + super(BINARY, contractAddress, web3j, transactionManager, contractGasProvider); + } + + public List getApprovalEvents(TransactionReceipt transactionReceipt) { + List valueList = extractEventParametersWithLog(APPROVAL_EVENT, transactionReceipt); + ArrayList responses = new ArrayList(valueList.size()); + for (Contract.EventValuesWithLog eventValues : valueList) { + ApprovalEventResponse typedResponse = new ApprovalEventResponse(); + typedResponse.log = eventValues.getLog(); + typedResponse.owner = (String) eventValues.getIndexedValues().get(0).getValue(); + typedResponse.spender = (String) eventValues.getIndexedValues().get(1).getValue(); + typedResponse.value = (BigInteger) eventValues.getNonIndexedValues().get(0).getValue(); + responses.add(typedResponse); + } + return responses; + } + + public Flowable approvalEventFlowable(EthFilter filter) { + return web3j.ethLogFlowable(filter).map(new Function() { + @Override + public ApprovalEventResponse apply(Log log) { + Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(APPROVAL_EVENT, log); + ApprovalEventResponse typedResponse = new ApprovalEventResponse(); + typedResponse.log = log; + typedResponse.owner = (String) eventValues.getIndexedValues().get(0).getValue(); + typedResponse.spender = (String) eventValues.getIndexedValues().get(1).getValue(); + typedResponse.value = (BigInteger) eventValues.getNonIndexedValues().get(0).getValue(); + return typedResponse; + } + }); + } + + public Flowable approvalEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) { + EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress()); + filter.addSingleTopic(EventEncoder.encode(APPROVAL_EVENT)); + return approvalEventFlowable(filter); + } + + public List getPausedEvents(TransactionReceipt transactionReceipt) { + List valueList = extractEventParametersWithLog(PAUSED_EVENT, transactionReceipt); + ArrayList responses = new ArrayList(valueList.size()); + for (Contract.EventValuesWithLog eventValues : valueList) { + PausedEventResponse typedResponse = new PausedEventResponse(); + typedResponse.log = eventValues.getLog(); + typedResponse.account = (String) eventValues.getNonIndexedValues().get(0).getValue(); + responses.add(typedResponse); + } + return responses; + } + + public Flowable pausedEventFlowable(EthFilter filter) { + return web3j.ethLogFlowable(filter).map(new Function() { + @Override + public PausedEventResponse apply(Log log) { + Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(PAUSED_EVENT, log); + PausedEventResponse typedResponse = new PausedEventResponse(); + typedResponse.log = log; + typedResponse.account = (String) eventValues.getNonIndexedValues().get(0).getValue(); + return typedResponse; + } + }); + } + + public Flowable pausedEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) { + EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress()); + filter.addSingleTopic(EventEncoder.encode(PAUSED_EVENT)); + return pausedEventFlowable(filter); + } + + public List getRoleAdminChangedEvents(TransactionReceipt transactionReceipt) { + List valueList = extractEventParametersWithLog(ROLEADMINCHANGED_EVENT, transactionReceipt); + ArrayList responses = new ArrayList(valueList.size()); + for (Contract.EventValuesWithLog eventValues : valueList) { + RoleAdminChangedEventResponse typedResponse = new RoleAdminChangedEventResponse(); + typedResponse.log = eventValues.getLog(); + typedResponse.role = (byte[]) eventValues.getIndexedValues().get(0).getValue(); + typedResponse.previousAdminRole = (byte[]) eventValues.getIndexedValues().get(1).getValue(); + typedResponse.newAdminRole = (byte[]) eventValues.getIndexedValues().get(2).getValue(); + responses.add(typedResponse); + } + return responses; + } + + public Flowable roleAdminChangedEventFlowable(EthFilter filter) { + return web3j.ethLogFlowable(filter).map(new Function() { + @Override + public RoleAdminChangedEventResponse apply(Log log) { + Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(ROLEADMINCHANGED_EVENT, log); + RoleAdminChangedEventResponse typedResponse = new RoleAdminChangedEventResponse(); + typedResponse.log = log; + typedResponse.role = (byte[]) eventValues.getIndexedValues().get(0).getValue(); + typedResponse.previousAdminRole = (byte[]) eventValues.getIndexedValues().get(1).getValue(); + typedResponse.newAdminRole = (byte[]) eventValues.getIndexedValues().get(2).getValue(); + return typedResponse; + } + }); + } + + public Flowable roleAdminChangedEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) { + EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress()); + filter.addSingleTopic(EventEncoder.encode(ROLEADMINCHANGED_EVENT)); + return roleAdminChangedEventFlowable(filter); + } + + public List getRoleGrantedEvents(TransactionReceipt transactionReceipt) { + List valueList = extractEventParametersWithLog(ROLEGRANTED_EVENT, transactionReceipt); + ArrayList responses = new ArrayList(valueList.size()); + for (Contract.EventValuesWithLog eventValues : valueList) { + RoleGrantedEventResponse typedResponse = new RoleGrantedEventResponse(); + typedResponse.log = eventValues.getLog(); + typedResponse.role = (byte[]) eventValues.getIndexedValues().get(0).getValue(); + typedResponse.account = (String) eventValues.getIndexedValues().get(1).getValue(); + typedResponse.sender = (String) eventValues.getIndexedValues().get(2).getValue(); + responses.add(typedResponse); + } + return responses; + } + + public Flowable roleGrantedEventFlowable(EthFilter filter) { + return web3j.ethLogFlowable(filter).map(new Function() { + @Override + public RoleGrantedEventResponse apply(Log log) { + Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(ROLEGRANTED_EVENT, log); + RoleGrantedEventResponse typedResponse = new RoleGrantedEventResponse(); + typedResponse.log = log; + typedResponse.role = (byte[]) eventValues.getIndexedValues().get(0).getValue(); + typedResponse.account = (String) eventValues.getIndexedValues().get(1).getValue(); + typedResponse.sender = (String) eventValues.getIndexedValues().get(2).getValue(); + return typedResponse; + } + }); + } + + public Flowable roleGrantedEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) { + EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress()); + filter.addSingleTopic(EventEncoder.encode(ROLEGRANTED_EVENT)); + return roleGrantedEventFlowable(filter); + } + + public List getRoleRevokedEvents(TransactionReceipt transactionReceipt) { + List valueList = extractEventParametersWithLog(ROLEREVOKED_EVENT, transactionReceipt); + ArrayList responses = new ArrayList(valueList.size()); + for (Contract.EventValuesWithLog eventValues : valueList) { + RoleRevokedEventResponse typedResponse = new RoleRevokedEventResponse(); + typedResponse.log = eventValues.getLog(); + typedResponse.role = (byte[]) eventValues.getIndexedValues().get(0).getValue(); + typedResponse.account = (String) eventValues.getIndexedValues().get(1).getValue(); + typedResponse.sender = (String) eventValues.getIndexedValues().get(2).getValue(); + responses.add(typedResponse); + } + return responses; + } + + public Flowable roleRevokedEventFlowable(EthFilter filter) { + return web3j.ethLogFlowable(filter).map(new Function() { + @Override + public RoleRevokedEventResponse apply(Log log) { + Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(ROLEREVOKED_EVENT, log); + RoleRevokedEventResponse typedResponse = new RoleRevokedEventResponse(); + typedResponse.log = log; + typedResponse.role = (byte[]) eventValues.getIndexedValues().get(0).getValue(); + typedResponse.account = (String) eventValues.getIndexedValues().get(1).getValue(); + typedResponse.sender = (String) eventValues.getIndexedValues().get(2).getValue(); + return typedResponse; + } + }); + } + + public Flowable roleRevokedEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) { + EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress()); + filter.addSingleTopic(EventEncoder.encode(ROLEREVOKED_EVENT)); + return roleRevokedEventFlowable(filter); + } + + public List getTransferEvents(TransactionReceipt transactionReceipt) { + List valueList = extractEventParametersWithLog(TRANSFER_EVENT, transactionReceipt); + ArrayList responses = new ArrayList(valueList.size()); + for (Contract.EventValuesWithLog eventValues : valueList) { + TransferEventResponse typedResponse = new TransferEventResponse(); + typedResponse.log = eventValues.getLog(); + typedResponse.from = (String) eventValues.getIndexedValues().get(0).getValue(); + typedResponse.to = (String) eventValues.getIndexedValues().get(1).getValue(); + typedResponse.value = (BigInteger) eventValues.getNonIndexedValues().get(0).getValue(); + responses.add(typedResponse); + } + return responses; + } + + public Flowable transferEventFlowable(EthFilter filter) { + return web3j.ethLogFlowable(filter).map(new Function() { + @Override + public TransferEventResponse apply(Log log) { + Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(TRANSFER_EVENT, log); + TransferEventResponse typedResponse = new TransferEventResponse(); + typedResponse.log = log; + typedResponse.from = (String) eventValues.getIndexedValues().get(0).getValue(); + typedResponse.to = (String) eventValues.getIndexedValues().get(1).getValue(); + typedResponse.value = (BigInteger) eventValues.getNonIndexedValues().get(0).getValue(); + return typedResponse; + } + }); + } + + public Flowable transferEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) { + EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress()); + filter.addSingleTopic(EventEncoder.encode(TRANSFER_EVENT)); + return transferEventFlowable(filter); + } + + public List getUnpausedEvents(TransactionReceipt transactionReceipt) { + List valueList = extractEventParametersWithLog(UNPAUSED_EVENT, transactionReceipt); + ArrayList responses = new ArrayList(valueList.size()); + for (Contract.EventValuesWithLog eventValues : valueList) { + UnpausedEventResponse typedResponse = new UnpausedEventResponse(); + typedResponse.log = eventValues.getLog(); + typedResponse.account = (String) eventValues.getNonIndexedValues().get(0).getValue(); + responses.add(typedResponse); + } + return responses; + } + + public Flowable unpausedEventFlowable(EthFilter filter) { + return web3j.ethLogFlowable(filter).map(new Function() { + @Override + public UnpausedEventResponse apply(Log log) { + Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(UNPAUSED_EVENT, log); + UnpausedEventResponse typedResponse = new UnpausedEventResponse(); + typedResponse.log = log; + typedResponse.account = (String) eventValues.getNonIndexedValues().get(0).getValue(); + return typedResponse; + } + }); + } + + public Flowable unpausedEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) { + EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress()); + filter.addSingleTopic(EventEncoder.encode(UNPAUSED_EVENT)); + return unpausedEventFlowable(filter); + } + + public RemoteFunctionCall DEFAULT_ADMIN_ROLE() { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_DEFAULT_ADMIN_ROLE, + Arrays.asList(), + Arrays.>asList(new TypeReference() {})); + return executeRemoteCallSingleValueReturn(function, byte[].class); + } + + public RemoteFunctionCall MINTER_ROLE() { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_MINTER_ROLE, + Arrays.asList(), + Arrays.>asList(new TypeReference() {})); + return executeRemoteCallSingleValueReturn(function, byte[].class); + } + + public RemoteFunctionCall PAUSER_ROLE() { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_PAUSER_ROLE, + Arrays.asList(), + Arrays.>asList(new TypeReference() {})); + return executeRemoteCallSingleValueReturn(function, byte[].class); + } + + public RemoteFunctionCall allowance(String owner, String spender) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_ALLOWANCE, + Arrays.asList(new org.web3j.abi.datatypes.Address(160, owner), + new org.web3j.abi.datatypes.Address(160, spender)), + Arrays.>asList(new TypeReference() {})); + return executeRemoteCallSingleValueReturn(function, BigInteger.class); + } + + public RemoteFunctionCall approve(String spender, BigInteger amount) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_APPROVE, + Arrays.asList(new org.web3j.abi.datatypes.Address(160, spender), + new org.web3j.abi.datatypes.generated.Uint256(amount)), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + public RemoteFunctionCall balanceOf(String account) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_BALANCEOF, + Arrays.asList(new org.web3j.abi.datatypes.Address(160, account)), + Arrays.>asList(new TypeReference() {})); + return executeRemoteCallSingleValueReturn(function, BigInteger.class); + } + + public RemoteFunctionCall burn(BigInteger amount) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_BURN, + Arrays.asList(new org.web3j.abi.datatypes.generated.Uint256(amount)), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + public RemoteFunctionCall burnFrom(String account, BigInteger amount) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_BURNFROM, + Arrays.asList(new org.web3j.abi.datatypes.Address(160, account), + new org.web3j.abi.datatypes.generated.Uint256(amount)), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + public RemoteFunctionCall decimals() { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_DECIMALS, + Arrays.asList(), + Arrays.>asList(new TypeReference() {})); + return executeRemoteCallSingleValueReturn(function, BigInteger.class); + } + + public RemoteFunctionCall decreaseAllowance(String spender, BigInteger subtractedValue) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_DECREASEALLOWANCE, + Arrays.asList(new org.web3j.abi.datatypes.Address(160, spender), + new org.web3j.abi.datatypes.generated.Uint256(subtractedValue)), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + public RemoteFunctionCall getRoleAdmin(byte[] role) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_GETROLEADMIN, + Arrays.asList(new org.web3j.abi.datatypes.generated.Bytes32(role)), + Arrays.>asList(new TypeReference() {})); + return executeRemoteCallSingleValueReturn(function, byte[].class); + } + + public RemoteFunctionCall getRoleMember(byte[] role, BigInteger index) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_GETROLEMEMBER, + Arrays.asList(new org.web3j.abi.datatypes.generated.Bytes32(role), + new org.web3j.abi.datatypes.generated.Uint256(index)), + Arrays.>asList(new TypeReference
() {})); + return executeRemoteCallSingleValueReturn(function, String.class); + } + + public RemoteFunctionCall getRoleMemberCount(byte[] role) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_GETROLEMEMBERCOUNT, + Arrays.asList(new org.web3j.abi.datatypes.generated.Bytes32(role)), + Arrays.>asList(new TypeReference() {})); + return executeRemoteCallSingleValueReturn(function, BigInteger.class); + } + + public RemoteFunctionCall grantRole(byte[] role, String account) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_GRANTROLE, + Arrays.asList(new org.web3j.abi.datatypes.generated.Bytes32(role), + new org.web3j.abi.datatypes.Address(160, account)), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + public RemoteFunctionCall hasRole(byte[] role, String account) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_HASROLE, + Arrays.asList(new org.web3j.abi.datatypes.generated.Bytes32(role), + new org.web3j.abi.datatypes.Address(160, account)), + Arrays.>asList(new TypeReference() {})); + return executeRemoteCallSingleValueReturn(function, Boolean.class); + } + + public RemoteFunctionCall increaseAllowance(String spender, BigInteger addedValue) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_INCREASEALLOWANCE, + Arrays.asList(new org.web3j.abi.datatypes.Address(160, spender), + new org.web3j.abi.datatypes.generated.Uint256(addedValue)), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + public RemoteFunctionCall mint(String to, BigInteger amount) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_MINT, + Arrays.asList(new org.web3j.abi.datatypes.Address(160, to), + new org.web3j.abi.datatypes.generated.Uint256(amount)), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + public RemoteFunctionCall name() { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_NAME, + Arrays.asList(), + Arrays.>asList(new TypeReference() {})); + return executeRemoteCallSingleValueReturn(function, String.class); + } + + public RemoteFunctionCall pause() { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_PAUSE, + Arrays.asList(), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + public RemoteFunctionCall paused() { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_PAUSED, + Arrays.asList(), + Arrays.>asList(new TypeReference() {})); + return executeRemoteCallSingleValueReturn(function, Boolean.class); + } + + public RemoteFunctionCall renounceRole(byte[] role, String account) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_RENOUNCEROLE, + Arrays.asList(new org.web3j.abi.datatypes.generated.Bytes32(role), + new org.web3j.abi.datatypes.Address(160, account)), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + public RemoteFunctionCall revokeRole(byte[] role, String account) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_REVOKEROLE, + Arrays.asList(new org.web3j.abi.datatypes.generated.Bytes32(role), + new org.web3j.abi.datatypes.Address(160, account)), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + public RemoteFunctionCall supportsInterface(byte[] interfaceId) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_SUPPORTSINTERFACE, + Arrays.asList(new org.web3j.abi.datatypes.generated.Bytes4(interfaceId)), + Arrays.>asList(new TypeReference() {})); + return executeRemoteCallSingleValueReturn(function, Boolean.class); + } + + public RemoteFunctionCall symbol() { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_SYMBOL, + Arrays.asList(), + Arrays.>asList(new TypeReference() {})); + return executeRemoteCallSingleValueReturn(function, String.class); + } + + public RemoteFunctionCall totalSupply() { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_TOTALSUPPLY, + Arrays.asList(), + Arrays.>asList(new TypeReference() {})); + return executeRemoteCallSingleValueReturn(function, BigInteger.class); + } + + public RemoteFunctionCall transfer(String recipient, BigInteger amount) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_TRANSFER, + Arrays.asList(new org.web3j.abi.datatypes.Address(160, recipient), + new org.web3j.abi.datatypes.generated.Uint256(amount)), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + public RemoteFunctionCall transferFrom(String sender, String recipient, BigInteger amount) { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_TRANSFERFROM, + Arrays.asList(new org.web3j.abi.datatypes.Address(160, sender), + new org.web3j.abi.datatypes.Address(160, recipient), + new org.web3j.abi.datatypes.generated.Uint256(amount)), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + public RemoteFunctionCall unpause() { + final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function( + FUNC_UNPAUSE, + Arrays.asList(), + Collections.>emptyList()); + return executeRemoteCallTransaction(function); + } + + @Deprecated + public static ERC20PresetMinterPauser load(String contractAddress, Web3j web3j, Credentials credentials, BigInteger gasPrice, BigInteger gasLimit) { + return new ERC20PresetMinterPauser(contractAddress, web3j, credentials, gasPrice, gasLimit); + } + + @Deprecated + public static ERC20PresetMinterPauser load(String contractAddress, Web3j web3j, TransactionManager transactionManager, BigInteger gasPrice, BigInteger gasLimit) { + return new ERC20PresetMinterPauser(contractAddress, web3j, transactionManager, gasPrice, gasLimit); + } + + public static ERC20PresetMinterPauser load(String contractAddress, Web3j web3j, Credentials credentials, ContractGasProvider contractGasProvider) { + return new ERC20PresetMinterPauser(contractAddress, web3j, credentials, contractGasProvider); + } + + public static ERC20PresetMinterPauser load(String contractAddress, Web3j web3j, TransactionManager transactionManager, ContractGasProvider contractGasProvider) { + return new ERC20PresetMinterPauser(contractAddress, web3j, transactionManager, contractGasProvider); + } + + public static RemoteCall deploy(Web3j web3j, Credentials credentials, ContractGasProvider contractGasProvider, String name, String symbol) { + String encodedConstructor = FunctionEncoder.encodeConstructor(Arrays.asList(new org.web3j.abi.datatypes.Utf8String(name), + new org.web3j.abi.datatypes.Utf8String(symbol))); + return deployRemoteCall(ERC20PresetMinterPauser.class, web3j, credentials, contractGasProvider, BINARY, encodedConstructor); + } + + public static RemoteCall deploy(Web3j web3j, TransactionManager transactionManager, ContractGasProvider contractGasProvider, String name, String symbol) { + String encodedConstructor = FunctionEncoder.encodeConstructor(Arrays.asList(new org.web3j.abi.datatypes.Utf8String(name), + new org.web3j.abi.datatypes.Utf8String(symbol))); + return deployRemoteCall(ERC20PresetMinterPauser.class, web3j, transactionManager, contractGasProvider, BINARY, encodedConstructor); + } + + @Deprecated + public static RemoteCall deploy(Web3j web3j, Credentials credentials, BigInteger gasPrice, BigInteger gasLimit, String name, String symbol) { + String encodedConstructor = FunctionEncoder.encodeConstructor(Arrays.asList(new org.web3j.abi.datatypes.Utf8String(name), + new org.web3j.abi.datatypes.Utf8String(symbol))); + return deployRemoteCall(ERC20PresetMinterPauser.class, web3j, credentials, gasPrice, gasLimit, BINARY, encodedConstructor); + } + + @Deprecated + public static RemoteCall deploy(Web3j web3j, TransactionManager transactionManager, BigInteger gasPrice, BigInteger gasLimit, String name, String symbol) { + String encodedConstructor = FunctionEncoder.encodeConstructor(Arrays.asList(new org.web3j.abi.datatypes.Utf8String(name), + new org.web3j.abi.datatypes.Utf8String(symbol))); + return deployRemoteCall(ERC20PresetMinterPauser.class, web3j, transactionManager, gasPrice, gasLimit, BINARY, encodedConstructor); + } + + public static class ApprovalEventResponse extends BaseEventResponse { + public String owner; + + public String spender; + + public BigInteger value; + } + + public static class PausedEventResponse extends BaseEventResponse { + public String account; + } + + public static class RoleAdminChangedEventResponse extends BaseEventResponse { + public byte[] role; + + public byte[] previousAdminRole; + + public byte[] newAdminRole; + } + + public static class RoleGrantedEventResponse extends BaseEventResponse { + public byte[] role; + + public String account; + + public String sender; + } + + public static class RoleRevokedEventResponse extends BaseEventResponse { + public byte[] role; + + public String account; + + public String sender; + } + + public static class TransferEventResponse extends BaseEventResponse { + public String from; + + public String to; + + public BigInteger value; + } + + public static class UnpausedEventResponse extends BaseEventResponse { + public String account; + } +} diff --git a/functioncall/gpact/src/main/java/net/consensys/gpact/cbc/soliditywrappers/CrosschainControl.java b/functioncall/gpact/src/main/java/net/consensys/gpact/cbc/soliditywrappers/CrosschainControl.java index 71586dc6..ee29ff14 100644 --- a/functioncall/gpact/src/main/java/net/consensys/gpact/cbc/soliditywrappers/CrosschainControl.java +++ b/functioncall/gpact/src/main/java/net/consensys/gpact/cbc/soliditywrappers/CrosschainControl.java @@ -43,7 +43,7 @@ */ @SuppressWarnings("rawtypes") public class CrosschainControl extends Contract { - public static final String BINARY = "60806040523480156200001157600080fd5b50604051620039cd380380620039cd83398101604081905262000034916200007e565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060035562000098565b6000602082840312156200009157600080fd5b5051919050565b61392580620000a86000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806392b2c335116100a2578063df1bba0111610071578063df1bba011461021b578063f0f67af21461022e578063f2fde38b14610241578063f830b7b414610254578063fb11639e1461027457600080fd5b806392b2c335146101d95780639efabd34146101ec578063b2832096146101ff578063b4c3b7561461021257600080fd5b8063715018a6116100e9578063715018a6146101685780637bf37a0914610170578063877ba01d146101785780638da5cb5b146101ab5780638e22d534146101c657600080fd5b806319836dc71461011b5780633193c08b1461013057806339ce107e1461014c578063439160df1461015f575b600080fd5b61012e61012936600461300b565b610287565b005b61013960065481565b6040519081526020015b60405180910390f35b61012e61015a366004612d60565b6102e8565b61013960035481565b61012e610396565b600654610139565b61019b610186366004612faa565b60056020526000908152604090205460ff1681565b6040519015158152602001610143565b6000546040516001600160a01b039091168152602001610143565b6101396101d436600461309d565b61040a565b61012e6101e736600461309d565b610449565b61012e6101fa366004612d7d565b610519565b61012e61020d36600461300b565b61072d565b6006541561019b565b61012e610229366004613321565b610820565b61012e61023c366004612d7d565b610932565b61012e61024f366004612d60565b610e24565b610139610262366004612faa565b60046020526000908152604090205481565b61012e610282366004612e6d565b610f0e565b6000546001600160a01b031633146102ba5760405162461bcd60e51b81526004016102b190613486565b60405180910390fd5b60009182526002602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b60005b600c5481101561034357816001600160a01b0316600c8281548110610312576103126138a0565b6000918252602090912001546001600160a01b03161415610331575050565b8061033b8161386f565b9150506102eb565b50600c80546001810182556000919091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146103c05760405162461bcd60e51b81526004016102b190613486565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600080606061041b87878787611278565b9092509050811561043157600092505050610441565b61043c8160006115ab565b925050505b949350505050565b6000606061045986868686611278565b9092509050816105115761047c8160405180602001604052806000815250611617565b610511577f38e7ccc4b02b2da681f96e62aef89b5c6d4115f501f8d42430bb2f5f2fa981a66040516104fb9060208082526033908201527f43726f737320426c6f636b636861696e2043616c6c207769746820756e65787060408201527265637465642072657475726e2076616c75657360681b606082015260800190565b60405180910390a1600d805460ff191660011790555b505050505050565b61052d8a8a8a8a8a8a8a8a8a8a6000611642565b60008085856000818110610543576105436138a0565b9050602002810190610555919061367d565b81019061056291906130f8565b909250905060006105b08d8d838161057c5761057c6138a0565b9050602002013584604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b905060015b868110156106c257600060608989848181106105d3576105d36138a0565b90506020028101906105e5919061367d565b8101906105f2919061311d565b5093955093505050868314905061060857600080fd5b60005b81518110156106ac576000828281518110610628576106286138a0565b602090810291909101015160405163267ad75360e21b81528815156004820152602481018890529091506001600160a01b038216906399eb5d4c90604401600060405180830381600087803b15801561068057600080fd5b505af1158015610694573d6000803e3d6000fd5b505050505080806106a49061386f565b91505061060b565b50505080806106ba9061386f565b9150506105b5565b507f8426029537c24c21c8056ae94a666a5e448f1080699c70b9bf691cfeb9d5feec8d8d60008181106106f7576106f76138a0565b9050602002013584604051610716929190918252602082015260400190565b60405180910390a150505050505050505050505050565b6000546001600160a01b031633146107575760405162461bcd60e51b81526004016102b190613486565b8161079c5760405162461bcd60e51b8152602060048201526015602482015274125b9d985b1a5908189b1bd8dad8da185a5b881a59605a1b60448201526064016102b1565b6001600160a01b0381166107f25760405162461bcd60e51b815260206004820152601860248201527f496e76616c69642076657269666965722061646472657373000000000000000060448201526064016102b1565b60009182526001602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b32331461086f5760405162461bcd60e51b815260206004820181905260248201527f5374617274206d7573742062652063616c6c65642066726f6d20616e20454f4160448201526064016102b1565b600084815260046020526040902054156108cb5760405162461bcd60e51b815260206004820152601e60248201527f5472616e73616374696f6e20616c72656164792072656769737465726564000060448201526064016102b1565b60006108d7428561373d565b60008681526004602052604090819020829055519091507f77dab611ad9a24b763e2742f57749a0227393e0da76212d74fceb326b0661424906109239087903390859088908890613504565b60405180910390a15050505050565b6109468a8a8a8a8a8a8a8a8a8a6001611642565b60008a8a600081811061095b5761095b6138a0565b60200291909101359150503233146109c65760405162461bcd60e51b815260206004820152602860248201527f5472616e73616374696f6e206d75737420626520696e737469676174656420626044820152677920616e20454f4160c01b60648201526084016102b1565b8060035414610a175760405162461bcd60e51b815260206004820152601f60248201527f54686973206973206e6f742074686520726f6f7420626c6f636b636861696e0060448201526064016102b1565b88886000818110610a2a57610a2a6138a0565b9050602002016020810190610a3f9190612d60565b6001600160a01b0316306001600160a01b031614610ab55760405162461bcd60e51b815260206004820152602d60248201527f526f6f7420626c6f636b636861696e2043424320636f6e74726163742077617360448201526c206e6f742074686973206f6e6560981b60648201526084016102b1565b6000806000606088886000818110610acf57610acf6138a0565b9050602002810190610ae1919061367d565b810190610aee919061303b565b6000848152600460205260409020549397509195509350915080610b465760405162461bcd60e51b815260206004820152600f60248201526e43616c6c206e6f742061637469766560881b60448201526064016102b1565b6001811415610b8e5760405162461bcd60e51b815260206004820152601460248201527343616c6c20656e6465642028737563636573732960601b60448201526064016102b1565b6002811415610bd65760405162461bcd60e51b815260206004820152601460248201527343616c6c20656e64656420286661696c7572652960601b60448201526064016102b1565b80421115610bfa57610be785611a86565b610bef611ad5565b505050505050610e18565b6001600160a01b0384163214610c525760405162461bcd60e51b815260206004820152601e60248201527f454f4120646f6573206e6f74206d61746368207374617274206576656e74000060448201526064016102b1565b81516020830120604080516001808252818301909252600091816020016020820280368337019050509050610c92610c8a8c8e61378b565b82848a611b36565b15610ca4575050505050505050610e18565b610cb98482610cb460018f613774565b611d82565b6040805160208082018b90528183018a90528251808303840181526060909201909252805191012060068190556000610cf386848c611f43565b50905060005b600c54811015610d9e576000600c8281548110610d1857610d186138a0565b60009182526020909120015460405163267ad75360e21b81528415156004820152602481018690526001600160a01b03909116915081906399eb5d4c90604401600060405180830381600087803b158015610d7257600080fd5b505af1158015610d86573d6000803e3d6000fd5b50505050508080610d969061386f565b915050610cf9565b5080610dab576002610dae565b60015b60008a8152600460205260409081902091909155517fe6763dd99bf894d72f3499dd572aa42876eae7ae028c32fff21654e1bbc4c80790610dfd908b9084909182521515602082015260400190565b60405180910390a1610e0d611ad5565b505050505050505050505b50505050505050505050565b6000546001600160a01b03163314610e4e5760405162461bcd60e51b81526004016102b190613486565b6001600160a01b038116610eb35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b610f228c8c8c8c8c8c8c8c8c8c6001611642565b60008c8c6000818110610f3757610f376138a0565b6020029190910135915050323314610f9c5760405162461bcd60e51b815260206004820152602260248201527f5365676d656e74206d7573742062652063616c6c65642066726f6d20616e20456044820152614f4160f01b60648201526084016102b1565b600080606089896000818110610fb457610fb46138a0565b9050602002810190610fc6919061367d565b810190610fd3919061303b565b929550909350909150506001600160a01b03821632146110355760405162461bcd60e51b815260206004820152601e60248201527f454f4120646f6573206e6f74206d61746368207374617274206576656e74000060448201526064016102b1565b60008484888860405160200161104e9493929190613435565b60408051601f1981840301815291815281516020928301206000818152600590935291205490915060ff16156110d25760405162461bcd60e51b8152602060048201526024808201527f5365676d656e74207472616e73616374696f6e20616c726561647920657865636044820152631d5d195960e21b60648201526084016102b1565b6000526005602090815281519082012060018a1115611189576111356110f88b8d61378b565b888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250869250899150611b369050565b1561114457505050505061126a565b61118982888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cb49250600191508f9050613774565b60408051602080820188905281830187905282518083038401815260609092019092528051910120600681905550600060606111fa848a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508c9250611f43915050565b60405191935091507fb01557f1f634b7c5072ab5e36d07a2355ef819faca5a3d321430d71987155b8f9061123c90889086908d908d90600c908990899061353d565b60405180910390a160018c111561125a5761125561215b565b611262565b6112626121bb565b505050505050505b505050505050505050505050565b600b54600a5460009160609181106112b3575050600d805460ff191660019081179091556040805160208101909152600081529091506115a2565b6000600782815481106112c8576112c86138a0565b906000526020600020015490506000600883815481106112ea576112ea6138a0565b6000918252602082200154600980546001600160a01b0390921693509085908110611317576113176138a0565b90600052602060002001805461132c90613834565b80601f016020809104026020016040519081016040528092919081815260200182805461135890613834565b80156113a55780601f1061137a576101008083540402835291602001916113a5565b820191906000526020600020905b81548152906001019060200180831161138857829003601f168201915b50505050509050828a1415806113cd5750816001600160a01b0316896001600160a01b031614155b80611416575061141488888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250611617915050565b155b1561149c57600d805460ff1916600190811790915561143690859061373d565b600b556040517f8b5fc485a070cefca43e0a1d8cc72cf38dc31d5bf14f58cedcc59c73cac84e15906114759085908d9086908e9087908f908f90613623565b60405180910390a160016040518060200160405280600081525095509550505050506115a2565b6000600a856114aa8161386f565b9650815481106114bc576114bc6138a0565b9060005260206000200180546114d190613834565b80601f01602080910402602001604051908101604052809291908181526020018280546114fd90613834565b801561154a5780601f1061151f5761010080835404028352916020019161154a565b820191906000526020600020905b81548152906001019060200180831161152d57829003601f168201915b5050505050905084600b819055507f971a379ee339d51e370a4733845f31c68e234014c8494ecedb867ae2cdc1ef688b8b8b8b8560405161158f9594939291906134bb565b60405180910390a1600096509450505050505b94509492505050565b60006115b882602061373d565b835110156116085760405162461bcd60e51b815260206004820152601e60248201527f736c6963696e67206f7574206f662072616e6765202875696e7432353629000060448201526064016102b1565b50818101602001515b92915050565b6000815183511461162a57506000611611565b81805190602001208380519060200120149050611611565b89806116905760405162461bcd60e51b815260206004820152601a60248201527f4d757374206265206174206c65617374206f6e65206576656e7400000000000060448201526064016102b1565b8089146116fc5760405162461bcd60e51b815260206004820152603460248201527f4e756d626572206f6620626c6f636b636861696e2049647320616e6420636263604482015273082c8c8e4cae6e6cae640daeae6e840dac2e8c6d60631b60648201526084016102b1565b80871461177b5760405162461bcd60e51b815260206004820152604160248201527f4e756d626572206f6620626c6f636b636861696e2049647320616e642065766560448201527f6e742066756e6374696f6e207369676e617475726573206d757374206d6174636064820152600d60fb1b608482015260a4016102b1565b8085146117e55760405162461bcd60e51b815260206004820152603260248201527f4e756d626572206f6620626c6f636b636861696e2049647320616e64206576656044820152710dce840c8c2e8c240daeae6e840dac2e8c6d60731b60648201526084016102b1565b8083146118425760405162461bcd60e51b815260206004820152602560248201527f4e756d626572206f66206576656e747320616e64207369676e617475726573206044820152640dac2e8c6d60db1b60648201526084016102b1565b60005b81811015611a7757806119225760008361187f577fe6763dd99bf894d72f3499dd572aa42876eae7ae028c32fff21654e1bbc4c8076118a1565b7f77dab611ad9a24b763e2742f57749a0227393e0da76212d74fceb326b06614245b90508989838181106118b5576118b56138a0565b90506020020135811461191c5760405162461bcd60e51b815260206004820152602960248201527f556e6578706563746564206669727374206576656e742066756e6374696f6e206044820152687369676e617475726560b81b60648201526084016102b1565b506119bc565b888882818110611934576119346138a0565b905060200201357fb01557f1f634b7c5072ab5e36d07a2355ef819faca5a3d321430d71987155b8f146119bc5760405162461bcd60e51b815260206004820152602a60248201527f4576656e742066756e6374696f6e207369676e6174757265206e6f7420666f726044820152690818481cd959db595b9d60b21b60648201526084016102b1565b611a658d8d838181106119d1576119d16138a0565b905060200201358c8c848181106119ea576119ea6138a0565b90506020020160208101906119ff9190612d60565b8b8b85818110611a1157611a116138a0565b905060200201358a8a86818110611a2a57611a2a6138a0565b9050602002810190611a3c919061367d565b8a8a88818110611a4e57611a4e6138a0565b9050602002810190611a60919061367d565b6121e4565b80611a6f8161386f565b915050611845565b50505050505050505050505050565b6000818152600460209081526040808320600290558051848152918201929092527fe6763dd99bf894d72f3499dd572aa42876eae7ae028c32fff21654e1bbc4c807910160405180910390a150565b611ae160076000612a05565b611aed60086000612a05565b611af960096000612a26565b611b05600a6000612a26565b6000600b55600d5460ff1615611b2057600d805460ff191690555b600660009055600c6000611b349190612a05565b565b600060015b8551811015611d7657600080606080600060608b8781518110611b6057611b606138a0565b6020026020010151806020019051810190611b7b9190613225565b949a50929850909650945092509050888614611bf35760405162461bcd60e51b815260206004820152603160248201527f5472616e73616374696f6e2069642066726f6d207365676d656e7420616e64206044820152700e4dedee840c8de40dcdee840dac2e8c6d607b1b60648201526084016102b1565b848a14611c585760405162461bcd60e51b815260206004820152602d60248201527f43616c6c2067726170682066726f6d207365676d656e7420616e6420726f6f7460448201526c040c8de40dcdee840dac2e8c6d609b1b60648201526084016102b1565b8a60018c51611c679190613774565b81518110611c7757611c776138a0565b6020026020010151600014611c8b57600080fd5b8a5184511480611ca757508a51611ca390600161373d565b8451145b611cf35760405162461bcd60e51b815260206004820181905260248201527f4261642063616c6c2070617468206c656e67746820666f72207365676d656e7460448201526064016102b1565b81611d1957611d0189611a86565b611d0961215b565b6001975050505050505050610441565b600a80546001810182556000919091528151611d5c917fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a801906020840190612a44565b505050505050508080611d6e9061386f565b915050611b3b565b50600095945050505050565b81516000816001600160401b03811115611d9e57611d9e6138b6565b604051908082528060200260200182016040528015611dc7578160200160208202803683370190505b50905060005b611dd8600184613774565b811015611e2857848181518110611df157611df16138a0565b6020026020010151828281518110611e0b57611e0b6138a0565b602090810291909101015280611e208161386f565b915050611dcd565b5060015b838111610511578082611e40600186613774565b81518110611e5057611e506138a0565b6020026020010181815250506000806000611e6d89866001612359565b6007805460018082019092557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68801849055600880548083019091557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b03851617905560098054918201815560005281519396509194509250611f2c917f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af909101906020840190612a44565b505050508080611f3b9061386f565b915050611e2c565b600060606000806000611f5888886001612359565b9250925092506003548314611fcc5760405162461bcd60e51b815260206004820152603460248201527f54617267657420626c6f636b636861696e20696420646f6573206e6f74206d616044820152731d18da081b5e48189b1bd8dad8da185a5b881a5960621b60648201526084016102b1565b60008088516001148015611ffa575088600081518110611fee57611fee6138a0565b60200260200101516000145b61201f5760006120098a61257e565b90506120178b826000612359565b509093509150505b6000612036848a85856001600160a01b0316612761565b905060006060866001600160a01b03168360405161205491906133b0565b6000604051808303816000865af19150503d8060008114612091576040519150601f19603f3d011682016040523d82523d6000602084013e612096565b606091505b509092509050816120e1577f38e7ccc4b02b2da681f96e62aef89b5c6d4115f501f8d42430bb2f5f2fa981a66120cb826127b3565b6040516120d89190613473565b60405180910390a15b600b54600a541461213657600a54600b546040517fce3bac95f99adf24dc6d7d8a7264b6c40b211c40e0f79a78482298c0867fae9b9261212992908252602082015260400190565b60405180910390a1600091505b600d5460ff166121465781612149565b60005b9d909c509a5050505050505050505050565b61216760076000612a05565b61217360086000612a05565b61217f60096000612a26565b600660009055600c60006121939190612a05565b61219f600a6000612a26565b6000600b55600d5460ff1615611b3457600d805460ff19169055565b600d5460ff1615611b2057600d805460ff19169055600660009055600c6000611b349190612a05565b6000878152600160205260409020546001600160a01b0316806122575760405162461bcd60e51b815260206004820152602560248201527f4e6f207265676973746572656420766572696669657220666f7220626c6f636b60448201526431b430b4b760d91b60648201526084016102b1565b6000888152600260205260409020546001600160a01b038881169116146122ce5760405162461bcd60e51b815260206004820152602560248201527f44617461206e6f7420656d697474656420627920617070726f76656420636f6e6044820152641d1c9858dd60da1b60648201526084016102b1565b600088888888886040516020016122e99594939291906133fb565b60408051601f198184030181529082905263260e748160e11b825291506001600160a01b03831690634c1ce9029061232d908c908b9086908a908a906004016135f1565b60006040518083038186803b15801561234557600080fd5b505afa158015611a77573d6000803e3d6000fd5b60008060606000805b8651811015612473576000806123788a85612812565b905060ff81166123fe57600189516123909190613774565b83146123f95760405162461bcd60e51b815260206004820152603260248201527f52656163686564206c6561662066756e6374696f6e206275742074686572652060448201527134b99036b7b9329031b0b636103830ba341760711b60648201526084016102b1565b612452565b6000898481518110612412576124126138a0565b602002602001015190506124488b600160048461242f9190613755565b612439908961373d565b612443919061373d565b612878565b63ffffffff169250505b61245c828561373d565b93505050808061246b9061386f565b915050612362565b5085600187516124839190613774565b81518110612493576124936138a0565b60200260200101516000146124f45760006124ae8883612812565b905060ff8116156124e45760006124ca8961244360018661373d565b63ffffffff1690506124dc818461373d565b9250506124f2565b6124ef60018361373d565b91505b505b6124fe87826115ab565b935061250b60208261373d565b905061251a8782016014015190565b925084156125615761252d60148261373d565b9050600061253b88836128de565b905061254860028361373d565b915061255988838361ffff16612944565b925050612574565b6040518060200160405280600081525091505b5093509350939050565b8051606090819083612591600183613774565b815181106125a1576125a16138a0565b602002602001015160001461268257806001600160401b038111156125c8576125c86138b6565b6040519080825280602002602001820160405280156125f1578160200160208202803683370190505b50915060005b612602600183613774565b8110156126525784818151811061261b5761261b6138a0565b6020026020010151838281518110612635576126356138a0565b60209081029190910101528061264a8161386f565b9150506125f7565b50600082612661600184613774565b81518110612671576126716138a0565b60200260200101818152505061275a565b61268d600182613774565b6001600160401b038111156126a4576126a46138b6565b6040519080825280602002602001820160405280156126cd578160200160208202803683370190505b50915060005b6126de600283613774565b81101561272e578481815181106126f7576126f76138a0565b6020026020010151838281518110612711576127116138a0565b6020908102919091010152806127268161386f565b9150506126d3565b5060008261273d600284613774565b8151811061274d5761274d6138a0565b6020026020010181815250505b5092915050565b60408051602081018590528082018490526060808201849052825180830382018152608083019093529161279a9187919060a0016133cc565b6040516020818303038152906040529050949350505050565b60606044825110156127f857505060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c79000000602082015290565b600482019150818060200190518101906116119190612fc3565b600061281f82600161373d565b8351101561286f5760405162461bcd60e51b815260206004820152601c60248201527f736c6963696e67206f7574206f662072616e6765202875696e7438290000000060448201526064016102b1565b50016001015190565b600061288582600461373d565b835110156128d55760405162461bcd60e51b815260206004820152601d60248201527f736c6963696e67206f7574206f662072616e6765202875696e7433322900000060448201526064016102b1565b50016004015190565b60006128eb82600261373d565b8351101561293b5760405162461bcd60e51b815260206004820152601d60248201527f736c6963696e67206f7574206f662072616e6765202875696e7431362900000060448201526064016102b1565b50016002015190565b6060612950828461373d565b845110156129955760405162461bcd60e51b815260206004820152601260248201527152656164206f7574206f6620626f756e647360701b60448201526064016102b1565b6060821580156129b0576040519150602082016040526129fa565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156129e95780518352602092830192016129d1565b5050858452601f01601f1916604052505b5090505b9392505050565b5080546000825590600052602060002090810190612a239190612ac8565b50565b5080546000825590600052602060002090810190612a239190612add565b828054612a5090613834565b90600052602060002090601f016020900481019282612a725760008555612ab8565b82601f10612a8b57805160ff1916838001178555612ab8565b82800160010185558215612ab8579182015b82811115612ab8578251825591602001919060010190612a9d565b50612ac4929150612ac8565b5090565b5b80821115612ac45760008155600101612ac9565b80821115612ac4576000612af18282612afa565b50600101612add565b508054612b0690613834565b6000825580601f10612b16575050565b601f016020900490600052602060002090810190612a239190612ac8565b6000612b47612b4284613716565b6136c3565b9050828152838383011115612b5b57600080fd5b6129fe836020830184613804565b60008083601f840112612b7b57600080fd5b5081356001600160401b03811115612b9257600080fd5b6020830191508360208260051b8501011115612bad57600080fd5b9250929050565b600082601f830112612bc557600080fd5b81356020612bd5612b42836136f3565b80838252828201915082860187848660051b8901011115612bf557600080fd5b60005b85811015612c1d578135612c0b816138cc565b84529284019290840190600101612bf8565b5090979650505050505050565b600082601f830112612c3b57600080fd5b81516020612c4b612b42836136f3565b80838252828201915082860187848660051b8901011115612c6b57600080fd5b60005b85811015612c1d578151612c81816138cc565b84529284019290840190600101612c6e565b8035612c9e816138e1565b919050565b8051612c9e816138e1565b60008083601f840112612cc057600080fd5b5081356001600160401b03811115612cd757600080fd5b602083019150836020828501011115612bad57600080fd5b600082601f830112612d0057600080fd5b8135612d0e612b4282613716565b818152846020838601011115612d2357600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112612d5157600080fd5b6129fe83835160208501612b34565b600060208284031215612d7257600080fd5b81356129fe816138cc565b60008060008060008060008060008060a08b8d031215612d9c57600080fd5b8a356001600160401b0380821115612db357600080fd5b612dbf8e838f01612b69565b909c509a5060208d0135915080821115612dd857600080fd5b612de48e838f01612b69565b909a50985060408d0135915080821115612dfd57600080fd5b612e098e838f01612b69565b909850965060608d0135915080821115612e2257600080fd5b612e2e8e838f01612b69565b909650945060808d0135915080821115612e4757600080fd5b50612e548d828e01612b69565b915080935050809150509295989b9194979a5092959850565b60008060008060008060008060008060008060c08d8f031215612e8f57600080fd5b6001600160401b038d351115612ea457600080fd5b612eb18e8e358f01612b69565b909c509a506001600160401b0360208e01351115612ece57600080fd5b612ede8e60208f01358f01612b69565b909a5098506001600160401b0360408e01351115612efb57600080fd5b612f0b8e60408f01358f01612b69565b90985096506001600160401b0360608e01351115612f2857600080fd5b612f388e60608f01358f01612b69565b90965094506001600160401b0360808e01351115612f5557600080fd5b612f658e60808f01358f01612b69565b90945092506001600160401b0360a08e01351115612f8257600080fd5b612f928e60a08f01358f01612b69565b81935080925050509295989b509295989b509295989b565b600060208284031215612fbc57600080fd5b5035919050565b600060208284031215612fd557600080fd5b81516001600160401b03811115612feb57600080fd5b8201601f81018413612ffc57600080fd5b61044184825160208401612b34565b6000806040838503121561301e57600080fd5b823591506020830135613030816138cc565b809150509250929050565b6000806000806080858703121561305157600080fd5b843593506020850135613063816138cc565b92506040850135915060608501356001600160401b0381111561308557600080fd5b61309187828801612cef565b91505092959194509250565b600080600080606085870312156130b357600080fd5b8435935060208501356130c5816138cc565b925060408501356001600160401b038111156130e057600080fd5b6130ec87828801612cae565b95989497509550505050565b6000806040838503121561310b57600080fd5b823591506020830135613030816138e1565b60008060008060008060c0878903121561313657600080fd5b86359550602080880135955060408801356001600160401b038082111561315c57600080fd5b818a0191508a601f83011261317057600080fd5b813561317e612b42826136f3565b8082825285820191508585018e878560051b880101111561319e57600080fd5b600095505b838610156131c15780358352600195909501949186019186016131a3565b509850505060608a01359250808311156131da57600080fd5b6131e68b848c01612bb4565b95506131f460808b01612c93565b945060a08a013592508083111561320a57600080fd5b505061321889828a01612cef565b9150509295509295509295565b60008060008060008060c0878903121561323e57600080fd5b86519550602080880151955060408801516001600160401b038082111561326457600080fd5b818a0191508a601f83011261327857600080fd5b8151613286612b42826136f3565b8082825285820191508585018e878560051b88010111156132a657600080fd5b600095505b838610156132c95780518352600195909501949186019186016132ab565b5060608d015190995094505050808311156132e357600080fd5b6132ef8b848c01612c2a565b95506132fd60808b01612ca3565b945060a08a015192508083111561331357600080fd5b505061321889828a01612d40565b6000806000806060858703121561333757600080fd5b843593506020850135925060408501356001600160401b038111156130e057600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000815180845261339c816020860160208601613804565b601f01601f19169290920160200192915050565b600082516133c2818460208701613804565b9190910192915050565b600083516133de818460208801613804565b8351908301906133f2818360208801613804565b01949350505050565b8581526bffffffffffffffffffffffff198560601b1660208201528360348201528183605483013760009101605401908152949350505050565b8481526020810184905260006001600160fb1b0383111561345557600080fd5b8260051b808560408501376000920160400191825250949350505050565b6020815260006129fe6020830184613384565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8581526001600160a01b03851660208201526080604082018190526000906134e6908301858761335b565b82810360608401526134f88185613384565b98975050505050505050565b85815260018060a01b038516602082015283604082015260806060820152600061353260808301848661335b565b979650505050505050565b87815260006020888184015260c060408401528660c084015260018060fb1b0387111561356957600080fd5b8660051b808960e086013760e0908401848103820160608601528754918101829052600088815283812092909161010001905b808310156135c55783546001600160a01b0316825260019384019392909201919084019061359c565b50871515608087015285810360a08701526135e08188613384565b9d9c50505050505050505050505050565b8581528460208201526080604082015260006136106080830186613384565b82810360608401526134f881858761335b565b878152602081018790526001600160a01b0386811660408301528516606082015260c06080820181905260009061365c90830186613384565b82810360a084015261366f81858761335b565b9a9950505050505050505050565b6000808335601e1984360301811261369457600080fd5b8301803591506001600160401b038211156136ae57600080fd5b602001915036819003821315612bad57600080fd5b604051601f8201601f191681016001600160401b03811182821017156136eb576136eb6138b6565b604052919050565b60006001600160401b0382111561370c5761370c6138b6565b5060051b60200190565b60006001600160401b0382111561372f5761372f6138b6565b50601f01601f191660200190565b600082198211156137505761375061388a565b500190565b600081600019048311821515161561376f5761376f61388a565b500290565b6000828210156137865761378661388a565b500390565b6000613799612b42846136f3565b808482526020808301925084368760051b870111156137b757600080fd5b6000805b888110156137f75782356001600160401b038111156137d8578283fd5b6137e436828b01612cef565b87525094830194918301916001016137bb565b5092979650505050505050565b60005b8381101561381f578181015183820152602001613807565b8381111561382e576000848401525b50505050565b600181811c9082168061384857607f821691505b6020821081141561386957634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156138835761388361388a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114612a2357600080fd5b8015158114612a2357600080fdfea26469706673582212202731f4aa1f3238a87fa866b5e5b144fcb9011b63b6bb512669170b86c1156ef964736f6c63430008050033"; + public static final String BINARY = "60806040523480156200001157600080fd5b50604051620039ad380380620039ad83398101604081905262000034916200007e565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060035562000098565b6000602082840312156200009157600080fd5b5051919050565b61390580620000a86000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806392b2c335116100a2578063df1bba0111610071578063df1bba011461021b578063f0f67af21461022e578063f2fde38b14610241578063f830b7b414610254578063fb11639e1461027457600080fd5b806392b2c335146101d95780639efabd34146101ec578063b2832096146101ff578063b4c3b7561461021257600080fd5b8063715018a6116100e9578063715018a6146101685780637bf37a0914610170578063877ba01d146101785780638da5cb5b146101ab5780638e22d534146101c657600080fd5b806319836dc71461011b5780633193c08b1461013057806339ce107e1461014c578063439160df1461015f575b600080fd5b61012e610129366004612b49565b610287565b005b61013960065481565b6040519081526020015b60405180910390f35b61012e61015a366004612b79565b6102e8565b61013960035481565b61012e610396565b600654610139565b61019b610186366004612b96565b60056020526000908152604090205460ff1681565b6040519015158152602001610143565b6000546040516001600160a01b039091168152602001610143565b6101396101d4366004612bf7565b61040a565b61012e6101e7366004612bf7565b610449565b61012e6101fa366004612c96565b610519565b61012e61020d366004612b49565b61072d565b6006541561019b565b61012e610229366004612d86565b610820565b61012e61023c366004612c96565b610932565b61012e61024f366004612b79565b610e24565b610139610262366004612b96565b60046020526000908152604090205481565b61012e610282366004612dc0565b610f0e565b6000546001600160a01b031633146102ba5760405162461bcd60e51b81526004016102b190612efd565b60405180910390fd5b60009182526002602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b60005b600c5481101561034357816001600160a01b0316600c828154811061031257610312612f32565b6000918252602090912001546001600160a01b03161415610331575050565b8061033b81612f5e565b9150506102eb565b50600c80546001810182556000919091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146103c05760405162461bcd60e51b81526004016102b190612efd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600080606061041b87878787611278565b9092509050811561043157600092505050610441565b61043c8160006115ab565b925050505b949350505050565b6000606061045986868686611278565b9092509050816105115761047c8160405180602001604052806000815250611617565b610511577f38e7ccc4b02b2da681f96e62aef89b5c6d4115f501f8d42430bb2f5f2fa981a66040516104fb9060208082526033908201527f43726f737320426c6f636b636861696e2043616c6c207769746820756e65787060408201527265637465642072657475726e2076616c75657360681b606082015260800190565b60405180910390a1600d805460ff191660011790555b505050505050565b61052d8a8a8a8a8a8a8a8a8a8a6000611642565b6000808585600081811061054357610543612f32565b90506020028101906105559190612f79565b8101906105629190612fdd565b909250905060006105b08d8d838161057c5761057c612f32565b9050602002013584604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b905060015b868110156106c257600060608989848181106105d3576105d3612f32565b90506020028101906105e59190612f79565b8101906105f29190613157565b5093955093505050868314905061060857600080fd5b60005b81518110156106ac57600082828151811061062857610628612f32565b602090810291909101015160405163267ad75360e21b81528815156004820152602481018890529091506001600160a01b038216906399eb5d4c90604401600060405180830381600087803b15801561068057600080fd5b505af1158015610694573d6000803e3d6000fd5b505050505080806106a490612f5e565b91505061060b565b50505080806106ba90612f5e565b9150506105b5565b507f8426029537c24c21c8056ae94a666a5e448f1080699c70b9bf691cfeb9d5feec8d8d60008181106106f7576106f7612f32565b9050602002013584604051610716929190918252602082015260400190565b60405180910390a150505050505050505050505050565b6000546001600160a01b031633146107575760405162461bcd60e51b81526004016102b190612efd565b8161079c5760405162461bcd60e51b8152602060048201526015602482015274125b9d985b1a5908189b1bd8dad8da185a5b881a59605a1b60448201526064016102b1565b6001600160a01b0381166107f25760405162461bcd60e51b815260206004820152601860248201527f496e76616c69642076657269666965722061646472657373000000000000000060448201526064016102b1565b60009182526001602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b32331461086f5760405162461bcd60e51b815260206004820181905260248201527f5374617274206d7573742062652063616c6c65642066726f6d20616e20454f4160448201526064016102b1565b600084815260046020526040902054156108cb5760405162461bcd60e51b815260206004820152601e60248201527f5472616e73616374696f6e20616c72656164792072656769737465726564000060448201526064016102b1565b60006108d74285613258565b60008681526004602052604090819020829055519091507f77dab611ad9a24b763e2742f57749a0227393e0da76212d74fceb326b0661424906109239087903390859088908890613299565b60405180910390a15050505050565b6109468a8a8a8a8a8a8a8a8a8a6001611642565b60008a8a600081811061095b5761095b612f32565b60200291909101359150503233146109c65760405162461bcd60e51b815260206004820152602860248201527f5472616e73616374696f6e206d75737420626520696e737469676174656420626044820152677920616e20454f4160c01b60648201526084016102b1565b8060035414610a175760405162461bcd60e51b815260206004820152601f60248201527f54686973206973206e6f742074686520726f6f7420626c6f636b636861696e0060448201526064016102b1565b88886000818110610a2a57610a2a612f32565b9050602002016020810190610a3f9190612b79565b6001600160a01b0316306001600160a01b031614610ab55760405162461bcd60e51b815260206004820152602d60248201527f526f6f7420626c6f636b636861696e2043424320636f6e74726163742077617360448201526c206e6f742074686973206f6e6560981b60648201526084016102b1565b6000806000606088886000818110610acf57610acf612f32565b9050602002810190610ae19190612f79565b810190610aee91906132d2565b6000848152600460205260409020549397509195509350915080610b465760405162461bcd60e51b815260206004820152600f60248201526e43616c6c206e6f742061637469766560881b60448201526064016102b1565b6001811415610b8e5760405162461bcd60e51b815260206004820152601460248201527343616c6c20656e6465642028737563636573732960601b60448201526064016102b1565b6002811415610bd65760405162461bcd60e51b815260206004820152601460248201527343616c6c20656e64656420286661696c7572652960601b60448201526064016102b1565b80421115610bfa57610be785611a86565b610bef611ad5565b505050505050610e18565b6001600160a01b0384163214610c525760405162461bcd60e51b815260206004820152601e60248201527f454f4120646f6573206e6f74206d61746368207374617274206576656e74000060448201526064016102b1565b81516020830120604080516001808252818301909252600091816020016020820280368337019050509050610c92610c8a8c8e613334565b82848a611b36565b15610ca4575050505050505050610e18565b610cb98482610cb460018f6133a7565b611d82565b6040805160208082018b90528183018a90528251808303840181526060909201909252805191012060068190556000610cf386848c611f43565b50905060005b600c54811015610d9e576000600c8281548110610d1857610d18612f32565b60009182526020909120015460405163267ad75360e21b81528415156004820152602481018690526001600160a01b03909116915081906399eb5d4c90604401600060405180830381600087803b158015610d7257600080fd5b505af1158015610d86573d6000803e3d6000fd5b50505050508080610d9690612f5e565b915050610cf9565b5080610dab576002610dae565b60015b60008a8152600460205260409081902091909155517fe6763dd99bf894d72f3499dd572aa42876eae7ae028c32fff21654e1bbc4c80790610dfd908b9084909182521515602082015260400190565b60405180910390a1610e0d611ad5565b505050505050505050505b50505050505050505050565b6000546001600160a01b03163314610e4e5760405162461bcd60e51b81526004016102b190612efd565b6001600160a01b038116610eb35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b610f228c8c8c8c8c8c8c8c8c8c6001611642565b60008c8c6000818110610f3757610f37612f32565b6020029190910135915050323314610f9c5760405162461bcd60e51b815260206004820152602260248201527f5365676d656e74206d7573742062652063616c6c65642066726f6d20616e20456044820152614f4160f01b60648201526084016102b1565b600080606089896000818110610fb457610fb4612f32565b9050602002810190610fc69190612f79565b810190610fd391906132d2565b929550909350909150506001600160a01b03821632146110355760405162461bcd60e51b815260206004820152601e60248201527f454f4120646f6573206e6f74206d61746368207374617274206576656e74000060448201526064016102b1565b60008484888860405160200161104e94939291906133be565b60408051601f1981840301815291815281516020928301206000818152600590935291205490915060ff16156110d25760405162461bcd60e51b8152602060048201526024808201527f5365676d656e74207472616e73616374696f6e20616c726561647920657865636044820152631d5d195960e21b60648201526084016102b1565b6000526005602090815281519082012060018a1115611189576111356110f88b8d613334565b888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250869250899150611b369050565b1561114457505050505061126a565b61118982888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cb49250600191508f90506133a7565b60408051602080820188905281830187905282518083038401815260609092019092528051910120600681905550600060606111fa848a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508c9250611f43915050565b60405191935091507fb01557f1f634b7c5072ab5e36d07a2355ef819faca5a3d321430d71987155b8f9061123c90889086908d908d90600c9089908990613458565b60405180910390a160018c111561125a5761125561215b565b611262565b6112626121bb565b505050505050505b505050505050505050505050565b600b54600a5460009160609181106112b3575050600d805460ff191660019081179091556040805160208101909152600081529091506115a2565b6000600782815481106112c8576112c8612f32565b906000526020600020015490506000600883815481106112ea576112ea612f32565b6000918252602082200154600980546001600160a01b039092169350908590811061131757611317612f32565b90600052602060002001805461132c9061350c565b80601f01602080910402602001604051908101604052809291908181526020018280546113589061350c565b80156113a55780601f1061137a576101008083540402835291602001916113a5565b820191906000526020600020905b81548152906001019060200180831161138857829003601f168201915b50505050509050828a1415806113cd5750816001600160a01b0316896001600160a01b031614155b80611416575061141488888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250611617915050565b155b1561149c57600d805460ff19166001908117909155611436908590613258565b600b556040517f8b5fc485a070cefca43e0a1d8cc72cf38dc31d5bf14f58cedcc59c73cac84e15906114759085908d9086908e9087908f908f90613547565b60405180910390a160016040518060200160405280600081525095509550505050506115a2565b6000600a856114aa81612f5e565b9650815481106114bc576114bc612f32565b9060005260206000200180546114d19061350c565b80601f01602080910402602001604051908101604052809291908181526020018280546114fd9061350c565b801561154a5780601f1061151f5761010080835404028352916020019161154a565b820191906000526020600020905b81548152906001019060200180831161152d57829003601f168201915b5050505050905084600b819055507f971a379ee339d51e370a4733845f31c68e234014c8494ecedb867ae2cdc1ef688b8b8b8b8560405161158f9594939291906135a1565b60405180910390a1600096509450505050505b94509492505050565b60006115b8826020613258565b835110156116085760405162461bcd60e51b815260206004820152601e60248201527f736c6963696e67206f7574206f662072616e6765202875696e7432353629000060448201526064016102b1565b50818101602001515b92915050565b6000815183511461162a57506000611611565b81805190602001208380519060200120149050611611565b89806116905760405162461bcd60e51b815260206004820152601a60248201527f4d757374206265206174206c65617374206f6e65206576656e7400000000000060448201526064016102b1565b8089146116fc5760405162461bcd60e51b815260206004820152603460248201527f4e756d626572206f6620626c6f636b636861696e2049647320616e6420636263604482015273082c8c8e4cae6e6cae640daeae6e840dac2e8c6d60631b60648201526084016102b1565b80871461177b5760405162461bcd60e51b815260206004820152604160248201527f4e756d626572206f6620626c6f636b636861696e2049647320616e642065766560448201527f6e742066756e6374696f6e207369676e617475726573206d757374206d6174636064820152600d60fb1b608482015260a4016102b1565b8085146117e55760405162461bcd60e51b815260206004820152603260248201527f4e756d626572206f6620626c6f636b636861696e2049647320616e64206576656044820152710dce840c8c2e8c240daeae6e840dac2e8c6d60731b60648201526084016102b1565b8083146118425760405162461bcd60e51b815260206004820152602560248201527f4e756d626572206f66206576656e747320616e64207369676e617475726573206044820152640dac2e8c6d60db1b60648201526084016102b1565b60005b81811015611a7757806119225760008361187f577fe6763dd99bf894d72f3499dd572aa42876eae7ae028c32fff21654e1bbc4c8076118a1565b7f77dab611ad9a24b763e2742f57749a0227393e0da76212d74fceb326b06614245b90508989838181106118b5576118b5612f32565b90506020020135811461191c5760405162461bcd60e51b815260206004820152602960248201527f556e6578706563746564206669727374206576656e742066756e6374696f6e206044820152687369676e617475726560b81b60648201526084016102b1565b506119bc565b88888281811061193457611934612f32565b905060200201357fb01557f1f634b7c5072ab5e36d07a2355ef819faca5a3d321430d71987155b8f146119bc5760405162461bcd60e51b815260206004820152602a60248201527f4576656e742066756e6374696f6e207369676e6174757265206e6f7420666f726044820152690818481cd959db595b9d60b21b60648201526084016102b1565b611a658d8d838181106119d1576119d1612f32565b905060200201358c8c848181106119ea576119ea612f32565b90506020020160208101906119ff9190612b79565b8b8b85818110611a1157611a11612f32565b905060200201358a8a86818110611a2a57611a2a612f32565b9050602002810190611a3c9190612f79565b8a8a88818110611a4e57611a4e612f32565b9050602002810190611a609190612f79565b6121e4565b80611a6f81612f5e565b915050611845565b50505050505050505050505050565b6000818152600460209081526040808320600290558051848152918201929092527fe6763dd99bf894d72f3499dd572aa42876eae7ae028c32fff21654e1bbc4c807910160405180910390a150565b611ae160076000612a05565b611aed60086000612a05565b611af960096000612a26565b611b05600a6000612a26565b6000600b55600d5460ff1615611b2057600d805460ff191690555b600660009055600c6000611b349190612a05565b565b600060015b8551811015611d7657600080606080600060608b8781518110611b6057611b60612f32565b6020026020010151806020019051810190611b7b91906136a9565b949a50929850909650945092509050888614611bf35760405162461bcd60e51b815260206004820152603160248201527f5472616e73616374696f6e2069642066726f6d207365676d656e7420616e64206044820152700e4dedee840c8de40dcdee840dac2e8c6d607b1b60648201526084016102b1565b848a14611c585760405162461bcd60e51b815260206004820152602d60248201527f43616c6c2067726170682066726f6d207365676d656e7420616e6420726f6f7460448201526c040c8de40dcdee840dac2e8c6d609b1b60648201526084016102b1565b8a60018c51611c6791906133a7565b81518110611c7757611c77612f32565b6020026020010151600014611c8b57600080fd5b8a5184511480611ca757508a51611ca3906001613258565b8451145b611cf35760405162461bcd60e51b815260206004820181905260248201527f4261642063616c6c2070617468206c656e67746820666f72207365676d656e7460448201526064016102b1565b81611d1957611d0189611a86565b611d0961215b565b6001975050505050505050610441565b600a80546001810182556000919091528151611d5c917fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a801906020840190612a44565b505050505050508080611d6e90612f5e565b915050611b3b565b50600095945050505050565b81516000816001600160401b03811115611d9e57611d9e613002565b604051908082528060200260200182016040528015611dc7578160200160208202803683370190505b50905060005b611dd86001846133a7565b811015611e2857848181518110611df157611df1612f32565b6020026020010151828281518110611e0b57611e0b612f32565b602090810291909101015280611e2081612f5e565b915050611dcd565b5060015b838111610511578082611e406001866133a7565b81518110611e5057611e50612f32565b6020026020010181815250506000806000611e6d89866001612359565b6007805460018082019092557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68801849055600880548083019091557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b03851617905560098054918201815560005281519396509194509250611f2c917f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af909101906020840190612a44565b505050508080611f3b90612f5e565b915050611e2c565b600060606000806000611f5888886001612359565b9250925092506003548314611fcc5760405162461bcd60e51b815260206004820152603460248201527f54617267657420626c6f636b636861696e20696420646f6573206e6f74206d616044820152731d18da081b5e48189b1bd8dad8da185a5b881a5960621b60648201526084016102b1565b60008088516001148015611ffa575088600081518110611fee57611fee612f32565b60200260200101516000145b61201f5760006120098a61257e565b90506120178b826000612359565b509093509150505b6000612036848a85856001600160a01b0316612761565b905060006060866001600160a01b031683604051612054919061379e565b6000604051808303816000865af19150503d8060008114612091576040519150601f19603f3d011682016040523d82523d6000602084013e612096565b606091505b509092509050816120e1577f38e7ccc4b02b2da681f96e62aef89b5c6d4115f501f8d42430bb2f5f2fa981a66120cb826127b3565b6040516120d891906137ba565b60405180910390a15b600b54600a541461213657600a54600b546040517fce3bac95f99adf24dc6d7d8a7264b6c40b211c40e0f79a78482298c0867fae9b9261212992908252602082015260400190565b60405180910390a1600091505b600d5460ff166121465781612149565b60005b9d909c509a5050505050505050505050565b61216760076000612a05565b61217360086000612a05565b61217f60096000612a26565b600660009055600c60006121939190612a05565b61219f600a6000612a26565b6000600b55600d5460ff1615611b3457600d805460ff19169055565b600d5460ff1615611b2057600d805460ff19169055600660009055600c6000611b349190612a05565b6000878152600160205260409020546001600160a01b0316806122575760405162461bcd60e51b815260206004820152602560248201527f4e6f207265676973746572656420766572696669657220666f7220626c6f636b60448201526431b430b4b760d91b60648201526084016102b1565b6000888152600260205260409020546001600160a01b038881169116146122ce5760405162461bcd60e51b815260206004820152602560248201527f44617461206e6f7420656d697474656420627920617070726f76656420636f6e6044820152641d1c9858dd60da1b60648201526084016102b1565b600088888888886040516020016122e99594939291906137cd565b60408051601f198184030181529082905263260e748160e11b825291506001600160a01b03831690634c1ce9029061232d908c908b9086908a908a90600401613807565b60006040518083038186803b15801561234557600080fd5b505afa158015611a77573d6000803e3d6000fd5b60008060606000805b8651811015612473576000806123788a85612812565b905060ff81166123fe576001895161239091906133a7565b83146123f95760405162461bcd60e51b815260206004820152603260248201527f52656163686564206c6561662066756e6374696f6e206275742074686572652060448201527134b99036b7b9329031b0b636103830ba341760711b60648201526084016102b1565b612452565b600089848151811061241257612412612f32565b602002602001015190506124488b600160048461242f9190613839565b6124399089613258565b6124439190613258565b612878565b63ffffffff169250505b61245c8285613258565b93505050808061246b90612f5e565b915050612362565b50856001875161248391906133a7565b8151811061249357612493612f32565b60200260200101516000146124f45760006124ae8883612812565b905060ff8116156124e45760006124ca89612443600186613258565b63ffffffff1690506124dc8184613258565b9250506124f2565b6124ef600183613258565b91505b505b6124fe87826115ab565b935061250b602082613258565b905061251a8782016014015190565b925084156125615761252d601482613258565b9050600061253b88836128de565b9050612548600283613258565b915061255988838361ffff16612944565b925050612574565b6040518060200160405280600081525091505b5093509350939050565b80516060908190836125916001836133a7565b815181106125a1576125a1612f32565b602002602001015160001461268257806001600160401b038111156125c8576125c8613002565b6040519080825280602002602001820160405280156125f1578160200160208202803683370190505b50915060005b6126026001836133a7565b8110156126525784818151811061261b5761261b612f32565b602002602001015183828151811061263557612635612f32565b60209081029190910101528061264a81612f5e565b9150506125f7565b506000826126616001846133a7565b8151811061267157612671612f32565b60200260200101818152505061275a565b61268d6001826133a7565b6001600160401b038111156126a4576126a4613002565b6040519080825280602002602001820160405280156126cd578160200160208202803683370190505b50915060005b6126de6002836133a7565b81101561272e578481815181106126f7576126f7612f32565b602002602001015183828151811061271157612711612f32565b60209081029190910101528061272681612f5e565b9150506126d3565b5060008261273d6002846133a7565b8151811061274d5761274d612f32565b6020026020010181815250505b5092915050565b60408051602081018590528082018490526060808201849052825180830382018152608083019093529161279a9187919060a001613858565b6040516020818303038152906040529050949350505050565b60606044825110156127f857505060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c79000000602082015290565b600482019150818060200190518101906116119190613887565b600061281f826001613258565b8351101561286f5760405162461bcd60e51b815260206004820152601c60248201527f736c6963696e67206f7574206f662072616e6765202875696e7438290000000060448201526064016102b1565b50016001015190565b6000612885826004613258565b835110156128d55760405162461bcd60e51b815260206004820152601d60248201527f736c6963696e67206f7574206f662072616e6765202875696e7433322900000060448201526064016102b1565b50016004015190565b60006128eb826002613258565b8351101561293b5760405162461bcd60e51b815260206004820152601d60248201527f736c6963696e67206f7574206f662072616e6765202875696e7431362900000060448201526064016102b1565b50016002015190565b60606129508284613258565b845110156129955760405162461bcd60e51b815260206004820152601260248201527152656164206f7574206f6620626f756e647360701b60448201526064016102b1565b6060821580156129b0576040519150602082016040526129fa565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156129e95780518352602092830192016129d1565b5050858452601f01601f1916604052505b5090505b9392505050565b5080546000825590600052602060002090810190612a239190612ac8565b50565b5080546000825590600052602060002090810190612a239190612add565b828054612a509061350c565b90600052602060002090601f016020900481019282612a725760008555612ab8565b82601f10612a8b57805160ff1916838001178555612ab8565b82800160010185558215612ab8579182015b82811115612ab8578251825591602001919060010190612a9d565b50612ac4929150612ac8565b5090565b5b80821115612ac45760008155600101612ac9565b80821115612ac4576000612af18282612afa565b50600101612add565b508054612b069061350c565b6000825580601f10612b16575050565b601f016020900490600052602060002090810190612a239190612ac8565b6001600160a01b0381168114612a2357600080fd5b60008060408385031215612b5c57600080fd5b823591506020830135612b6e81612b34565b809150509250929050565b600060208284031215612b8b57600080fd5b81356129fe81612b34565b600060208284031215612ba857600080fd5b5035919050565b60008083601f840112612bc157600080fd5b5081356001600160401b03811115612bd857600080fd5b602083019150836020828501011115612bf057600080fd5b9250929050565b60008060008060608587031215612c0d57600080fd5b843593506020850135612c1f81612b34565b925060408501356001600160401b03811115612c3a57600080fd5b612c4687828801612baf565b95989497509550505050565b60008083601f840112612c6457600080fd5b5081356001600160401b03811115612c7b57600080fd5b6020830191508360208260051b8501011115612bf057600080fd5b60008060008060008060008060008060a08b8d031215612cb557600080fd5b8a356001600160401b0380821115612ccc57600080fd5b612cd88e838f01612c52565b909c509a5060208d0135915080821115612cf157600080fd5b612cfd8e838f01612c52565b909a50985060408d0135915080821115612d1657600080fd5b612d228e838f01612c52565b909850965060608d0135915080821115612d3b57600080fd5b612d478e838f01612c52565b909650945060808d0135915080821115612d6057600080fd5b50612d6d8d828e01612c52565b915080935050809150509295989b9194979a5092959850565b60008060008060608587031215612d9c57600080fd5b843593506020850135925060408501356001600160401b03811115612c3a57600080fd5b60008060008060008060008060008060008060c08d8f031215612de257600080fd5b6001600160401b038d351115612df757600080fd5b612e048e8e358f01612c52565b909c509a506001600160401b0360208e01351115612e2157600080fd5b612e318e60208f01358f01612c52565b909a5098506001600160401b0360408e01351115612e4e57600080fd5b612e5e8e60408f01358f01612c52565b90985096506001600160401b0360608e01351115612e7b57600080fd5b612e8b8e60608f01358f01612c52565b90965094506001600160401b0360808e01351115612ea857600080fd5b612eb88e60808f01358f01612c52565b90945092506001600160401b0360a08e01351115612ed557600080fd5b612ee58e60a08f01358f01612c52565b81935080925050509295989b509295989b509295989b565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415612f7257612f72612f48565b5060010190565b6000808335601e19843603018112612f9057600080fd5b8301803591506001600160401b03821115612faa57600080fd5b602001915036819003821315612bf057600080fd5b8015158114612a2357600080fd5b8035612fd881612fbf565b919050565b60008060408385031215612ff057600080fd5b823591506020830135612b6e81612fbf565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561304057613040613002565b604052919050565b60006001600160401b0382111561306157613061613002565b5060051b60200190565b600082601f83011261307c57600080fd5b8135602061309161308c83613048565b613018565b82815260059290921b840181019181810190868411156130b057600080fd5b8286015b848110156130d45780356130c781612b34565b83529183019183016130b4565b509695505050505050565b60006001600160401b038211156130f8576130f8613002565b50601f01601f191660200190565b600082601f83011261311757600080fd5b813561312561308c826130df565b81815284602083860101111561313a57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c0878903121561317057600080fd5b86359550602080880135955060408801356001600160401b038082111561319657600080fd5b818a0191508a601f8301126131aa57600080fd5b81356131b861308c82613048565b81815260059190911b8301840190848101908d8311156131d757600080fd5b938501935b828510156131f5578435825293850193908501906131dc565b9850505060608a013592508083111561320d57600080fd5b6132198b848c0161306b565b955061322760808b01612fcd565b945060a08a013592508083111561323d57600080fd5b505061324b89828a01613106565b9150509295509295509295565b6000821982111561326b5761326b612f48565b500190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b85815260018060a01b03851660208201528360408201526080606082015260006132c7608083018486613270565b979650505050505050565b600080600080608085870312156132e857600080fd5b8435935060208501356132fa81612b34565b92506040850135915060608501356001600160401b0381111561331c57600080fd5b61332887828801613106565b91505092959194509250565b600061334261308c84613048565b80848252602080830192508560051b85013681111561336057600080fd5b855b8181101561339b5780356001600160401b038111156133815760008081fd5b61338d36828a01613106565b865250938201938201613362565b50919695505050505050565b6000828210156133b9576133b9612f48565b500390565b8481526020810184905260006001600160fb1b038311156133de57600080fd5b8260051b808560408501376000920160400191825250949350505050565b60005b838110156134175781810151838201526020016133ff565b83811115613426576000848401525b50505050565b600081518084526134448160208601602086016133fc565b601f01601f19169290920160200192915050565b87815260006020888184015260c060408401528660c084015260018060fb1b0387111561348457600080fd5b8660051b808960e086013760e0908401848103820160608601528754918101829052600088815283812092909161010001905b808310156134e05783546001600160a01b031682526001938401939290920191908401906134b7565b50871515608087015285810360a08701526134fb818861342c565b9d9c50505050505050505050505050565b600181811c9082168061352057607f821691505b6020821081141561354157634e487b7160e01b600052602260045260246000fd5b50919050565b878152602081018790526001600160a01b0386811660408301528516606082015260c0608082018190526000906135809083018661342c565b82810360a0840152613593818587613270565b9a9950505050505050505050565b8581526001600160a01b03851660208201526080604082018190526000906135cc9083018587613270565b82810360608401526135de818561342c565b98975050505050505050565b600082601f8301126135fb57600080fd5b8151602061360b61308c83613048565b82815260059290921b8401810191818101908684111561362a57600080fd5b8286015b848110156130d457805161364181612b34565b835291830191830161362e565b8051612fd881612fbf565b600061366761308c846130df565b905082815283838301111561367b57600080fd5b6129fe8360208301846133fc565b600082601f83011261369a57600080fd5b6129fe83835160208501613659565b60008060008060008060c087890312156136c257600080fd5b86519550602080880151955060408801516001600160401b03808211156136e857600080fd5b818a0191508a601f8301126136fc57600080fd5b815161370a61308c82613048565b81815260059190911b8301840190848101908d83111561372957600080fd5b938501935b828510156137475784518252938501939085019061372e565b60608d0151909950945050508083111561376057600080fd5b61376c8b848c016135ea565b955061377a60808b0161364e565b945060a08a015192508083111561379057600080fd5b505061324b89828a01613689565b600082516137b08184602087016133fc565b9190910192915050565b6020815260006129fe602083018461342c565b8581526bffffffffffffffffffffffff198560601b1660208201528360348201528183605483013760009101605401908152949350505050565b858152846020820152608060408201526000613826608083018661342c565b82810360608401526135de818587613270565b600081600019048311821515161561385357613853612f48565b500290565b6000835161386a8184602088016133fc565b83519083019061387e8183602088016133fc565b01949350505050565b60006020828403121561389957600080fd5b81516001600160401b038111156138af57600080fd5b8201601f810184136138c057600080fd5b6104418482516020840161365956fea2646970667358221220bb6e1d646dd6396e6223bcfb00c967957a4d09b0c3083185858acc1c6f6604ca64736f6c63430008090033"; public static final String FUNC_ACTIVECALLCROSSCHAINROOTTXID = "activeCallCrosschainRootTxId"; diff --git a/functioncall/gpact/src/test/java/net/consensys/gpact/cbc/calltree/soliditywrappers/CallExecutionTreeTest.java b/functioncall/gpact/src/test/java/net/consensys/gpact/cbc/calltree/soliditywrappers/CallExecutionTreeTest.java index 432d4a4b..81d6d3e9 100644 --- a/functioncall/gpact/src/test/java/net/consensys/gpact/cbc/calltree/soliditywrappers/CallExecutionTreeTest.java +++ b/functioncall/gpact/src/test/java/net/consensys/gpact/cbc/calltree/soliditywrappers/CallExecutionTreeTest.java @@ -30,7 +30,7 @@ */ @SuppressWarnings("rawtypes") public class CallExecutionTreeTest extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b506107b6806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063ac23902614610030575b600080fd5b61004361003e366004610580565b61005b565b60405161005293929190610638565b60405180910390f35b600080606061006c85856001610079565b9250925092509250925092565b60008060606000805b8651811015610198576000806100988a856102a3565b905060ff811661012357600189516100b0919061070c565b831461011e5760405162461bcd60e51b815260206004820152603260248201527f52656163686564206c6561662066756e6374696f6e206275742074686572652060448201527134b99036b7b9329031b0b636103830ba341760711b60648201526084015b60405180910390fd5b610177565b600089848151811061013757610137610754565b6020026020010151905061016d8b600160048461015491906106ed565b61015e90896106d5565b61016891906106d5565b610309565b63ffffffff169250505b61018182856106d5565b93505050808061019090610723565b915050610082565b5085600187516101a8919061070c565b815181106101b8576101b8610754565b60200260200101516000146102195760006101d388836102a3565b905060ff8116156102095760006101ef896101686001866106d5565b63ffffffff16905061020181846106d5565b925050610217565b6102146001836106d5565b91505b505b610223878261036f565b93506102306020826106d5565b905061023f8782016014015190565b92508415610286576102526014826106d5565b9050600061026088836103d5565b905061026d6002836106d5565b915061027e88838361ffff1661043b565b925050610299565b6040518060200160405280600081525091505b5093509350939050565b60006102b08260016106d5565b835110156103005760405162461bcd60e51b815260206004820152601c60248201527f736c6963696e67206f7574206f662072616e6765202875696e743829000000006044820152606401610115565b50016001015190565b60006103168260046106d5565b835110156103665760405162461bcd60e51b815260206004820152601d60248201527f736c6963696e67206f7574206f662072616e6765202875696e743332290000006044820152606401610115565b50016004015190565b600061037c8260206106d5565b835110156103cc5760405162461bcd60e51b815260206004820152601e60248201527f736c6963696e67206f7574206f662072616e6765202875696e743235362900006044820152606401610115565b50016020015190565b60006103e28260026106d5565b835110156104325760405162461bcd60e51b815260206004820152601d60248201527f736c6963696e67206f7574206f662072616e6765202875696e743136290000006044820152606401610115565b50016002015190565b606061044782846106d5565b8451101561048c5760405162461bcd60e51b815260206004820152601260248201527152656164206f7574206f6620626f756e647360701b6044820152606401610115565b6060821580156104a7576040519150602082016040526104f1565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156104e05780518352602092830192016104c8565b5050858452601f01601f1916604052505b50949350505050565b600082601f83011261050b57600080fd5b8135602067ffffffffffffffff8211156105275761052761076a565b8160051b6105368282016106a4565b83815282810190868401838801850189101561055157600080fd5b600093505b85841015610574578035835260019390930192918401918401610556565b50979650505050505050565b6000806040838503121561059357600080fd5b823567ffffffffffffffff808211156105ab57600080fd5b818501915085601f8301126105bf57600080fd5b81356020828211156105d3576105d361076a565b6105e5601f8301601f191682016106a4565b82815288828487010111156105f957600080fd5b8282860183830137600092810182019290925290945085013591508082111561062157600080fd5b5061062e858286016104fa565b9150509250929050565b8381526000602060018060a01b0385168184015260606040840152835180606085015260005b8181101561067a5785810183015185820160800152820161065e565b8181111561068c576000608083870101525b50601f01601f19169290920160800195945050505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156106cd576106cd61076a565b604052919050565b600082198211156106e8576106e861073e565b500190565b60008160001904831182151516156107075761070761073e565b500290565b60008282101561071e5761071e61073e565b500390565b60006000198214156107375761073761073e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212207cd1a9c54792ebea58b140b32da76418876285d822985534e6325f1f1155dc8064736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b506107b0806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063ac23902614610030575b600080fd5b61004361003e3660046105c1565b61005b565b60405161005293929190610679565b60405180910390f35b600080606061006c85856001610079565b9250925092509250925092565b60008060606000805b8651811015610198576000806100988a856102a3565b905060ff811661012357600189516100b091906106fb565b831461011e5760405162461bcd60e51b815260206004820152603260248201527f52656163686564206c6561662066756e6374696f6e206275742074686572652060448201527134b99036b7b9329031b0b636103830ba341760711b60648201526084015b60405180910390fd5b610177565b600089848151811061013757610137610712565b6020026020010151905061016d8b60016004846101549190610728565b61015e9089610747565b6101689190610747565b610309565b63ffffffff169250505b6101818285610747565b9350505080806101909061075f565b915050610082565b5085600187516101a891906106fb565b815181106101b8576101b8610712565b60200260200101516000146102195760006101d388836102a3565b905060ff8116156102095760006101ef89610168600186610747565b63ffffffff1690506102018184610747565b925050610217565b610214600183610747565b91505b505b610223878261036f565b9350610230602082610747565b905061023f8782016014015190565b9250841561028657610252601482610747565b9050600061026088836103d5565b905061026d600283610747565b915061027e88838361ffff1661043b565b925050610299565b6040518060200160405280600081525091505b5093509350939050565b60006102b0826001610747565b835110156103005760405162461bcd60e51b815260206004820152601c60248201527f736c6963696e67206f7574206f662072616e6765202875696e743829000000006044820152606401610115565b50016001015190565b6000610316826004610747565b835110156103665760405162461bcd60e51b815260206004820152601d60248201527f736c6963696e67206f7574206f662072616e6765202875696e743332290000006044820152606401610115565b50016004015190565b600061037c826020610747565b835110156103cc5760405162461bcd60e51b815260206004820152601e60248201527f736c6963696e67206f7574206f662072616e6765202875696e743235362900006044820152606401610115565b50016020015190565b60006103e2826002610747565b835110156104325760405162461bcd60e51b815260206004820152601d60248201527f736c6963696e67206f7574206f662072616e6765202875696e743136290000006044820152606401610115565b50016002015190565b60606104478284610747565b8451101561048c5760405162461bcd60e51b815260206004820152601260248201527152656164206f7574206f6620626f756e647360701b6044820152606401610115565b6060821580156104a7576040519150602082016040526104f1565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156104e05780518352602092830192016104c8565b5050858452601f01601f1916604052505b50949350505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610539576105396104fa565b604052919050565b600082601f83011261055257600080fd5b8135602067ffffffffffffffff82111561056e5761056e6104fa565b8160051b61057d828201610510565b928352848101820192828101908785111561059757600080fd5b83870192505b848310156105b65782358252918301919083019061059d565b979650505050505050565b600080604083850312156105d457600080fd5b823567ffffffffffffffff808211156105ec57600080fd5b818501915085601f83011261060057600080fd5b8135602082821115610614576106146104fa565b610626601f8301601f19168201610510565b828152888284870101111561063a57600080fd5b8282860183830137600092810182019290925290945085013591508082111561066257600080fd5b5061066f85828601610541565b9150509250929050565b8381526000602060018060a01b0385168184015260606040840152835180606085015260005b818110156106bb5785810183015185820160800152820161069f565b818111156106cd576000608083870101525b50601f01601f19169290920160800195945050505050565b634e487b7160e01b600052601160045260246000fd5b60008282101561070d5761070d6106e5565b500390565b634e487b7160e01b600052603260045260246000fd5b6000816000190483118215151615610742576107426106e5565b500290565b6000821982111561075a5761075a6106e5565b500190565b6000600019821415610773576107736106e5565b506001019056fea264697066735822122017c763ebfb3ec842ac413acfad2972c76df39c94ef9d066c6f238abd59e3c2f864736f6c63430008090033"; public static final String FUNC_EXTRACTTARGETFROMCALLGRAPH1 = "extractTargetFromCallGraph1"; diff --git a/functioncall/interface/src/test/java/net/consensys/gpact/funcioninterfaces/soliditywrappers/HiddenParamDestTest.java b/functioncall/interface/src/test/java/net/consensys/gpact/funcioninterfaces/soliditywrappers/HiddenParamDestTest.java index a813493b..d41d9d07 100644 --- a/functioncall/interface/src/test/java/net/consensys/gpact/funcioninterfaces/soliditywrappers/HiddenParamDestTest.java +++ b/functioncall/interface/src/test/java/net/consensys/gpact/funcioninterfaces/soliditywrappers/HiddenParamDestTest.java @@ -37,7 +37,7 @@ */ @SuppressWarnings("rawtypes") public class HiddenParamDestTest extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b5060405161079538038061079583398101604081905261002f91610040565b60009290925560015560025561006e565b60008060006060848603121561005557600080fd5b8351925060208401519150604084015190509250925092565b6107188061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80635eb6d419116100665780635eb6d419146100db5780638963b2bc146100ee578063c572b74e14610101578063e087b8aa14610114578063e840e56f1461012757600080fd5b80631a763bc31461009857806342b93855146100ad57806347484183146100c0578063587136f3146100c8575b600080fd5b6100ab6100a6366004610655565b61012f565b005b6100ab6100bb3660046105ee565b6101a4565b6100ab6101c2565b6100ab6100d6366004610607565b610201565b6100ab6100e9366004610607565b610296565b6100ab6100fc366004610687565b610359565b6100ab61010f3660046105ee565b610364565b6100ab610122366004610629565b6103e1565b6100ab6103ec565b61013a838383610406565b8360111461017c5760405162461bcd60e51b815260206004820152600a602482015269115c9c9bdc8e8815985b60b21b60448201526064015b60405180910390fd5b604051600181526000805160206106c38339815191529060200160405180910390a150505050565b60008060006101b16104f3565b92509250925061013a838383610406565b6000806101cd61052b565b915091506101db8282610553565b604051600181526000805160206106c38339815191529060200160405180910390a15050565b60008061020c61052b565b9150915061021a8282610553565b836011146102585760405162461bcd60e51b815260206004820152600b60248201526a4572726f723a2056616c3160a81b6044820152606401610173565b8260171461017c5760405162461bcd60e51b815260206004820152600b60248201526a22b93937b91d102b30b61960a91b6044820152606401610173565b60008060006102a36104f3565b9250925092506102b4838383610406565b846011146102f25760405162461bcd60e51b815260206004820152600b60248201526a4572726f723a2056616c3160a81b6044820152606401610173565b836017146103305760405162461bcd60e51b815260206004820152600b60248201526a22b93937b91d102b30b61960a91b6044820152606401610173565b604051600181526000805160206106c38339815191529060200160405180910390a15050505050565b6102b4838383610406565b60008061036f61052b565b9150915061037d8282610553565b826011146103ba5760405162461bcd60e51b815260206004820152600a602482015269115c9c9bdc8e8815985b60b21b6044820152606401610173565b604051600181526000805160206106c38339815191529060200160405180910390a1505050565b6103ba838383610406565b60008060006103f96104f3565b9250925092506103ba8383835b60005483146104515760405162461bcd60e51b8152602060048201526017602482015276119a5c9cdd081c185c985b481b9bdd0818dbdc9c9958dd604a1b6044820152606401610173565b600154821461049d5760405162461bcd60e51b815260206004820152601860248201527714d958dbdb99081c185c985b481b9bdd0818dbdc9c9958dd60421b6044820152606401610173565b60025481146104ee5760405162461bcd60e51b815260206004820152601760248201527f546869726420706172616d206e6f7420636f72726563740000000000000000006044820152606401610173565b505050565b600080808036806020605f19820184376000519550602060408203600037600051945060208082036000376000519350505050909192565b6000808036806020603f19820184376000519450602080820360003760005193505050509091565b600054821461059e5760405162461bcd60e51b8152602060048201526017602482015276119a5c9cdd081c185c985b481b9bdd0818dbdc9c9958dd604a1b6044820152606401610173565b60015481146105ea5760405162461bcd60e51b815260206004820152601860248201527714d958dbdb99081c185c985b481b9bdd0818dbdc9c9958dd60421b6044820152606401610173565b5050565b60006020828403121561060057600080fd5b5035919050565b6000806040838503121561061a57600080fd5b50508035926020909101359150565b60008060006060848603121561063e57600080fd5b505081359360208301359350604090920135919050565b6000806000806080858703121561066b57600080fd5b5050823594602084013594506040840135936060013592509050565b600080600080600060a0868803121561069f57600080fd5b50508335956020850135955060408501359460608101359450608001359250905056fef7c630da6df086d6ed502f0fc2cb33c52db1e56e1aee68b2a159b6e011767377a264697066735822122009a0335b960b708f392b8d0dc60c804e0885ea52e97f9075def1480f477d445b64736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b5060405161079538038061079583398101604081905261002f91610040565b60009290925560015560025561006e565b60008060006060848603121561005557600080fd5b8351925060208401519150604084015190509250925092565b6107188061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80635eb6d419116100665780635eb6d419146100db5780638963b2bc146100ee578063c572b74e14610101578063e087b8aa14610114578063e840e56f1461012757600080fd5b80631a763bc31461009857806342b93855146100ad57806347484183146100c0578063587136f3146100c8575b600080fd5b6100ab6100a63660046105ee565b61012f565b005b6100ab6100bb366004610620565b6101a4565b6100ab6101c2565b6100ab6100d6366004610639565b610201565b6100ab6100e9366004610639565b610296565b6100ab6100fc36600461065b565b610359565b6100ab61010f366004610620565b610364565b6100ab610122366004610696565b6103e1565b6100ab6103ec565b61013a838383610406565b8360111461017c5760405162461bcd60e51b815260206004820152600a602482015269115c9c9bdc8e8815985b60b21b60448201526064015b60405180910390fd5b604051600181526000805160206106c38339815191529060200160405180910390a150505050565b60008060006101b16104f3565b92509250925061013a838383610406565b6000806101cd61052b565b915091506101db8282610553565b604051600181526000805160206106c38339815191529060200160405180910390a15050565b60008061020c61052b565b9150915061021a8282610553565b836011146102585760405162461bcd60e51b815260206004820152600b60248201526a4572726f723a2056616c3160a81b6044820152606401610173565b8260171461017c5760405162461bcd60e51b815260206004820152600b60248201526a22b93937b91d102b30b61960a91b6044820152606401610173565b60008060006102a36104f3565b9250925092506102b4838383610406565b846011146102f25760405162461bcd60e51b815260206004820152600b60248201526a4572726f723a2056616c3160a81b6044820152606401610173565b836017146103305760405162461bcd60e51b815260206004820152600b60248201526a22b93937b91d102b30b61960a91b6044820152606401610173565b604051600181526000805160206106c38339815191529060200160405180910390a15050505050565b6102b4838383610406565b60008061036f61052b565b9150915061037d8282610553565b826011146103ba5760405162461bcd60e51b815260206004820152600a602482015269115c9c9bdc8e8815985b60b21b6044820152606401610173565b604051600181526000805160206106c38339815191529060200160405180910390a1505050565b6103ba838383610406565b60008060006103f96104f3565b9250925092506103ba8383835b60005483146104515760405162461bcd60e51b8152602060048201526017602482015276119a5c9cdd081c185c985b481b9bdd0818dbdc9c9958dd604a1b6044820152606401610173565b600154821461049d5760405162461bcd60e51b815260206004820152601860248201527714d958dbdb99081c185c985b481b9bdd0818dbdc9c9958dd60421b6044820152606401610173565b60025481146104ee5760405162461bcd60e51b815260206004820152601760248201527f546869726420706172616d206e6f7420636f72726563740000000000000000006044820152606401610173565b505050565b600080808036806020605f19820184376000519550602060408203600037600051945060208082036000376000519350505050909192565b6000808036806020603f19820184376000519450602080820360003760005193505050509091565b600054821461059e5760405162461bcd60e51b8152602060048201526017602482015276119a5c9cdd081c185c985b481b9bdd0818dbdc9c9958dd604a1b6044820152606401610173565b60015481146105ea5760405162461bcd60e51b815260206004820152601860248201527714d958dbdb99081c185c985b481b9bdd0818dbdc9c9958dd60421b6044820152606401610173565b5050565b6000806000806080858703121561060457600080fd5b5050823594602084013594506040840135936060013592509050565b60006020828403121561063257600080fd5b5035919050565b6000806040838503121561064c57600080fd5b50508035926020909101359150565b600080600080600060a0868803121561067357600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000806000606084860312156106ab57600080fd5b50508135936020830135935060409092013591905056fef7c630da6df086d6ed502f0fc2cb33c52db1e56e1aee68b2a159b6e011767377a2646970667358221220133b91382e24a6a7a19653378ab20cbe9f8f78ad1ba118ba4f7c3b86af9eaede64736f6c63430008090033"; public static final String FUNC_FUNCNOPARAMS = "funcNoParams"; diff --git a/functioncall/interface/src/test/java/net/consensys/gpact/funcioninterfaces/soliditywrappers/HiddenParamSourceTest.java b/functioncall/interface/src/test/java/net/consensys/gpact/funcioninterfaces/soliditywrappers/HiddenParamSourceTest.java index 8dcb2ffc..89362fa4 100644 --- a/functioncall/interface/src/test/java/net/consensys/gpact/funcioninterfaces/soliditywrappers/HiddenParamSourceTest.java +++ b/functioncall/interface/src/test/java/net/consensys/gpact/funcioninterfaces/soliditywrappers/HiddenParamSourceTest.java @@ -37,7 +37,7 @@ */ @SuppressWarnings("rawtypes") public class HiddenParamSourceTest extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b5060405161078038038061078083398101604081905261002f91610061565b600080546001600160a01b0319166001600160a01b0395909516949094179093556001919091556002556003556100ac565b6000806000806080858703121561007757600080fd5b84516001600160a01b038116811461008e57600080fd5b60208601516040870151606090970151919890975090945092505050565b6106c5806100bb6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637ce388e6116100665780637ce388e6146100ba5780638b2acaf1146100c2578063d8ffd063146100ca578063dd494307146100d2578063f42438a0146100da57600080fd5b806302175e85146100985780633893d940146100a2578063452d9f25146100aa57806362a46188146100b2575b600080fd5b6100a06100e2565b005b6100a0610161565b6100a06101b7565b6100a06101eb565b6100a061023d565b6100a0610285565b6100a06102b7565b6100a06102dd565b6100a061032f565b600054600154600254600354604051631a763bc360e01b8152601160048201526024810193909352604483019190915260648201526001600160a01b0390911690631a763bc3906084015b600060405180830381600087803b15801561014757600080fd5b505af115801561015b573d6000803e3d6000fd5b50505050565b600054600154600254600354604051632258ecaf60e21b815260116004820152601760248201526044810193909352606483019190915260848201526001600160a01b0390911690638963b2bc9060a40161012d565b6040805160048152602481019091526020810180516001600160e01b031663e840e56f60e01b1790526101e990610355565b565b604051601160248201526101e9906362b95ba760e11b906044015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610405565b600054600154600254600354604051637043dc5560e11b81526004810193909352602483019190915260448201526001600160a01b039091169063e087b8aa9060640161012d565b6040805160048152602481019091526020810180516001600160e01b0316634748418360e01b1790526101e990610405565b60405160116024820152601760448201526101e99063587136f360e01b90606401610206565b604051601160248201526101e9906342b9385560e01b906044015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610355565b60405160116024820152601760448201526101e990635eb6d41960e01b906064016102f8565b600061036982600154600254600354610416565b6000805460405192935090916060916001600160a01b03169061038d9085906105cf565b6000604051808303816000865af19150503d80600081146103ca576040519150601f19603f3d011682016040523d82523d6000602084013e6103cf565b606091505b5090925090508161015b576103e381610468565b60405162461bcd60e51b81526004016103fc919061061a565b60405180910390fd5b6000610369826001546002546104cd565b60408051602081018590528082018490526060808201849052825180830382018152608083019093529161044f9187919060a0016105eb565b6040516020818303038152906040529050949350505050565b60606044825110156104ad57505060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c79000000602082015290565b600482019150818060200190518101906104c79190610522565b92915050565b60608383836040516020016104ec929190918252602082015260400190565b60408051601f198184030181529082905261050a92916020016105eb565b60405160208183030381529060405290509392505050565b60006020828403121561053457600080fd5b815167ffffffffffffffff8082111561054c57600080fd5b818401915084601f83011261056057600080fd5b81518181111561057257610572610679565b604051601f8201601f19908116603f0116810190838211818310171561059a5761059a610679565b816040528281528760208487010111156105b357600080fd5b6105c483602083016020880161064d565b979650505050505050565b600082516105e181846020870161064d565b9190910192915050565b600083516105fd81846020880161064d565b83519083019061061181836020880161064d565b01949350505050565b602081526000825180602084015261063981604085016020870161064d565b601f01601f19169190910160400192915050565b60005b83811015610668578181015183820152602001610650565b8381111561015b5750506000910152565b634e487b7160e01b600052604160045260246000fdfea2646970667358221220d4ac946ca6ffeae22978ac31737fbd0a3520a35d1b84aeca7350e341b3abd57464736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b5060405161078038038061078083398101604081905261002f91610061565b600080546001600160a01b0319166001600160a01b0395909516949094179093556001919091556002556003556100ac565b6000806000806080858703121561007757600080fd5b84516001600160a01b038116811461008e57600080fd5b60208601516040870151606090970151919890975090945092505050565b6106c5806100bb6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637ce388e6116100665780637ce388e6146100ba5780638b2acaf1146100c2578063d8ffd063146100ca578063dd494307146100d2578063f42438a0146100da57600080fd5b806302175e85146100985780633893d940146100a2578063452d9f25146100aa57806362a46188146100b2575b600080fd5b6100a06100e2565b005b6100a0610161565b6100a06101b7565b6100a06101eb565b6100a061023d565b6100a0610285565b6100a06102b7565b6100a06102dd565b6100a061032f565b600054600154600254600354604051631a763bc360e01b8152601160048201526024810193909352604483019190915260648201526001600160a01b0390911690631a763bc3906084015b600060405180830381600087803b15801561014757600080fd5b505af115801561015b573d6000803e3d6000fd5b50505050565b600054600154600254600354604051632258ecaf60e21b815260116004820152601760248201526044810193909352606483019190915260848201526001600160a01b0390911690638963b2bc9060a40161012d565b6040805160048152602481019091526020810180516001600160e01b031663e840e56f60e01b1790526101e990610355565b565b604051601160248201526101e9906362b95ba760e11b906044015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610405565b600054600154600254600354604051637043dc5560e11b81526004810193909352602483019190915260448201526001600160a01b039091169063e087b8aa9060640161012d565b6040805160048152602481019091526020810180516001600160e01b0316634748418360e01b1790526101e990610405565b60405160116024820152601760448201526101e99063587136f360e01b90606401610206565b604051601160248201526101e9906342b9385560e01b906044015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610355565b60405160116024820152601760448201526101e990635eb6d41960e01b906064016102f8565b600061036982600154600254600354610416565b6000805460405192935090916060916001600160a01b03169061038d90859061054e565b6000604051808303816000865af19150503d80600081146103ca576040519150601f19603f3d011682016040523d82523d6000602084013e6103cf565b606091505b5090925090508161015b576103e381610468565b60405162461bcd60e51b81526004016103fc919061056a565b60405180910390fd5b6000610369826001546002546104cd565b60408051602081018590528082018490526060808201849052825180830382018152608083019093529161044f9187919060a00161059d565b6040516020818303038152906040529050949350505050565b60606044825110156104ad57505060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c79000000602082015290565b600482019150818060200190518101906104c791906105e2565b92915050565b60608383836040516020016104ec929190918252602082015260400190565b60408051601f198184030181529082905261050a929160200161059d565b60405160208183030381529060405290509392505050565b60005b8381101561053d578181015183820152602001610525565b8381111561015b5750506000910152565b60008251610560818460208701610522565b9190910192915050565b6020815260008251806020840152610589816040850160208701610522565b601f01601f19169190910160400192915050565b600083516105af818460208801610522565b8351908301906105c3818360208801610522565b01949350505050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156105f457600080fd5b815167ffffffffffffffff8082111561060c57600080fd5b818401915084601f83011261062057600080fd5b815181811115610632576106326105cc565b604051601f8201601f19908116603f0116810190838211818310171561065a5761065a6105cc565b8160405282815287602084870101111561067357600080fd5b610684836020830160208801610522565b97965050505050505056fea2646970667358221220e719793a80616977ec7c359b4b194cfb05a9c61a18f7c20fefaf31565a35259264736f6c63430008090033"; public static final String FUNC_CALLFUNCNOPARAMS = "callFuncNoParams"; diff --git a/functioncall/sfc/src/main/java/net/consensys/gpact/sfccbc/SimpleCrossControlManager.java b/functioncall/sfc/src/main/java/net/consensys/gpact/sfccbc/SimpleCrossControlManager.java index 1ed16f0b..387826e2 100644 --- a/functioncall/sfc/src/main/java/net/consensys/gpact/sfccbc/SimpleCrossControlManager.java +++ b/functioncall/sfc/src/main/java/net/consensys/gpact/sfccbc/SimpleCrossControlManager.java @@ -89,7 +89,7 @@ public void addBlockchain(BlockchainId bcId, String cbcContractAddress, String v } catch (TransactionException ex) { // Crosschain Control Contract reverted String revertReason = RevertReason.decodeRevertReason(ex.getTransactionReceipt().get().getRevertReason()); - LOG.error(" Revert Reason: {}", revertReason); + LOG.error(" Revert Reason1: {}", revertReason); return new Tuple( ex.getTransactionReceipt().get(), null, @@ -121,7 +121,7 @@ public Tuple destinationBcCall(SignedEvent } catch (TransactionException ex) { // Crosschain Control Contract reverted String revertReason = RevertReason.decodeRevertReason(ex.getTransactionReceipt().get().getRevertReason()); - LOG.error(" Revert Reason1: {}", revertReason); + LOG.error(" Revert Reason2: {}", revertReason); return new Tuple( ex.getTransactionReceipt().get(), revertReason, @@ -141,7 +141,7 @@ public Tuple destinationBcCall(SignedEvent if (!failureEventResponses.isEmpty()) { // Application contract reverted // There will only be one failure event. - LOG.warn(" Revert Reason1: {}", failureEventResponses.get(0)._revertReason); + LOG.warn(" Revert Reason3: {}", failureEventResponses.get(0)._revertReason); return new Tuple( txR, failureEventResponses.get(0)._revertReason, diff --git a/functioncall/sfc/src/main/java/net/consensys/gpact/sfccbc/SimpleCrosschainExecutor.java b/functioncall/sfc/src/main/java/net/consensys/gpact/sfccbc/SimpleCrosschainExecutor.java index 2bdaf850..6963a1ba 100644 --- a/functioncall/sfc/src/main/java/net/consensys/gpact/sfccbc/SimpleCrosschainExecutor.java +++ b/functioncall/sfc/src/main/java/net/consensys/gpact/sfccbc/SimpleCrosschainExecutor.java @@ -37,7 +37,7 @@ public SimpleCrosschainExecutor(SimpleCrossControlManagerGroup crossControlManag this.crossControlManagerGroup = crossControlManagerGroup; } - public TransactionReceipt[] execute(BlockchainId sourceBcId, RemoteCall functionCall) throws Exception { + public Tuple execute(BlockchainId sourceBcId, RemoteCall functionCall) throws Exception { SimpleCrossControlManager cbcContract = this.crossControlManagerGroup.getCbcContract(sourceBcId); MessagingVerificationInterface messaging = this.crossControlManagerGroup.getMessageVerification(sourceBcId); @@ -48,7 +48,7 @@ public TransactionReceipt[] execute(BlockchainId sourceBcId, RemoteCall(new TransactionReceipt[] {txr1}, "Source blockchain transaction failed", false); } SignedEvent signedCrossCallEvent = messaging.getSignedEvent( @@ -62,7 +62,10 @@ public TransactionReceipt[] execute(BlockchainId sourceBcId, RemoteCall result2 = cbcContract.destinationBcCall(signedCrossCallEvent); - return new TransactionReceipt[]{txr1, result2.getFirst()}; + return new Tuple( + new TransactionReceipt[]{txr1, result2.getFirst()}, + result2.getSecond(), + result2.getThird()); } diff --git a/functioncall/sfc/src/main/java/net/consensys/gpact/sfccbc/soliditywrappers/SimpleCrosschainControl.java b/functioncall/sfc/src/main/java/net/consensys/gpact/sfccbc/soliditywrappers/SimpleCrosschainControl.java index efc62fe5..9f59de72 100644 --- a/functioncall/sfc/src/main/java/net/consensys/gpact/sfccbc/soliditywrappers/SimpleCrosschainControl.java +++ b/functioncall/sfc/src/main/java/net/consensys/gpact/sfccbc/soliditywrappers/SimpleCrosschainControl.java @@ -41,7 +41,7 @@ */ @SuppressWarnings("rawtypes") public class SimpleCrosschainControl extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b5060405161117938038061117983398101604081905261002f9161007e565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506005919091556003556100a2565b6000806040838503121561009157600080fd5b505080516020909101519092909150565b6110c8806100b16000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063715018a611610071578063715018a61461011b5780638da5cb5b1461012357806392b2c3351461013e578063b283209614610151578063f2fde38b14610164578063f51a72d81461017757600080fd5b80630a3ef1f2146100ae5780631101b8f0146100e157806319836dc7146100ea57806340884052146100ff578063439160df14610112575b600080fd5b6100ce6100bc366004610a3e565b60046020526000908152604090205481565b6040519081526020015b60405180910390f35b6100ce60035481565b6100fd6100f8366004610b8f565b61018a565b005b6100fd61010d366004610c1b565b6101eb565b6100ce60055481565b6100fd610428565b6000546040516001600160a01b0390911681526020016100d8565b6100fd61014c366004610bbf565b61049c565b6100fd61015f366004610b8f565b61051d565b6100fd610172366004610a1a565b610610565b6100fd610185366004610ca7565b6106fa565b6000546001600160a01b031633146101bd5760405162461bcd60e51b81526004016101b490610f09565b60405180910390fd5b60009182526002602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b61021a86867f59f736dc5e15c4b12526487502645403b0a4316d82eba7e9ecdc2a050c10ad2787878787610793565b600080808080606061022e898b018b610a57565b600086815260046020526040902054959b50939950919750955093509150156102995760405162461bcd60e51b815260206004820152601a60248201527f5472616e73616374696f6e20616c72656164792065786973747300000000000060448201526064016101b4565b4285106102e85760405162461bcd60e51b815260206004820181905260248201527f4576656e742074696d657374616d7020697320696e207468652066757475726560448201526064016101b4565b42600354866102f79190610fd5565b116103375760405162461bcd60e51b815260206004820152601060248201526f115d995b9d081a5cc81d1bdbc81bdb1960821b60448201526064016101b4565b6000868152600460205260409020859055600554831461035657600080fd5b600061036c828e876001600160a01b0316610917565b905060006060846001600160a01b03168360405161038a9190610de2565b6000604051808303816000865af19150503d80600081146103c7576040519150601f19603f3d011682016040523d82523d6000602084013e6103cc565b606091505b50909250905081610417577f38e7ccc4b02b2da681f96e62aef89b5c6d4115f501f8d42430bb2f5f2fa981a66104018261096c565b60405161040e9190610ef6565b60405180910390a15b505050505050505050505050505050565b6000546001600160a01b031633146104525760405162461bcd60e51b81526004016101b490610f09565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600042600554868686866040516020016104bb96959493929190610e67565b6040516020818303038152906040528051906020012090507f59f736dc5e15c4b12526487502645403b0a4316d82eba7e9ecdc2a050c10ad278142338888888860405161050e9796959493929190610ea8565b60405180910390a15050505050565b6000546001600160a01b031633146105475760405162461bcd60e51b81526004016101b490610f09565b8161058c5760405162461bcd60e51b8152602060048201526015602482015274125b9d985b1a5908189b1bd8dad8da185a5b881a59605a1b60448201526064016101b4565b6001600160a01b0381166105e25760405162461bcd60e51b815260206004820152601860248201527f496e76616c69642076657269666965722061646472657373000000000000000060448201526064016101b4565b60009182526001602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6000546001600160a01b0316331461063a5760405162461bcd60e51b81526004016101b490610f09565b6001600160a01b03811661069f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101b4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60005b8181101561077a5760008383838181106107195761071961104e565b90506020020135905060006004600083815260200190815260200160002054905042600354826107499190610fd5565b1115610765578015610765576000828152600460205260408120555b505080806107729061101d565b9150506106fd565b506107898888888888886101eb565b5050505050505050565b6000878152600160205260409020546001600160a01b0316806108065760405162461bcd60e51b815260206004820152602560248201527f4e6f207265676973746572656420766572696669657220666f7220626c6f636b60448201526431b430b4b760d91b60648201526084016101b4565b6000888152600260205260409020546001600160a01b0388811691161461087d5760405162461bcd60e51b815260206004820152602560248201527f44617461206e6f7420656d697474656420627920617070726f76656420636f6e6044820152641d1c9858dd60da1b60648201526084016101b4565b60008888888888604051602001610898959493929190610e2d565b60408051601f198184030181529082905263260e748160e11b825291506001600160a01b03831690634c1ce902906108dc908c908b9086908a908a90600401610f3e565b60006040518083038186803b1580156108f457600080fd5b505afa158015610908573d6000803e3d6000fd5b50505050505050505050505050565b6060838383604051602001610936929190918252602082015260400190565b60408051601f19818403018152908290526109549291602001610dfe565b60405160208183030381529060405290509392505050565b60606044825110156109b157505060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c79000000602082015290565b600482019150818060200190518101906109cb9190610b18565b92915050565b60008083601f8401126109e357600080fd5b50813567ffffffffffffffff8111156109fb57600080fd5b602083019150836020828501011115610a1357600080fd5b9250929050565b600060208284031215610a2c57600080fd5b8135610a378161107a565b9392505050565b600060208284031215610a5057600080fd5b5035919050565b60008060008060008060c08789031215610a7057600080fd5b86359550602087013594506040870135610a898161107a565b9350606087013592506080870135610aa08161107a565b915060a087013567ffffffffffffffff811115610abc57600080fd5b8701601f81018913610acd57600080fd5b8035610ae0610adb82610fad565b610f7c565b8181528a6020838501011115610af557600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b600060208284031215610b2a57600080fd5b815167ffffffffffffffff811115610b4157600080fd5b8201601f81018413610b5257600080fd5b8051610b60610adb82610fad565b818152856020838501011115610b7557600080fd5b610b86826020830160208601610fed565b95945050505050565b60008060408385031215610ba257600080fd5b823591506020830135610bb48161107a565b809150509250929050565b60008060008060608587031215610bd557600080fd5b843593506020850135610be78161107a565b9250604085013567ffffffffffffffff811115610c0357600080fd5b610c0f878288016109d1565b95989497509550505050565b60008060008060008060808789031215610c3457600080fd5b863595506020870135610c468161107a565b9450604087013567ffffffffffffffff80821115610c6357600080fd5b610c6f8a838b016109d1565b90965094506060890135915080821115610c8857600080fd5b50610c9589828a016109d1565b979a9699509497509295939492505050565b60008060008060008060008060a0898b031215610cc357600080fd5b883597506020890135610cd58161107a565b9650604089013567ffffffffffffffff80821115610cf257600080fd5b610cfe8c838d016109d1565b909850965060608b0135915080821115610d1757600080fd5b610d238c838d016109d1565b909650945060808b0135915080821115610d3c57600080fd5b818b0191508b601f830112610d5057600080fd5b813581811115610d5f57600080fd5b8c60208260051b8501011115610d7457600080fd5b6020830194508093505050509295985092959890939650565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008151808452610dce816020860160208601610fed565b601f01601f19169290920160200192915050565b60008251610df4818460208701610fed565b9190910192915050565b60008351610e10818460208801610fed565b835190830190610e24818360208801610fed565b01949350505050565b8581526bffffffffffffffffffffffff198560601b1660208201528360348201528183605483013760009101605401908152949350505050565b8681528560208201528460408201526bffffffffffffffffffffffff198460601b166060820152818360748301376000910160740190815295945050505050565b878152602081018790526001600160a01b038681166040830152606082018690528416608082015260c060a08201819052600090610ee99083018486610d8d565b9998505050505050505050565b602081526000610a376020830184610db6565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b858152846020820152608060408201526000610f5d6080830186610db6565b8281036060840152610f70818587610d8d565b98975050505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610fa557610fa5611064565b604052919050565b600067ffffffffffffffff821115610fc757610fc7611064565b50601f01601f191660200190565b60008219821115610fe857610fe8611038565b500190565b60005b83811015611008578181015183820152602001610ff0565b83811115611017576000848401525b50505050565b600060001982141561103157611031611038565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461108f57600080fd5b5056fea2646970667358221220e8a51080a51ec44eb458d671a57da107b7463e00e0af435dbffea5a181952a6c64736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b506040516113b53803806113b583398101604081905261002f9161007e565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506005919091556003556100a2565b6000806040838503121561009157600080fd5b505080516020909101519092909150565b611304806100b16000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063715018a611610071578063715018a61461011b5780638da5cb5b1461012357806392b2c3351461013e578063b283209614610151578063f2fde38b14610164578063f51a72d81461017757600080fd5b80630a3ef1f2146100ae5780631101b8f0146100e157806319836dc7146100ea57806340884052146100ff578063439160df14610112575b600080fd5b6100ce6100bc366004610b4f565b60046020526000908152604090205481565b6040519081526020015b60405180910390f35b6100ce60035481565b6100fd6100f8366004610b80565b61018a565b005b6100fd61010d366004610bf9565b6101eb565b6100ce60055481565b6100fd610428565b6000546040516001600160a01b0390911681526020016100d8565b6100fd61014c366004610c85565b61049c565b6100fd61015f366004610b80565b61051d565b6100fd610172366004610ce1565b610610565b6100fd610185366004610cfe565b6106fa565b6000546001600160a01b031633146101bd5760405162461bcd60e51b81526004016101b490610de4565b60405180910390fd5b60009182526002602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b61021a86867f59f736dc5e15c4b12526487502645403b0a4316d82eba7e9ecdc2a050c10ad2787878787610793565b600080808080606061022e898b018b610e88565b600086815260046020526040902054959b50939950919750955093509150156102995760405162461bcd60e51b815260206004820152601a60248201527f5472616e73616374696f6e20616c72656164792065786973747300000000000060448201526064016101b4565b4285106102e85760405162461bcd60e51b815260206004820181905260248201527f4576656e742074696d657374616d7020697320696e207468652066757475726560448201526064016101b4565b42600354866102f79190610f5f565b116103375760405162461bcd60e51b815260206004820152601060248201526f115d995b9d081a5cc81d1bdbc81bdb1960821b60448201526064016101b4565b6000868152600460205260409020859055600554831461035657600080fd5b600061036c828e876001600160a01b0316610917565b905060006060846001600160a01b03168360405161038a9190610fa7565b6000604051808303816000865af19150503d80600081146103c7576040519150601f19603f3d011682016040523d82523d6000602084013e6103cc565b606091505b50909250905081610417577f38e7ccc4b02b2da681f96e62aef89b5c6d4115f501f8d42430bb2f5f2fa981a66104018261096c565b60405161040e9190610fef565b60405180910390a15b505050505050505050505050505050565b6000546001600160a01b031633146104525760405162461bcd60e51b81526004016101b490610de4565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600042600554868686866040516020016104bb96959493929190611002565b6040516020818303038152906040528051906020012090507f59f736dc5e15c4b12526487502645403b0a4316d82eba7e9ecdc2a050c10ad278142338888888860405161050e979695949392919061106c565b60405180910390a15050505050565b6000546001600160a01b031633146105475760405162461bcd60e51b81526004016101b490610de4565b8161058c5760405162461bcd60e51b8152602060048201526015602482015274125b9d985b1a5908189b1bd8dad8da185a5b881a59605a1b60448201526064016101b4565b6001600160a01b0381166105e25760405162461bcd60e51b815260206004820152601860248201527f496e76616c69642076657269666965722061646472657373000000000000000060448201526064016101b4565b60009182526001602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6000546001600160a01b0316331461063a5760405162461bcd60e51b81526004016101b490610de4565b6001600160a01b03811661069f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101b4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60005b8181101561077a576000838383818110610719576107196110ba565b90506020020135905060006004600083815260200190815260200160002054905042600354826107499190610f5f565b1115610765578015610765576000828152600460205260408120555b50508080610772906110d0565b9150506106fd565b506107898888888888886101eb565b5050505050505050565b6000878152600160205260409020546001600160a01b0316806108065760405162461bcd60e51b815260206004820152602560248201527f4e6f207265676973746572656420766572696669657220666f7220626c6f636b60448201526431b430b4b760d91b60648201526084016101b4565b6000888152600260205260409020546001600160a01b0388811691161461087d5760405162461bcd60e51b815260206004820152602560248201527f44617461206e6f7420656d697474656420627920617070726f76656420636f6e6044820152641d1c9858dd60da1b60648201526084016101b4565b600088888888886040516020016108989594939291906110eb565b60408051601f198184030181529082905263260e748160e11b825291506001600160a01b03831690634c1ce902906108dc908c908b9086908a908a90600401611125565b60006040518083038186803b1580156108f457600080fd5b505afa158015610908573d6000803e3d6000fd5b50505050505050505050505050565b6060838383604051602001610936929190918252602082015260400190565b60408051601f19818403018152908290526109549291602001611163565b60405160208183030381529060405290509392505050565b60606024825110156109b157505060408051808201909152601881527f52657665727420666f7220756e6b6e6f776e206572726f720000000000000000602082015290565b81516004909201916044118015610a0b576000838060200190518101906109d89190611192565b90506109e381610a26565b6040516020016109f391906111ab565b60405160208183030381529060405292505050919050565b82806020019051810190610a1f91906111da565b9392505050565b606081610a4a5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610a745780610a5e816110d0565b9150610a6d9050600a83611251565b9150610a4e565b60008167ffffffffffffffff811115610a8f57610a8f610e19565b6040519080825280601f01601f191660200182016040528015610ab9576020820181803683370190505b509050815b8515610b4657610acf600182611273565b90506000610ade600a88611251565b610ae990600a61128a565b610af39088611273565b610afe9060306112a9565b905060008160f81b905080848481518110610b1b57610b1b6110ba565b60200101906001600160f81b031916908160001a905350610b3d600a89611251565b97505050610abe565b50949350505050565b600060208284031215610b6157600080fd5b5035919050565b6001600160a01b0381168114610b7d57600080fd5b50565b60008060408385031215610b9357600080fd5b823591506020830135610ba581610b68565b809150509250929050565b60008083601f840112610bc257600080fd5b50813567ffffffffffffffff811115610bda57600080fd5b602083019150836020828501011115610bf257600080fd5b9250929050565b60008060008060008060808789031215610c1257600080fd5b863595506020870135610c2481610b68565b9450604087013567ffffffffffffffff80821115610c4157600080fd5b610c4d8a838b01610bb0565b90965094506060890135915080821115610c6657600080fd5b50610c7389828a01610bb0565b979a9699509497509295939492505050565b60008060008060608587031215610c9b57600080fd5b843593506020850135610cad81610b68565b9250604085013567ffffffffffffffff811115610cc957600080fd5b610cd587828801610bb0565b95989497509550505050565b600060208284031215610cf357600080fd5b8135610a1f81610b68565b60008060008060008060008060a0898b031215610d1a57600080fd5b883597506020890135610d2c81610b68565b9650604089013567ffffffffffffffff80821115610d4957600080fd5b610d558c838d01610bb0565b909850965060608b0135915080821115610d6e57600080fd5b610d7a8c838d01610bb0565b909650945060808b0135915080821115610d9357600080fd5b818b0191508b601f830112610da757600080fd5b813581811115610db657600080fd5b8c60208260051b8501011115610dcb57600080fd5b6020830194508093505050509295985092959890939650565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610e5857610e58610e19565b604052919050565b600067ffffffffffffffff821115610e7a57610e7a610e19565b50601f01601f191660200190565b60008060008060008060c08789031215610ea157600080fd5b86359550602087013594506040870135610eba81610b68565b9350606087013592506080870135610ed181610b68565b915060a087013567ffffffffffffffff811115610eed57600080fd5b8701601f81018913610efe57600080fd5b8035610f11610f0c82610e60565b610e2f565b8181528a6020838501011115610f2657600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b634e487b7160e01b600052601160045260246000fd5b60008219821115610f7257610f72610f49565b500190565b60005b83811015610f92578181015183820152602001610f7a565b83811115610fa1576000848401525b50505050565b60008251610fb9818460208701610f77565b9190910192915050565b60008151808452610fdb816020860160208601610f77565b601f01601f19169290920160200192915050565b602081526000610a1f6020830184610fc3565b8681528560208201528460408201526bffffffffffffffffffffffff198460601b166060820152818360748301376000910160740190815295945050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b878152602081018790526001600160a01b038681166040830152606082018690528416608082015260c060a082018190526000906110ad9083018486611043565b9998505050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006000198214156110e4576110e4610f49565b5060010190565b8581526bffffffffffffffffffffffff198560601b1660208201528360348201528183605483013760009101605401908152949350505050565b8581528460208201526080604082015260006111446080830186610fc3565b8281036060840152611157818587611043565b98975050505050505050565b60008351611175818460208801610f77565b835190830190611189818360208801610f77565b01949350505050565b6000602082840312156111a457600080fd5b5051919050565b6602830b734b19d160cd1b8152600082516111cd816007850160208701610f77565b9190910160070192915050565b6000602082840312156111ec57600080fd5b815167ffffffffffffffff81111561120357600080fd5b8201601f8101841361121457600080fd5b8051611222610f0c82610e60565b81815285602083850101111561123757600080fd5b611248826020830160208601610f77565b95945050505050565b60008261126e57634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561128557611285610f49565b500390565b60008160001904831182151516156112a4576112a4610f49565b500290565b600060ff821660ff84168060ff038211156112c6576112c6610f49565b01939250505056fea2646970667358221220e1f9d30d6f961127dc7c646a73304b477dd2381764c1986d871036b62c161bc864736f6c63430008090033"; public static final String FUNC_ADDREMOTECROSSCHAINCONTROL = "addRemoteCrosschainControl"; diff --git a/functioncall/sfc/src/main/solidity/SimpleCrosschainControl.sol b/functioncall/sfc/src/main/solidity/SimpleCrosschainControl.sol index e0dccb14..6a30030b 100644 --- a/functioncall/sfc/src/main/solidity/SimpleCrosschainControl.sol +++ b/functioncall/sfc/src/main/solidity/SimpleCrosschainControl.sol @@ -138,13 +138,47 @@ contract SimpleCrosschainControl is CrosschainFunctionCallInterface, CbcDecVer, // **************************** PRIVATE BELOW HERE *************************** function getRevertMsg(bytes memory _returnData) internal pure returns (string memory) { - // If the _res length is less than 68, then the transaction failed silently (without a revert message) - if (_returnData.length < 68) return 'Transaction reverted silently'; + // A string will be 4 bytes for the function selector + 32 bytes for string length + + // 32 bytes for first part of string. Hence, if the length is less than 68, then + // this is a panic. + // Another way of doing this would be to look for the function selectors for revert: + // "0x08c379a0" = keccak256("Error(string)" + // or panic: + // "0x4e487b71" = keccak256("Panic(uint256)" + if (_returnData.length < 36) return "Revert for unknown error"; + bool isPanic = _returnData.length < 68; assembly { - // Slice the sighash. + // Remove the function selector / sighash. _returnData := add(_returnData, 0x04) } + if (isPanic) { + uint256 errorCode = abi.decode(_returnData, (uint256)); + return string(abi.encodePacked("Panic: ", uint2str(errorCode))); + } return abi.decode(_returnData, (string)); // All that remains is the revert string } + + // TODO Move this to a utility sol file. + function uint2str(uint _i) internal pure returns (string memory _uintAsString) { + if (_i == 0) { + return "0"; + } + uint j = _i; + uint len; + while (j != 0) { + len++; + j /= 10; + } + bytes memory bstr = new bytes(len); + uint k = len; + while (_i != 0) { + k = k-1; + uint8 temp = (48 + uint8(_i - _i / 10 * 10)); + bytes1 b1 = bytes1(temp); + bstr[k] = b1; + _i /= 10; + } + return string(bstr); + } } \ No newline at end of file diff --git a/messaging/attestor-sign/src/main/java/net/consensys/gpact/attestorsign/soliditywrappers/AttestorSignRegistrar.java b/messaging/attestor-sign/src/main/java/net/consensys/gpact/attestorsign/soliditywrappers/AttestorSignRegistrar.java index 476e8619..647b9cd1 100644 --- a/messaging/attestor-sign/src/main/java/net/consensys/gpact/attestorsign/soliditywrappers/AttestorSignRegistrar.java +++ b/messaging/attestor-sign/src/main/java/net/consensys/gpact/attestorsign/soliditywrappers/AttestorSignRegistrar.java @@ -38,7 +38,7 @@ */ @SuppressWarnings("rawtypes") public class AttestorSignRegistrar extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506110a1806100616000396000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80638da5cb5b1161008c578063d4c0d34d11610066578063d4c0d34d146101d7578063ea13ec8b146101ea578063f2fde38b146101fd578063f5e232ea1461021057600080fd5b80638da5cb5b1461017b578063a64ce19914610196578063b9c36209146101c457600080fd5b8062ab2414146100d357806315a09825146100e85780633156d37c146100fb57806348bcbd2d1461010e578063715018a6146101605780638d7678fd14610168575b600080fd5b6100e66100e1366004610de3565b610234565b005b6100e66100f6366004610db7565b6102b5565b6100e6610109366004610db7565b610388565b61014b61011c366004610db7565b60008281526001602090815260408083206001600160a01b038516845260020190915290205460ff1692915050565b60405190151581526020015b60405180910390f35b6100e6610473565b6100e6610176366004610f18565b6104e7565b6000546040516001600160a01b039091168152602001610157565b6101b66101a4366004610d9e565b60009081526001602052604090205490565b604051908152602001610157565b6100e66101d2366004610f6b565b6105a5565b6100e66101e5366004610de3565b6105f4565b61014b6101f8366004610e18565b610645565b6100e661020b366004610d7c565b610924565b6101b661021e366004610d9e565b6000908152600160208190526040909120015490565b6000546001600160a01b031633146102675760405162461bcd60e51b815260040161025e90610fc0565b60405180910390fd5b6102718383610a0e565b6000838152600160208190526040822081015461028d91610ff5565b60008581526001602081905260409091200181905590506102af848284610ab0565b50505050565b6000546001600160a01b031633146102df5760405162461bcd60e51b815260040161025e90610fc0565b6000828152600160205260409020546103585760405162461bcd60e51b815260206004820152603560248201527f43616e206e6f7420616464207369676e657220666f7220626c6f636b636861696044820152741b881dda5d1a081e995c9bc81d1a1c995cda1bdb19605a1b606482015260840161025e565b6103628282610a0e565b600082815260016020819052604082200180549161037f83611024565b91905055505050565b6000546001600160a01b031633146103b25760405162461bcd60e51b815260040161025e90610fc0565b6103bc8282610b71565b600082815260016020819052604082208101546103d9919061100d565b6000848152600160205260409020549091508110156104585760405162461bcd60e51b815260206004820152603560248201527f50726f706f736564206e6577206e756d626572206f66207369676e65727320696044820152741cc81b195cdcc81d1a185b881d1a1c995cda1bdb19605a1b606482015260840161025e565b60009283526001602081905260409093209092019190915550565b6000546001600160a01b0316331461049d5760405162461bcd60e51b815260040161025e90610fc0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105115760405162461bcd60e51b815260040161025e90610fc0565b60005b8281101561055e5761054c8585858481811061053257610532611055565b90506020020160208101906105479190610d7c565b610a0e565b8061055681611024565b915050610514565b5060008481526001602081905260408220015461057c908490610ff5565b600086815260016020819052604090912001819055905061059e858284610ab0565b5050505050565b6000546001600160a01b031633146105cf5760405162461bcd60e51b815260040161025e90610fc0565b6105f082600160008581526020019081526020016000206001015483610ab0565b5050565b6000546001600160a01b0316331461061e5760405162461bcd60e51b815260040161025e90610fc0565b6106288383610b71565b6000838152600160208190526040822081015461028d919061100d565b60008988811461068e5760405162461bcd60e51b81526020600482015260146024820152730e6d2cea440d8cadccee8d040dad2e6dac2e8c6d60631b604482015260640161025e565b8087146106d45760405162461bcd60e51b81526020600482015260146024820152730e6d2cea640d8cadccee8d040dad2e6dac2e8c6d60631b604482015260640161025e565b80851461071a5760405162461bcd60e51b81526020600482015260146024820152730e6d2ceac40d8cadccee8d040dad2e6dac2e8c6d60631b604482015260640161025e565b60008d81526001602052604090205481101561076d5760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f756768207369676e65727360701b604482015260640161025e565b60005b818110156109105760008e8152600160205260408120600201908e8e8481811061079c5761079c611055565b90506020020160208101906107b19190610d7c565b6001600160a01b0316815260208101919091526040016000205460ff166108285760405162461bcd60e51b815260206004820152602560248201527f5369676e6572206e6f74207369676e657220666f72207468697320626c6f636b60448201526431b430b4b760d91b606482015260840161025e565b6108b28d8d8381811061083d5761083d611055565b90506020020160208101906108529190610d7c565b86868e8e8681811061086657610866611055565b905060200201358d8d8781811061087f5761087f611055565b905060200201358c8c8881811061089857610898611055565b90506020020160208101906108ad9190610f8d565b610c0f565b6108fe5760405162461bcd60e51b815260206004820152601860248201527f5369676e617475726520646964206e6f74207665726966790000000000000000604482015260640161025e565b8061090881611024565b915050610770565b5060019d9c50505050505050505050505050565b6000546001600160a01b0316331461094e5760405162461bcd60e51b815260040161025e90610fc0565b6001600160a01b0381166109b35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161025e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008281526001602090815260408083206001600160a01b038516845260020190915290205460ff1615610a7c5760405162461bcd60e51b81526020600482015260156024820152745369676e657220616c72656164792065786973747360581b604482015260640161025e565b60009182526001602081815260408085206001600160a01b039094168552600290930190529120805460ff19169091179055565b80821015610b0e5760405162461bcd60e51b815260206004820152602560248201527f4e756d626572206f66207369676e657273206c657373207468616e20746872656044820152641cda1bdb1960da1b606482015260840161025e565b80610b5b5760405162461bcd60e51b815260206004820152601960248201527f5468726573686f6c642063616e206e6f74206265207a65726f00000000000000604482015260640161025e565b6000928352600160205260409092209190915550565b60008281526001602090815260408083206001600160a01b038516845260020190915290205460ff16610bde5760405162461bcd60e51b815260206004820152601560248201527414da59db995c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015260640161025e565b60009182526001602090815260408084206001600160a01b039093168452600290920190529020805460ff19169055565b6000808686604051610c22929190610fb0565b604051809103902090508260ff16601b14158015610c4457508260ff16601c14155b15610c53576000915050610cc8565b60408051600081526020810180835283905260ff851691810191909152606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610ca6573d6000803e3d6000fd5b505050602060405103516001600160a01b0316886001600160a01b0316149150505b9695505050505050565b80356001600160a01b0381168114610ce957600080fd5b919050565b60008083601f840112610d0057600080fd5b50813567ffffffffffffffff811115610d1857600080fd5b6020830191508360208260051b8501011115610d3357600080fd5b9250929050565b60008083601f840112610d4c57600080fd5b50813567ffffffffffffffff811115610d6457600080fd5b602083019150836020828501011115610d3357600080fd5b600060208284031215610d8e57600080fd5b610d9782610cd2565b9392505050565b600060208284031215610db057600080fd5b5035919050565b60008060408385031215610dca57600080fd5b82359150610dda60208401610cd2565b90509250929050565b600080600060608486031215610df857600080fd5b83359250610e0860208501610cd2565b9150604084013590509250925092565b600080600080600080600080600080600060c08c8e031215610e3957600080fd5b8b359a5067ffffffffffffffff8060208e01351115610e5757600080fd5b610e678e60208f01358f01610cee565b909b50995060408d0135811015610e7d57600080fd5b610e8d8e60408f01358f01610cee565b909950975060608d0135811015610ea357600080fd5b610eb38e60608f01358f01610cee565b909750955060808d0135811015610ec957600080fd5b610ed98e60808f01358f01610cee565b909550935060a08d0135811015610eef57600080fd5b50610f008d60a08e01358e01610d3a565b81935080925050509295989b509295989b9093969950565b60008060008060608587031215610f2e57600080fd5b84359350602085013567ffffffffffffffff811115610f4c57600080fd5b610f5887828801610cee565b9598909750949560400135949350505050565b60008060408385031215610f7e57600080fd5b50508035926020909101359150565b600060208284031215610f9f57600080fd5b813560ff81168114610d9757600080fd5b8183823760009101908152919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156110085761100861103f565b500190565b60008282101561101f5761101f61103f565b500390565b60006000198214156110385761103861103f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea264697066735822122032442a200dd6959c2029d8c7bc8044d4e1faac524560def4c9f308f4bd249ac364736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506110a1806100616000396000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80638da5cb5b1161008c578063d4c0d34d11610066578063d4c0d34d146101d7578063ea13ec8b146101ea578063f2fde38b146101fd578063f5e232ea1461021057600080fd5b80638da5cb5b1461017b578063a64ce19914610196578063b9c36209146101c457600080fd5b8062ab2414146100d357806315a09825146100e85780633156d37c146100fb57806348bcbd2d1461010e578063715018a6146101605780638d7678fd14610168575b600080fd5b6100e66100e1366004610cee565b610234565b005b6100e66100f6366004610d23565b6102b5565b6100e6610109366004610d23565b610388565b61014b61011c366004610d23565b60008281526001602090815260408083206001600160a01b038516845260020190915290205460ff1692915050565b60405190151581526020015b60405180910390f35b6100e6610473565b6100e6610176366004610d9b565b6104e7565b6000546040516001600160a01b039091168152602001610157565b6101b66101a4366004610dee565b60009081526001602052604090205490565b604051908152602001610157565b6100e66101d2366004610e07565b6105a5565b6100e66101e5366004610cee565b6105f4565b61014b6101f8366004610e6b565b610645565b6100e661020b366004610f6b565b610924565b6101b661021e366004610dee565b6000908152600160208190526040909120015490565b6000546001600160a01b031633146102675760405162461bcd60e51b815260040161025e90610f8d565b60405180910390fd5b6102718383610a0e565b6000838152600160208190526040822081015461028d91610fd8565b60008581526001602081905260409091200181905590506102af848284610ab0565b50505050565b6000546001600160a01b031633146102df5760405162461bcd60e51b815260040161025e90610f8d565b6000828152600160205260409020546103585760405162461bcd60e51b815260206004820152603560248201527f43616e206e6f7420616464207369676e657220666f7220626c6f636b636861696044820152741b881dda5d1a081e995c9bc81d1a1c995cda1bdb19605a1b606482015260840161025e565b6103628282610a0e565b600082815260016020819052604082200180549161037f83610ff0565b91905055505050565b6000546001600160a01b031633146103b25760405162461bcd60e51b815260040161025e90610f8d565b6103bc8282610b71565b600082815260016020819052604082208101546103d9919061100b565b6000848152600160205260409020549091508110156104585760405162461bcd60e51b815260206004820152603560248201527f50726f706f736564206e6577206e756d626572206f66207369676e65727320696044820152741cc81b195cdcc81d1a185b881d1a1c995cda1bdb19605a1b606482015260840161025e565b60009283526001602081905260409093209092019190915550565b6000546001600160a01b0316331461049d5760405162461bcd60e51b815260040161025e90610f8d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105115760405162461bcd60e51b815260040161025e90610f8d565b60005b8281101561055e5761054c8585858481811061053257610532611022565b90506020020160208101906105479190610f6b565b610a0e565b8061055681610ff0565b915050610514565b5060008481526001602081905260408220015461057c908490610fd8565b600086815260016020819052604090912001819055905061059e858284610ab0565b5050505050565b6000546001600160a01b031633146105cf5760405162461bcd60e51b815260040161025e90610f8d565b6105f082600160008581526020019081526020016000206001015483610ab0565b5050565b6000546001600160a01b0316331461061e5760405162461bcd60e51b815260040161025e90610f8d565b6106288383610b71565b6000838152600160208190526040822081015461028d919061100b565b60008988811461068e5760405162461bcd60e51b81526020600482015260146024820152730e6d2cea440d8cadccee8d040dad2e6dac2e8c6d60631b604482015260640161025e565b8087146106d45760405162461bcd60e51b81526020600482015260146024820152730e6d2cea640d8cadccee8d040dad2e6dac2e8c6d60631b604482015260640161025e565b80851461071a5760405162461bcd60e51b81526020600482015260146024820152730e6d2ceac40d8cadccee8d040dad2e6dac2e8c6d60631b604482015260640161025e565b60008d81526001602052604090205481101561076d5760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f756768207369676e65727360701b604482015260640161025e565b60005b818110156109105760008e8152600160205260408120600201908e8e8481811061079c5761079c611022565b90506020020160208101906107b19190610f6b565b6001600160a01b0316815260208101919091526040016000205460ff166108285760405162461bcd60e51b815260206004820152602560248201527f5369676e6572206e6f74207369676e657220666f72207468697320626c6f636b60448201526431b430b4b760d91b606482015260840161025e565b6108b28d8d8381811061083d5761083d611022565b90506020020160208101906108529190610f6b565b86868e8e8681811061086657610866611022565b905060200201358d8d8781811061087f5761087f611022565b905060200201358c8c8881811061089857610898611022565b90506020020160208101906108ad9190611038565b610c0f565b6108fe5760405162461bcd60e51b815260206004820152601860248201527f5369676e617475726520646964206e6f74207665726966790000000000000000604482015260640161025e565b8061090881610ff0565b915050610770565b5060019d9c50505050505050505050505050565b6000546001600160a01b0316331461094e5760405162461bcd60e51b815260040161025e90610f8d565b6001600160a01b0381166109b35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161025e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008281526001602090815260408083206001600160a01b038516845260020190915290205460ff1615610a7c5760405162461bcd60e51b81526020600482015260156024820152745369676e657220616c72656164792065786973747360581b604482015260640161025e565b60009182526001602081815260408085206001600160a01b039094168552600290930190529120805460ff19169091179055565b80821015610b0e5760405162461bcd60e51b815260206004820152602560248201527f4e756d626572206f66207369676e657273206c657373207468616e20746872656044820152641cda1bdb1960da1b606482015260840161025e565b80610b5b5760405162461bcd60e51b815260206004820152601960248201527f5468726573686f6c642063616e206e6f74206265207a65726f00000000000000604482015260640161025e565b6000928352600160205260409092209190915550565b60008281526001602090815260408083206001600160a01b038516845260020190915290205460ff16610bde5760405162461bcd60e51b815260206004820152601560248201527414da59db995c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015260640161025e565b60009182526001602090815260408084206001600160a01b039093168452600290920190529020805460ff19169055565b6000808686604051610c2292919061105b565b604051809103902090508260ff16601b14158015610c4457508260ff16601c14155b15610c53576000915050610cc8565b60408051600081526020810180835283905260ff851691810191909152606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610ca6573d6000803e3d6000fd5b505050602060405103516001600160a01b0316886001600160a01b0316149150505b9695505050505050565b80356001600160a01b0381168114610ce957600080fd5b919050565b600080600060608486031215610d0357600080fd5b83359250610d1360208501610cd2565b9150604084013590509250925092565b60008060408385031215610d3657600080fd5b82359150610d4660208401610cd2565b90509250929050565b60008083601f840112610d6157600080fd5b50813567ffffffffffffffff811115610d7957600080fd5b6020830191508360208260051b8501011115610d9457600080fd5b9250929050565b60008060008060608587031215610db157600080fd5b84359350602085013567ffffffffffffffff811115610dcf57600080fd5b610ddb87828801610d4f565b9598909750949560400135949350505050565b600060208284031215610e0057600080fd5b5035919050565b60008060408385031215610e1a57600080fd5b50508035926020909101359150565b60008083601f840112610e3b57600080fd5b50813567ffffffffffffffff811115610e5357600080fd5b602083019150836020828501011115610d9457600080fd5b600080600080600080600080600080600060c08c8e031215610e8c57600080fd5b8b359a5067ffffffffffffffff8060208e01351115610eaa57600080fd5b610eba8e60208f01358f01610d4f565b909b50995060408d0135811015610ed057600080fd5b610ee08e60408f01358f01610d4f565b909950975060608d0135811015610ef657600080fd5b610f068e60608f01358f01610d4f565b909750955060808d0135811015610f1c57600080fd5b610f2c8e60808f01358f01610d4f565b909550935060a08d0135811015610f4257600080fd5b50610f538d60a08e01358e01610e29565b81935080925050509295989b509295989b9093969950565b600060208284031215610f7d57600080fd5b610f8682610cd2565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115610feb57610feb610fc2565b500190565b600060001982141561100457611004610fc2565b5060010190565b60008282101561101d5761101d610fc2565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561104a57600080fd5b813560ff81168114610f8657600080fd5b818382376000910190815291905056fea2646970667358221220be66ebc6f8e795b3de5265076dc18264e42ee675d90e6676adcc75833d4caac664736f6c63430008090033"; public static final String FUNC_ADDSIGNER = "addSigner"; diff --git a/messaging/attestor-sign/src/main/java/net/consensys/gpact/attestorsign/soliditywrappers/CrosschainVerifierSign.java b/messaging/attestor-sign/src/main/java/net/consensys/gpact/attestorsign/soliditywrappers/CrosschainVerifierSign.java index aed4466f..1f308b6e 100644 --- a/messaging/attestor-sign/src/main/java/net/consensys/gpact/attestorsign/soliditywrappers/CrosschainVerifierSign.java +++ b/messaging/attestor-sign/src/main/java/net/consensys/gpact/attestorsign/soliditywrappers/CrosschainVerifierSign.java @@ -22,7 +22,7 @@ */ @SuppressWarnings("rawtypes") public class CrosschainVerifierSign extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b5060405161098c38038061098c83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6108f9806100936000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80634c1ce90214610030575b600080fd5b61004361003e36600461066a565b610045565b005b606080606080600061008c87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506104bf915050565b905061009f605563ffffffff8316610847565b6100aa90600461082f565b86146100fd5760405162461bcd60e51b815260206004820152601a60248201527f5369676e617475726520696e636f7272656374206c656e67746800000000000060448201526064015b60405180910390fd5b8063ffffffff1667ffffffffffffffff81111561011c5761011c6108ad565b604051908082528060200260200182016040528015610145578160200160208202803683370190505b5094508063ffffffff1667ffffffffffffffff811115610167576101676108ad565b604051908082528060200260200182016040528015610190578160200160208202803683370190505b5093508063ffffffff1667ffffffffffffffff8111156101b2576101b26108ad565b6040519080825280602002602001820160405280156101db578160200160208202803683370190505b5092508063ffffffff1667ffffffffffffffff8111156101fd576101fd6108ad565b604051908082528060200260200182016040528015610226578160200160208202803683370190505b509150600460005b8263ffffffff168110156104145761027d89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869250610525915050565b87828151811061028f5761028f610897565b6001600160a01b03909216602092830291909101909101526102b260148361082f565b91506102f589898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086925061052d915050565b86828151811061030757610307610897565b602002602001018181525050602082610320919061082f565b915061036389898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086925061052d915050565b85828151811061037557610375610897565b60200260200101818152505060208261038e919061082f565b91506103d189898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869250610592915050565b8482815181106103e3576103e3610897565b60ff9092166020928302919091019091015261040060018361082f565b91508061040c81610866565b91505061022e565b50505060008054906101000a90046001600160a01b03166001600160a01b031663ea13ec8b8b868686868e8e6040518863ffffffff1660e01b81526004016104629796959493929190610784565b60206040518083038186803b15801561047a57600080fd5b505afa15801561048e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b29190610641565b5050505050505050505050565b60006104cc82600461082f565b8351101561051c5760405162461bcd60e51b815260206004820152601d60248201527f736c6963696e67206f7574206f662072616e6765202875696e7433322900000060448201526064016100f4565b50016004015190565b016014015190565b60008060005b602081101561058a57610547816008610847565b85610552838761082f565b8151811061056257610562610897565b01602001516001600160f81b031916901c91909117908061058281610866565b915050610533565b509392505050565b600061059f82600161082f565b835110156105ef5760405162461bcd60e51b815260206004820152601c60248201527f736c6963696e67206f7574206f662072616e6765202875696e7438290000000060448201526064016100f4565b50016001015190565b60008083601f84011261060a57600080fd5b50813567ffffffffffffffff81111561062257600080fd5b60208301915083602082850101111561063a57600080fd5b9250929050565b60006020828403121561065357600080fd5b8151801515811461066357600080fd5b9392505050565b6000806000806000806080878903121561068357600080fd5b8635955060208701359450604087013567ffffffffffffffff808211156106a957600080fd5b6106b58a838b016105f8565b909650945060608901359150808211156106ce57600080fd5b506106db89828a016105f8565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b8381101561071d57815187529582019590820190600101610701565b509495945050505050565b600081518084526020808501945080840160005b8381101561071d57815160ff168752958201959082019060010161073c565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600060c08201898352602060c081850152818a5180845260e086019150828c01935060005b818110156107ce5784516001600160a01b0316835293830193918301916001016107a9565b505084810360408601526107e2818b6106ed565b9250505082810360608401526107f881886106ed565b9050828103608084015261080c8187610728565b905082810360a084015261082181858761075b565b9a9950505050505050505050565b6000821982111561084257610842610881565b500190565b600081600019048311821515161561086157610861610881565b500290565b600060001982141561087a5761087a610881565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220ce749488674baa01ea6e5046bdde74c8008b122115dfe30951a22098cb3e0b5664736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b5060405161098c38038061098c83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6108f9806100936000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80634c1ce90214610030575b600080fd5b61004361003e366004610641565b610045565b005b606080606080600061008c87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506104bf915050565b905061009f605563ffffffff83166106da565b6100aa9060046106f9565b86146100fd5760405162461bcd60e51b815260206004820152601a60248201527f5369676e617475726520696e636f7272656374206c656e67746800000000000060448201526064015b60405180910390fd5b8063ffffffff1667ffffffffffffffff81111561011c5761011c610711565b604051908082528060200260200182016040528015610145578160200160208202803683370190505b5094508063ffffffff1667ffffffffffffffff81111561016757610167610711565b604051908082528060200260200182016040528015610190578160200160208202803683370190505b5093508063ffffffff1667ffffffffffffffff8111156101b2576101b2610711565b6040519080825280602002602001820160405280156101db578160200160208202803683370190505b5092508063ffffffff1667ffffffffffffffff8111156101fd576101fd610711565b604051908082528060200260200182016040528015610226578160200160208202803683370190505b509150600460005b8263ffffffff168110156104145761027d89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869250610525915050565b87828151811061028f5761028f610727565b6001600160a01b03909216602092830291909101909101526102b26014836106f9565b91506102f589898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086925061052d915050565b86828151811061030757610307610727565b60200260200101818152505060208261032091906106f9565b915061036389898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086925061052d915050565b85828151811061037557610375610727565b60200260200101818152505060208261038e91906106f9565b91506103d189898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869250610592915050565b8482815181106103e3576103e3610727565b60ff909216602092830291909101909101526104006001836106f9565b91508061040c8161073d565b91505061022e565b50505060008054906101000a90046001600160a01b03166001600160a01b031663ea13ec8b8b868686868e8e6040518863ffffffff1660e01b815260040161046297969594939291906107ef565b60206040518083038186803b15801561047a57600080fd5b505afa15801561048e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b2919061089a565b5050505050505050505050565b60006104cc8260046106f9565b8351101561051c5760405162461bcd60e51b815260206004820152601d60248201527f736c6963696e67206f7574206f662072616e6765202875696e7433322900000060448201526064016100f4565b50016004015190565b016014015190565b60008060005b602081101561058a576105478160086106da565b8561055283876106f9565b8151811061056257610562610727565b01602001516001600160f81b031916901c9190911790806105828161073d565b915050610533565b509392505050565b600061059f8260016106f9565b835110156105ef5760405162461bcd60e51b815260206004820152601c60248201527f736c6963696e67206f7574206f662072616e6765202875696e7438290000000060448201526064016100f4565b50016001015190565b60008083601f84011261060a57600080fd5b50813567ffffffffffffffff81111561062257600080fd5b60208301915083602082850101111561063a57600080fd5b9250929050565b6000806000806000806080878903121561065a57600080fd5b8635955060208701359450604087013567ffffffffffffffff8082111561068057600080fd5b61068c8a838b016105f8565b909650945060608901359150808211156106a557600080fd5b506106b289828a016105f8565b979a9699509497509295939492505050565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156106f4576106f46106c4565b500290565b6000821982111561070c5761070c6106c4565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000600019821415610751576107516106c4565b5060010190565b600081518084526020808501945080840160005b838110156107885781518752958201959082019060010161076c565b509495945050505050565b600081518084526020808501945080840160005b8381101561078857815160ff16875295820195908201906001016107a7565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600060c08201898352602060c081850152818a5180845260e086019150828c01935060005b818110156108395784516001600160a01b031683529383019391830191600101610814565b5050848103604086015261084d818b610758565b9250505082810360608401526108638188610758565b905082810360808401526108778187610793565b905082810360a084015261088c8185876107c6565b9a9950505050505050505050565b6000602082840312156108ac57600080fd5b815180151581146108bc57600080fd5b939250505056fea264697066735822122023c3051c58fbad37faedfcb605ab7c22bc249ab98a70d316e37bb6540acb6dfa64736f6c63430008090033"; public static final String FUNC_DECODEANDVERIFYEVENT = "decodeAndVerifyEvent"; diff --git a/messaging/txroot-transfer/src/main/java/net/consensys/gpact/txroot/soliditywrappers/CrosschainVerifierTxRoot.java b/messaging/txroot-transfer/src/main/java/net/consensys/gpact/txroot/soliditywrappers/CrosschainVerifierTxRoot.java index c3cd09f5..294d3489 100644 --- a/messaging/txroot-transfer/src/main/java/net/consensys/gpact/txroot/soliditywrappers/CrosschainVerifierTxRoot.java +++ b/messaging/txroot-transfer/src/main/java/net/consensys/gpact/txroot/soliditywrappers/CrosschainVerifierTxRoot.java @@ -22,7 +22,7 @@ */ @SuppressWarnings("rawtypes") public class CrosschainVerifierTxRoot extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b5060405161118d38038061118d83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6110fa806100936000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80634c1ce90214610030575b600080fd5b61004361003e366004610e2f565b610045565b005b600061008683838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506102b692505050565b600054815160208301516040808501516060860151608087015160a0880151935163917ede9960e01b81529798506001600160a01b039096169663917ede99966100d69695949091600401610f24565b60206040518083038186803b1580156100ee57600080fd5b505afa158015610102573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101269190610e06565b508051871461018d5760405162461bcd60e51b815260206004820152602860248201527f4576656e74206e6f7420656d697474656420627920657870656374656420626c60448201526737b1b5b1b430b4b760c11b60648201526084015b60405180910390fd5b60006101a461019f8360600151610586565b6105d5565b905060006101cb826001815181106101be576101be611098565b60200260200101516106b6565b905060606101de84602001518a84610733565b602080870151604051929450600093506101fe928e928e91879101610ede565b60408051601f198184030181526020601f8c018190048102840181019092528a835292506102489183918c908c908190840183828082843760009201919091525061089e92505050565b6102a95760405162461bcd60e51b815260206004820152602c60248201527f4578706563746564206576656e7420646f6573206e6f74206d6174636820657660448201526b32b73a1034b710383937b7b360a11b6064820152608401610184565b5050505050505050505050565b6040805160c08101825260008082526020820181905291810182905260608082018190526080820181905260a0820152906102f361019f84610586565b90506000610317610310836000815181106101be576101be611098565b60006108cb565b9050600061033b610334846001815181106101be576101be611098565b6014015190565b9050600061035f610358856002815181106101be576101be611098565b6000610931565b90506000610379856003815181106101be576101be611098565b905060006103a08660048151811061039357610393611098565b60200260200101516105d5565b905060006103ba8760058151811061039357610393611098565b905080518251146104285760405162461bcd60e51b815260206004820152603260248201527f4c656e677468206f662070726f6f664f66667365747320646f6573206e6f742060448201527136b0ba31b4103632b733ba3410383937b7b360711b6064820152608401610184565b6000825167ffffffffffffffff811115610444576104446110ae565b60405190808252806020026020018201604052801561046d578160200160208202803683370190505b5090506000825167ffffffffffffffff81111561048c5761048c6110ae565b6040519080825280602002602001820160405280156104bf57816020015b60608152602001906001900390816104aa5790505b50905060005b8351811015610549576104e66103108683815181106101be576101be611098565b8382815181106104f8576104f8611098565b6020026020010181815250506105198482815181106101be576101be611098565b82828151811061052b5761052b611098565b6020026020010181905250808061054190611067565b9150506104c5565b506040805160c0810182529889526001600160a01b0390971660208901529587019490945250506060840152608083015260a08201529392505050565b60408051808201909152600080825260208201528151806105bc5750506040805180820190915260008082526020820152919050565b6040805180820190915260209384018152928301525090565b60606105e082610996565b6105e957600080fd5b60006105f4836109bd565b90508067ffffffffffffffff81111561060f5761060f6110ae565b60405190808252806020026020018201604052801561065457816020015b604080518082019091526000808252602082015281526020019060019003908161062d5790505b509150600061066284610a4f565b905060005b61067082610aaa565b156106ae5761067e82610ace565b84828151811061069057610690611098565b602002602001018190525080806106a690611067565b915050610667565b505050919050565b60606106c182610b28565b6106ca57600080fd5b6000806106d684610b4e565b90925090508067ffffffffffffffff8111156106f4576106f46110ae565b6040519080825280601f01601f19166020018201604052801561071e576020820181803683370190505b50925061072c828483610bf2565b5050919050565b606080600061074461019f85610586565b9050600061075e8260038151811061039357610393611098565b905060005b815181101561083f57600061078383838151811061039357610393611098565b905060006107a0610334836000815181106101be576101be611098565b90506107b88260018151811061039357610393611098565b96506107d0826002815181106101be576101be611098565b955060006107f7886000815181106107ea576107ea611098565b6020026020010151610c30565b9050898114801561081957508a6001600160a01b0316826001600160a01b0316145b1561082957505050505050610896565b505050808061083790611067565b915050610763565b5060405162461bcd60e51b815260206004820152602560248201527f4e6f206576656e7420666f756e6420696e207472616e73616374696f6e20726560448201526418d95a5c1d60da1b6064820152608401610184565b935093915050565b600081518351146108b1575060006108c5565b818051906020012083805190602001201490505b92915050565b60006108d8826020610fe9565b835110156109285760405162461bcd60e51b815260206004820152601e60248201527f736c6963696e67206f7574206f662072616e6765202875696e743235362900006044820152606401610184565b50016020015190565b60008060005b602081101561098e5761094b816008611001565b856109568387610fe9565b8151811061096657610966611098565b01602001516001600160f81b031916901c91909117908061098681611067565b915050610937565b509392505050565b60008160200151600014156109ad57506000919050565b50515160c060009190911a101590565b60006109c882610996565b6109d457506000919050565b81518051600090811a91906109e885610c3b565b6109f29083610fe9565b905060006001866020015184610a089190610fe9565b610a129190611020565b905060005b818311610a4557610a2783610cc9565b610a319084610fe9565b925080610a3d81611067565b915050610a17565b9695505050505050565b6040805160808101825260009181018281526060820183905281526020810191909152610a7b82610996565b610a8457600080fd5b6000610a8f83610c3b565b8351610a9b9190610fe9565b92825250602081019190915290565b80516020810151815160009291610ac091610fe9565b836020015110915050919050565b6040805180820190915260008082526020820152610aeb82610aaa565b1561002b5760208201516000610b0082610cc9565b828452602084018190529050610b168183610fe9565b602085015250610b239050565b919050565b6000816020015160001415610b3f57506000919050565b50515160c060009190911a1090565b600080610b5a83610b28565b610b6357600080fd5b8251805160001a906080821015610b7f57946001945092505050565b60b8821015610bad5760018560200151610b999190611020565b9250610ba6816001610fe9565b9350610beb565b602085015160b6198301908190610bc690600190611020565b610bd09190611020565b9350610bdc8183610fe9565b610be7906001610fe9565b9450505b5050915091565b6020601f820104836020840160005b83811015610c1d57602081028381015190830152600101610c01565b5050505060008251602001830152505050565b60006108c582610d67565b6000816020015160001415610c5257506000919050565b8151805160001a906080821015610c6d575060009392505050565b60b8821080610c88575060c08210158015610c88575060f882105b15610c97575060019392505050565b60c0821015610cbe57610cab60b783611020565b610cb6906001610fe9565b949350505050565b610cab60f783611020565b8051600090811a6080811015610ce25760019150610d61565b60b8811015610d0857610cf6608082611020565b610d01906001610fe9565b9150610d61565b60c0811015610d3157600183015160b76020839003016101000a9004810160b519019150610d61565b60f8811015610d4557610cf660c082611020565b600183015160f76020839003016101000a9004810160f5190191505b50919050565b6000610d7282610b28565b610d7b57600080fd5b600080610d8784610b4e565b90925090506020811115610d9a57600080fd5b80610da9575060009392505050565b806020036101000a82510492505050919050565b60008083601f840112610dcf57600080fd5b50813567ffffffffffffffff811115610de757600080fd5b602083019150836020828501011115610dff57600080fd5b9250929050565b600060208284031215610e1857600080fd5b81518015158114610e2857600080fd5b9392505050565b60008060008060008060808789031215610e4857600080fd5b8635955060208701359450604087013567ffffffffffffffff80821115610e6e57600080fd5b610e7a8a838b01610dbd565b90965094506060890135915080821115610e9357600080fd5b50610ea089828a01610dbd565b979a9699509497509295939492505050565b60008151808452610eca816020860160208601611037565b601f01601f19169290920160200192915050565b8481526bffffffffffffffffffffffff198460601b16602082015282603482015260008251610f14816054850160208701611037565b9190910160540195945050505050565b8681526000602060018060a01b0388168184015286604084015260c06060840152610f5260c0840187610eb2565b838103608085015285518082528287019183019060005b81811015610f8557835183529284019291840191600101610f69565b505084810360a086015285518082528382019250600581901b8201840184880160005b83811015610fd657601f19858403018652610fc4838351610eb2565b95870195925090860190600101610fa8565b50909d9c50505050505050505050505050565b60008219821115610ffc57610ffc611082565b500190565b600081600019048311821515161561101b5761101b611082565b500290565b60008282101561103257611032611082565b500390565b60005b8381101561105257818101518382015260200161103a565b83811115611061576000848401525b50505050565b600060001982141561107b5761107b611082565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122057e683354c66abcaa1690356c86642f9df98a79c4944c85cd9a0a8bda180dc6f64736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b5060405161118d38038061118d83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6110fa806100936000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80634c1ce90214610030575b600080fd5b61004361003e366004610e06565b610045565b005b600061008683838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506102b692505050565b600054815160208301516040808501516060860151608087015160a0880151935163917ede9960e01b81529798506001600160a01b039096169663917ede99966100d69695949091600401610ee5565b60206040518083038186803b1580156100ee57600080fd5b505afa158015610102573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101269190610faa565b508051871461018d5760405162461bcd60e51b815260206004820152602860248201527f4576656e74206e6f7420656d697474656420627920657870656374656420626c60448201526737b1b5b1b430b4b760c11b60648201526084015b60405180910390fd5b60006101a461019f8360600151610586565b6105d5565b905060006101cb826001815181106101be576101be610fd3565b60200260200101516106b6565b905060606101de84602001518a84610733565b602080870151604051929450600093506101fe928e928e91879101610fe9565b60408051601f198184030181526020601f8c018190048102840181019092528a835292506102489183918c908c908190840183828082843760009201919091525061089e92505050565b6102a95760405162461bcd60e51b815260206004820152602c60248201527f4578706563746564206576656e7420646f6573206e6f74206d6174636820657660448201526b32b73a1034b710383937b7b360a11b6064820152608401610184565b5050505050505050505050565b6040805160c08101825260008082526020820181905291810182905260608082018190526080820181905260a0820152906102f361019f84610586565b90506000610317610310836000815181106101be576101be610fd3565b60006108cb565b9050600061033b610334846001815181106101be576101be610fd3565b6014015190565b9050600061035f610358856002815181106101be576101be610fd3565b6000610931565b90506000610379856003815181106101be576101be610fd3565b905060006103a08660048151811061039357610393610fd3565b60200260200101516105d5565b905060006103ba8760058151811061039357610393610fd3565b905080518251146104285760405162461bcd60e51b815260206004820152603260248201527f4c656e677468206f662070726f6f664f66667365747320646f6573206e6f742060448201527136b0ba31b4103632b733ba3410383937b7b360711b6064820152608401610184565b6000825167ffffffffffffffff8111156104445761044461102f565b60405190808252806020026020018201604052801561046d578160200160208202803683370190505b5090506000825167ffffffffffffffff81111561048c5761048c61102f565b6040519080825280602002602001820160405280156104bf57816020015b60608152602001906001900390816104aa5790505b50905060005b8351811015610549576104e66103108683815181106101be576101be610fd3565b8382815181106104f8576104f8610fd3565b6020026020010181815250506105198482815181106101be576101be610fd3565b82828151811061052b5761052b610fd3565b602002602001018190525080806105419061105b565b9150506104c5565b506040805160c0810182529889526001600160a01b0390971660208901529587019490945250506060840152608083015260a08201529392505050565b60408051808201909152600080825260208201528151806105bc5750506040805180820190915260008082526020820152919050565b6040805180820190915260209384018152928301525090565b60606105e082610996565b6105e957600080fd5b60006105f4836109bd565b90508067ffffffffffffffff81111561060f5761060f61102f565b60405190808252806020026020018201604052801561065457816020015b604080518082019091526000808252602082015281526020019060019003908161062d5790505b509150600061066284610a4f565b905060005b61067082610aaa565b156106ae5761067e82610ace565b84828151811061069057610690610fd3565b602002602001018190525080806106a69061105b565b915050610667565b505050919050565b60606106c182610b28565b6106ca57600080fd5b6000806106d684610b4e565b90925090508067ffffffffffffffff8111156106f4576106f461102f565b6040519080825280601f01601f19166020018201604052801561071e576020820181803683370190505b50925061072c828483610bf2565b5050919050565b606080600061074461019f85610586565b9050600061075e8260038151811061039357610393610fd3565b905060005b815181101561083f57600061078383838151811061039357610393610fd3565b905060006107a0610334836000815181106101be576101be610fd3565b90506107b88260018151811061039357610393610fd3565b96506107d0826002815181106101be576101be610fd3565b955060006107f7886000815181106107ea576107ea610fd3565b6020026020010151610c30565b9050898114801561081957508a6001600160a01b0316826001600160a01b0316145b1561082957505050505050610896565b50505080806108379061105b565b915050610763565b5060405162461bcd60e51b815260206004820152602560248201527f4e6f206576656e7420666f756e6420696e207472616e73616374696f6e20726560448201526418d95a5c1d60da1b6064820152608401610184565b935093915050565b600081518351146108b1575060006108c5565b818051906020012083805190602001201490505b92915050565b60006108d8826020611076565b835110156109285760405162461bcd60e51b815260206004820152601e60248201527f736c6963696e67206f7574206f662072616e6765202875696e743235362900006044820152606401610184565b50016020015190565b60008060005b602081101561098e5761094b81600861108e565b856109568387611076565b8151811061096657610966610fd3565b01602001516001600160f81b031916901c9190911790806109868161105b565b915050610937565b509392505050565b60008160200151600014156109ad57506000919050565b50515160c060009190911a101590565b60006109c882610996565b6109d457506000919050565b81518051600090811a91906109e885610c3b565b6109f29083611076565b905060006001866020015184610a089190611076565b610a1291906110ad565b905060005b818311610a4557610a2783610cc9565b610a319084611076565b925080610a3d8161105b565b915050610a17565b9695505050505050565b6040805160808101825260009181018281526060820183905281526020810191909152610a7b82610996565b610a8457600080fd5b6000610a8f83610c3b565b8351610a9b9190611076565b92825250602081019190915290565b80516020810151815160009291610ac091611076565b836020015110915050919050565b6040805180820190915260008082526020820152610aeb82610aaa565b1561002b5760208201516000610b0082610cc9565b828452602084018190529050610b168183611076565b602085015250610b239050565b919050565b6000816020015160001415610b3f57506000919050565b50515160c060009190911a1090565b600080610b5a83610b28565b610b6357600080fd5b8251805160001a906080821015610b7f57946001945092505050565b60b8821015610bad5760018560200151610b9991906110ad565b9250610ba6816001611076565b9350610beb565b602085015160b6198301908190610bc6906001906110ad565b610bd091906110ad565b9350610bdc8183611076565b610be7906001611076565b9450505b5050915091565b6020601f820104836020840160005b83811015610c1d57602081028381015190830152600101610c01565b5050505060008251602001830152505050565b60006108c582610d67565b6000816020015160001415610c5257506000919050565b8151805160001a906080821015610c6d575060009392505050565b60b8821080610c88575060c08210158015610c88575060f882105b15610c97575060019392505050565b60c0821015610cbe57610cab60b7836110ad565b610cb6906001611076565b949350505050565b610cab60f7836110ad565b8051600090811a6080811015610ce25760019150610d61565b60b8811015610d0857610cf66080826110ad565b610d01906001611076565b9150610d61565b60c0811015610d3157600183015160b76020839003016101000a9004810160b519019150610d61565b60f8811015610d4557610cf660c0826110ad565b600183015160f76020839003016101000a9004810160f5190191505b50919050565b6000610d7282610b28565b610d7b57600080fd5b600080610d8784610b4e565b90925090506020811115610d9a57600080fd5b80610da9575060009392505050565b806020036101000a82510492505050919050565b60008083601f840112610dcf57600080fd5b50813567ffffffffffffffff811115610de757600080fd5b602083019150836020828501011115610dff57600080fd5b9250929050565b60008060008060008060808789031215610e1f57600080fd5b8635955060208701359450604087013567ffffffffffffffff80821115610e4557600080fd5b610e518a838b01610dbd565b90965094506060890135915080821115610e6a57600080fd5b50610e7789828a01610dbd565b979a9699509497509295939492505050565b60005b83811015610ea4578181015183820152602001610e8c565b83811115610eb3576000848401525b50505050565b60008151808452610ed1816020860160208601610e89565b601f01601f19169290920160200192915050565b8681526000602060018060a01b0388168184015286604084015260c06060840152610f1360c0840187610eb9565b838103608085015285518082528287019183019060005b81811015610f4657835183529284019291840191600101610f2a565b505084810360a086015285518082528382019250600581901b8201840184880160005b83811015610f9757601f19858403018652610f85838351610eb9565b95870195925090860190600101610f69565b50909d9c50505050505050505050505050565b600060208284031215610fbc57600080fd5b81518015158114610fcc57600080fd5b9392505050565b634e487b7160e01b600052603260045260246000fd5b8481526bffffffffffffffffffffffff198460601b1660208201528260348201526000825161101f816054850160208701610e89565b9190910160540195945050505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561106f5761106f611045565b5060010190565b6000821982111561108957611089611045565b500190565b60008160001904831182151516156110a8576110a8611045565b500290565b6000828210156110bf576110bf611045565b50039056fea2646970667358221220635d2dd86714ca12ec86ba118a7797dba2abcf8194150e20b3060c6d4594e4c664736f6c63430008090033"; public static final String FUNC_DECODEANDVERIFYEVENT = "decodeAndVerifyEvent"; diff --git a/messaging/txroot-transfer/src/main/java/net/consensys/gpact/txroot/soliditywrappers/TxReceiptsRootStorage.java b/messaging/txroot-transfer/src/main/java/net/consensys/gpact/txroot/soliditywrappers/TxReceiptsRootStorage.java index fd1cc4cd..e8c93913 100644 --- a/messaging/txroot-transfer/src/main/java/net/consensys/gpact/txroot/soliditywrappers/TxReceiptsRootStorage.java +++ b/messaging/txroot-transfer/src/main/java/net/consensys/gpact/txroot/soliditywrappers/TxReceiptsRootStorage.java @@ -29,7 +29,7 @@ */ @SuppressWarnings("rawtypes") public class TxReceiptsRootStorage extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b50604051610b24380380610b2483398101604081905261002f916100bd565b600060208190527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c58054600160ff19918216811790925581546001600160a01b0319166001600160a01b039490941693909317815563400693dd60e01b9091527f5ca99457c0861cd8c45ec8ac85e4b4c16d2aafa71de9f5b4a576be77670c47fc80549092161790556100ed565b6000602082840312156100cf57600080fd5b81516001600160a01b03811681146100e657600080fd5b9392505050565b610a28806100fc6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a714610051578063674f78ae14610092578063917ede99146100a7578063b63735ea146100ba575b600080fd5b61007e61005f36600461058e565b6001600160e01b03191660009081526020819052604090205460ff1690565b604051901515815260200160405180910390f35b6100a56100a03660046106a6565b6100e8565b005b61007e6100b53660046105b8565b6101cf565b61007e6100c8366004610780565b600091825260026020908152604080842092845291905290205460ff1690565b6000816040516020016100fd91815260200190565b60408051601f198184030181529082905260015463ea13ec8b60e01b83529092506001600160a01b03169063ea13ec8b9061014e908e908e908e908e908e908e908e908e908e908d9060040161087e565b60206040518083038186803b15801561016657600080fd5b505afa15801561017a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019e9190610565565b50506000998a52600260209081526040808c20928c52919052909820805460ff191660011790555050505050505050565b60008981526002602090815260408083208a845290915281205460ff166102635760405162461bcd60e51b815260206004820152603960248201527f5472616e73616374696f6e207265636569707420726f6f7420646f6573206e6f60448201527f7420657869737420666f7220626c6f636b636861696e2069640000000000000060648201526084015b60405180910390fd5b8184146102cc5760405162461bcd60e51b815260206004820152603160248201527f4c656e677468206f662070726f6f667320616e642070726f6f66734f666673656044820152700e8e640c8decae640dcdee840dac2e8c6d607b1b606482015260840161025a565b600087876040516102de92919061086e565b6040518091039020905060005b8381101561042757600061037186868481811061030a5761030a6109dc565b905060200281019061031c919061092d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c92508b9150869050818110610365576103656109dc565b90506020020135610498565b90508281146103d75760405162461bcd60e51b815260206004820152602c60248201527f43616e646964617465204861736820646964206e6f74206d617463682063616c60448201526b0c6ead8c2e8cac840d0c2e6d60a31b606482015260840161025a565b8585838181106103e9576103e96109dc565b90506020028101906103fb919061092d565b60405161040992919061086e565b6040518091039020925050808061041f906109ab565b9150506102eb565b508089146104875760405162461bcd60e51b815260206004820152602760248201527f526f6f74204861736820646964206e6f74206d617463682063616c63756c61746044820152660cac840d0c2e6d60cb1b606482015260840161025a565b5060019a9950505050505050505050565b60008060005b60208110156104f5576104b281600861098c565b856104bd8387610974565b815181106104cd576104cd6109dc565b01602001516001600160f81b031916901c9190911790806104ed816109ab565b91505061049e565b509392505050565b80356001600160a01b038116811461051457600080fd5b919050565b60008083601f84011261052b57600080fd5b50813567ffffffffffffffff81111561054357600080fd5b6020830191508360208260051b850101111561055e57600080fd5b9250929050565b60006020828403121561057757600080fd5b8151801515811461058757600080fd5b9392505050565b6000602082840312156105a057600080fd5b81356001600160e01b03198116811461058757600080fd5b600080600080600080600080600060c08a8c0312156105d657600080fd5b893598506105e660208b016104fd565b975060408a0135965060608a013567ffffffffffffffff8082111561060a57600080fd5b818c0191508c601f83011261061e57600080fd5b81358181111561062d57600080fd5b8d602082850101111561063f57600080fd5b6020830198508097505060808c013591508082111561065d57600080fd5b6106698d838e01610519565b909650945060a08c013591508082111561068257600080fd5b5061068f8c828d01610519565b915080935050809150509295985092959850929598565b60008060008060008060008060008060c08b8d0312156106c557600080fd5b8a35995060208b013567ffffffffffffffff808211156106e457600080fd5b6106f08e838f01610519565b909b50995060408d013591508082111561070957600080fd5b6107158e838f01610519565b909950975060608d013591508082111561072e57600080fd5b61073a8e838f01610519565b909750955060808d013591508082111561075357600080fd5b506107608d828e01610519565b9150809450508092505060a08b013590509295989b9194979a5092959850565b6000806040838503121561079357600080fd5b50508035926020909101359150565b81835260006001600160fb1b038311156107bb57600080fd5b8260051b8083602087013760009401602001938452509192915050565b818352600060208085019450826000805b8681101561081557823560ff8116808214610802578384fd5b89525096830196918301916001016107e9565b50959695505050505050565b6000815180845260005b818110156108475760208185018101518683018201520161082b565b81811115610859576000602083870101525b50601f01601f19169290920160200192915050565b8183823760009101908152919050565b8a815260c060208083018290529082018a90526000908b9060e08401835b8d8110156108c8576001600160a01b036108b5856104fd565b168252928201929082019060010161089c565b5084810360408601526108dc818c8e6107a2565b9250505082810360608401526108f381888a6107a2565b905082810360808401526109088186886107d8565b905082810360a084015261091c8185610821565b9d9c50505050505050505050505050565b6000808335601e1984360301811261094457600080fd5b83018035915067ffffffffffffffff82111561095f57600080fd5b60200191503681900382131561055e57600080fd5b60008219821115610987576109876109c6565b500190565b60008160001904831182151516156109a6576109a66109c6565b500290565b60006000198214156109bf576109bf6109c6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea264697066735822122047323487a6c39ad94278d3a9c165250cdc7f4b1c2440b8ccae19f6aec788195564736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b50604051610b24380380610b2483398101604081905261002f916100bd565b600060208190527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c58054600160ff19918216811790925581546001600160a01b0319166001600160a01b039490941693909317815563400693dd60e01b9091527f5ca99457c0861cd8c45ec8ac85e4b4c16d2aafa71de9f5b4a576be77670c47fc80549092161790556100ed565b6000602082840312156100cf57600080fd5b81516001600160a01b03811681146100e657600080fd5b9392505050565b610a28806100fc6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a714610051578063674f78ae14610092578063917ede99146100a7578063b63735ea146100ba575b600080fd5b61007e61005f3660046104fd565b6001600160e01b03191660009081526020819052604090205460ff1690565b604051901515815260200160405180910390f35b6100a56100a036600461057a565b6100e8565b005b61007e6100b5366004610670565b6101cf565b61007e6100c836600461075e565b600091825260026020908152604080842092845291905290205460ff1690565b6000816040516020016100fd91815260200190565b60408051601f198184030181529082905260015463ea13ec8b60e01b83529092506001600160a01b03169063ea13ec8b9061014e908e908e908e908e908e908e908e908e908e908d9060040161084c565b60206040518083038186803b15801561016657600080fd5b505afa15801561017a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019e91906108fb565b50506000998a52600260209081526040808c20928c52919052909820805460ff191660011790555050505050505050565b60008981526002602090815260408083208a845290915281205460ff166102635760405162461bcd60e51b815260206004820152603960248201527f5472616e73616374696f6e207265636569707420726f6f7420646f6573206e6f60448201527f7420657869737420666f7220626c6f636b636861696e2069640000000000000060648201526084015b60405180910390fd5b8184146102cc5760405162461bcd60e51b815260206004820152603160248201527f4c656e677468206f662070726f6f667320616e642070726f6f66734f666673656044820152700e8e640c8decae640dcdee840dac2e8c6d607b1b606482015260840161025a565b600087876040516102de92919061091d565b6040518091039020905060005b8381101561042757600061037186868481811061030a5761030a61092d565b905060200281019061031c9190610943565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c92508b91508690508181106103655761036561092d565b90506020020135610498565b90508281146103d75760405162461bcd60e51b815260206004820152602c60248201527f43616e646964617465204861736820646964206e6f74206d617463682063616c60448201526b0c6ead8c2e8cac840d0c2e6d60a31b606482015260840161025a565b8585838181106103e9576103e961092d565b90506020028101906103fb9190610943565b60405161040992919061091d565b6040518091039020925050808061041f906109a0565b9150506102eb565b508089146104875760405162461bcd60e51b815260206004820152602760248201527f526f6f74204861736820646964206e6f74206d617463682063616c63756c61746044820152660cac840d0c2e6d60cb1b606482015260840161025a565b5060019a9950505050505050505050565b60008060005b60208110156104f5576104b28160086109bb565b856104bd83876109da565b815181106104cd576104cd61092d565b01602001516001600160f81b031916901c9190911790806104ed816109a0565b91505061049e565b509392505050565b60006020828403121561050f57600080fd5b81356001600160e01b03198116811461052757600080fd5b9392505050565b60008083601f84011261054057600080fd5b50813567ffffffffffffffff81111561055857600080fd5b6020830191508360208260051b850101111561057357600080fd5b9250929050565b60008060008060008060008060008060c08b8d03121561059957600080fd5b8a35995060208b013567ffffffffffffffff808211156105b857600080fd5b6105c48e838f0161052e565b909b50995060408d01359150808211156105dd57600080fd5b6105e98e838f0161052e565b909950975060608d013591508082111561060257600080fd5b61060e8e838f0161052e565b909750955060808d013591508082111561062757600080fd5b506106348d828e0161052e565b9150809450508092505060a08b013590509295989b9194979a5092959850565b80356001600160a01b038116811461066b57600080fd5b919050565b600080600080600080600080600060c08a8c03121561068e57600080fd5b8935985061069e60208b01610654565b975060408a0135965060608a013567ffffffffffffffff808211156106c257600080fd5b818c0191508c601f8301126106d657600080fd5b8135818111156106e557600080fd5b8d60208285010111156106f757600080fd5b6020830198508097505060808c013591508082111561071557600080fd5b6107218d838e0161052e565b909650945060a08c013591508082111561073a57600080fd5b506107478c828d0161052e565b915080935050809150509295985092959850929598565b6000806040838503121561077157600080fd5b50508035926020909101359150565b81835260006001600160fb1b0383111561079957600080fd5b8260051b8083602087013760009401602001938452509192915050565b818352600060208085019450826000805b868110156107f357823560ff81168082146107e0578384fd5b89525096830196918301916001016107c7565b50959695505050505050565b6000815180845260005b8181101561082557602081850181015186830182015201610809565b81811115610837576000602083870101525b50601f01601f19169290920160200192915050565b8a815260c060208083018290529082018a90526000908b9060e08401835b8d811015610896576001600160a01b0361088385610654565b168252928201929082019060010161086a565b5084810360408601526108aa818c8e610780565b9250505082810360608401526108c181888a610780565b905082810360808401526108d68186886107b6565b905082810360a08401526108ea81856107ff565b9d9c50505050505050505050505050565b60006020828403121561090d57600080fd5b8151801515811461052757600080fd5b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261095a57600080fd5b83018035915067ffffffffffffffff82111561097557600080fd5b60200191503681900382131561057357600080fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156109b4576109b461098a565b5060010190565b60008160001904831182151516156109d5576109d561098a565b500290565b600082198211156109ed576109ed61098a565b50019056fea26469706673582212204845d7801877ae8e68601feff7ec7275facaf4912e8fb225056a0244f16efbde64736f6c63430008090033"; public static final String FUNC_ADDTXRECEIPTROOT = "addTxReceiptRoot"; diff --git a/messaging/txroot-transfer/src/test/java/net/consensys/gpact/txroot/soliditywrappers/TestEvents.java b/messaging/txroot-transfer/src/test/java/net/consensys/gpact/txroot/soliditywrappers/TestEvents.java index 66aca560..c6c817a0 100644 --- a/messaging/txroot-transfer/src/test/java/net/consensys/gpact/txroot/soliditywrappers/TestEvents.java +++ b/messaging/txroot-transfer/src/test/java/net/consensys/gpact/txroot/soliditywrappers/TestEvents.java @@ -36,7 +36,7 @@ */ @SuppressWarnings("rawtypes") public class TestEvents extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b506101a7806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806395805dad14610030575b600080fd5b61004361003e366004610132565b610045565b005b6040518181527f04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce39060200160405180910390a17f06df6fb2d6d0b17a870decb858cc46bf7b69142ab7b9318f7603ed3fd4ad240e6100a482600161014b565b60405190815260200160405180910390a17f38ee5a08acae32a0ccec0eef68b73ba44f4b09e2f3df37062af8e885a7fd23af6100e182600261014b565b60405190815260200160405180910390a17f04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce361011e82600361014b565b60405190815260200160405180910390a150565b60006020828403121561014457600080fd5b5035919050565b6000821982111561016c57634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220882929d3b1f9a312953b64c5a43172ebee046fe0643c11b54e78bc4eebabd15864736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b506101a7806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806395805dad14610030575b600080fd5b61004361003e366004610132565b610045565b005b6040518181527f04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce39060200160405180910390a17f06df6fb2d6d0b17a870decb858cc46bf7b69142ab7b9318f7603ed3fd4ad240e6100a482600161014b565b60405190815260200160405180910390a17f38ee5a08acae32a0ccec0eef68b73ba44f4b09e2f3df37062af8e885a7fd23af6100e182600261014b565b60405190815260200160405180910390a17f04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce361011e82600361014b565b60405190815260200160405180910390a150565b60006020828403121561014457600080fd5b5035919050565b6000821982111561016c57634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220c9e52276b3d18067bca9244a1ff1fcbe5a0f0f84dff3181a7f9b48f4e7128a2464736f6c63430008090033"; public static final String FUNC_START = "start"; diff --git a/messaging/txroot-transfer/src/test/java/net/consensys/gpact/txroot/soliditywrappers/TestReceipts.java b/messaging/txroot-transfer/src/test/java/net/consensys/gpact/txroot/soliditywrappers/TestReceipts.java index ec6d1fd1..62c5dae5 100644 --- a/messaging/txroot-transfer/src/test/java/net/consensys/gpact/txroot/soliditywrappers/TestReceipts.java +++ b/messaging/txroot-transfer/src/test/java/net/consensys/gpact/txroot/soliditywrappers/TestReceipts.java @@ -38,7 +38,7 @@ */ @SuppressWarnings("rawtypes") public class TestReceipts extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b50610c3e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80630fe640261461006757806310ba2039146100905780632ae31cc0146100bb5780638feb676c14610090578063b401d83f146100d0578063e4e26223146100e3575b600080fd5b61007a610075366004610a34565b610104565b6040516100879190610b27565b60405180910390f35b6100a361009e366004610ad9565b61011d565b6040516001600160a01b039091168152602001610087565b6100ce6100c9366004610b0e565b6101b1565b005b61007a6100de366004610a8b565b6101e7565b6100f66100f1366004610ad9565b61021f565b604051908152602001610087565b60606000610113858585610251565b9695505050505050565b60008061013161012c846103c0565b61040f565b905060006101588260038151811061014b5761014b610bdc565b602002602001015161040f565b9050805160011461016857600080fd5b60006101808260008151811061014b5761014b610bdc565b905060006101136101aa8360008151811061019d5761019d610bdc565b60200260200101516104f0565b6014015190565b6040518181527f98ab4df6be53ea2dac064846a792a2a8f68f04fe0d840eb824961c516440e2959060200160405180910390a150565b60606000610216847f98ab4df6be53ea2dac064846a792a2a8f68f04fe0d840eb824961c516440e29585610251565b95945050505050565b60008061022e61012c846103c0565b905060006102488260038151811061014b5761014b610bdc565b51949350505050565b606080600061026261012c856103c0565b9050600061027c8260038151811061014b5761014b610bdc565b905060005b815181101561035d5760006102a183838151811061014b5761014b610bdc565b905060006102be6101aa8360008151811061019d5761019d610bdc565b90506102d68260018151811061014b5761014b610bdc565b96506102ee8260028151811061019d5761019d610bdc565b955060006103158860008151811061030857610308610bdc565b602002602001015161056d565b9050898114801561033757508a6001600160a01b0316826001600160a01b0316145b15610347575050505050506103b8565b505050808061035590610bab565b915050610281565b5060405162461bcd60e51b815260206004820152602560248201527f4e6f206576656e7420666f756e6420696e207472616e73616374696f6e20726560448201526418d95a5c1d60da1b606482015260840160405180910390fd5b935093915050565b60408051808201909152600080825260208201528151806103f65750506040805180820190915260008082526020820152919050565b6040805180820190915260209384018152928301525090565b606061041a8261057e565b61042357600080fd5b600061042e836105a5565b90508067ffffffffffffffff81111561044957610449610bf2565b60405190808252806020026020018201604052801561048e57816020015b60408051808201909152600080825260208201528152602001906001900390816104675790505b509150600061049c8461062d565b905060005b6104aa82610688565b156104e8576104b8826106ac565b8482815181106104ca576104ca610bdc565b602002602001018190525080806104e090610bab565b9150506104a1565b505050919050565b60606104fb82610706565b61050457600080fd5b6000806105108461072c565b90925090508067ffffffffffffffff81111561052e5761052e610bf2565b6040519080825280601f01601f191660200182016040528015610558576020820181803683370190505b5092506105668284836107d0565b5050919050565b60006105788261080e565b92915050565b600081602001516000141561059557506000919050565b50515160c060009190911a101590565b60006105b08261057e565b6105bc57506000919050565b81518051600090811a91906105d085610864565b6105da9083610b7c565b9050600060018660200151846105f09190610b7c565b6105fa9190610b94565b905060005b8183116101135761060f836108f2565b6106199084610b7c565b92508061062581610bab565b9150506105ff565b60408051608081018252600091810182815260608201839052815260208101919091526106598261057e565b61066257600080fd5b600061066d83610864565b83516106799190610b7c565b92825250602081019190915290565b8051602081015181516000929161069e91610b7c565b836020015110915050919050565b60408051808201909152600080825260208201526106c982610688565b1561006257602082015160006106de826108f2565b8284526020840181905290506106f48183610b7c565b6020850152506107019050565b919050565b600081602001516000141561071d57506000919050565b50515160c060009190911a1090565b60008061073883610706565b61074157600080fd5b8251805160001a90608082101561075d57946001945092505050565b60b882101561078b57600185602001516107779190610b94565b9250610784816001610b7c565b93506107c9565b602085015160b61983019081906107a490600190610b94565b6107ae9190610b94565b93506107ba8183610b7c565b6107c5906001610b7c565b9450505b5050915091565b6020601f820104836020840160005b838110156107fb576020810283810151908301526001016107df565b5050505060008251602001830152505050565b600061081982610706565b61082257600080fd5b60008061082e8461072c565b9092509050602081111561084157600080fd5b80610850575060009392505050565b806020036101000a82510492505050919050565b600081602001516000141561087b57506000919050565b8151805160001a906080821015610896575060009392505050565b60b88210806108b1575060c082101580156108b1575060f882105b156108c0575060019392505050565b60c08210156108e7576108d460b783610b94565b6108df906001610b7c565b949350505050565b6108d460f783610b94565b8051600090811a608081101561090b576001915061098a565b60b88110156109315761091f608082610b94565b61092a906001610b7c565b915061098a565b60c081101561095a57600183015160b76020839003016101000a9004810160b51901915061098a565b60f881101561096e5761091f60c082610b94565b600183015160f76020839003016101000a9004810160f5190191505b50919050565b80356001600160a01b038116811461070157600080fd5b600082601f8301126109b857600080fd5b813567ffffffffffffffff808211156109d3576109d3610bf2565b604051601f8301601f19908116603f011681019082821181831017156109fb576109fb610bf2565b81604052838152866020858801011115610a1457600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215610a4957600080fd5b610a5284610990565b925060208401359150604084013567ffffffffffffffff811115610a7557600080fd5b610a81868287016109a7565b9150509250925092565b60008060408385031215610a9e57600080fd5b610aa783610990565b9150602083013567ffffffffffffffff811115610ac357600080fd5b610acf858286016109a7565b9150509250929050565b600060208284031215610aeb57600080fd5b813567ffffffffffffffff811115610b0257600080fd5b6108df848285016109a7565b600060208284031215610b2057600080fd5b5035919050565b600060208083528351808285015260005b81811015610b5457858101830151858201604001528201610b38565b81811115610b66576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115610b8f57610b8f610bc6565b500190565b600082821015610ba657610ba6610bc6565b500390565b6000600019821415610bbf57610bbf610bc6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220afc4b020bfb5ea09963d131deb86a72fd866f4b6b9e109287e28f3a17422021864736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b50610c3e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80630fe640261461006757806310ba2039146100905780632ae31cc0146100bb5780638feb676c14610090578063b401d83f146100d0578063e4e26223146100e3575b600080fd5b61007a610075366004610a4a565b610104565b6040516100879190610aa1565b60405180910390f35b6100a361009e366004610af6565b61011d565b6040516001600160a01b039091168152602001610087565b6100ce6100c9366004610b2b565b6101b1565b005b61007a6100de366004610b44565b6101e7565b6100f66100f1366004610af6565b61021f565b604051908152602001610087565b60606000610113858585610251565b9695505050505050565b60008061013161012c846103c0565b61040f565b905060006101588260038151811061014b5761014b610b92565b602002602001015161040f565b9050805160011461016857600080fd5b60006101808260008151811061014b5761014b610b92565b905060006101136101aa8360008151811061019d5761019d610b92565b60200260200101516104f0565b6014015190565b6040518181527f98ab4df6be53ea2dac064846a792a2a8f68f04fe0d840eb824961c516440e2959060200160405180910390a150565b60606000610216847f98ab4df6be53ea2dac064846a792a2a8f68f04fe0d840eb824961c516440e29585610251565b95945050505050565b60008061022e61012c846103c0565b905060006102488260038151811061014b5761014b610b92565b51949350505050565b606080600061026261012c856103c0565b9050600061027c8260038151811061014b5761014b610b92565b905060005b815181101561035d5760006102a183838151811061014b5761014b610b92565b905060006102be6101aa8360008151811061019d5761019d610b92565b90506102d68260018151811061014b5761014b610b92565b96506102ee8260028151811061019d5761019d610b92565b955060006103158860008151811061030857610308610b92565b602002602001015161056d565b9050898114801561033757508a6001600160a01b0316826001600160a01b0316145b15610347575050505050506103b8565b505050808061035590610bbe565b915050610281565b5060405162461bcd60e51b815260206004820152602560248201527f4e6f206576656e7420666f756e6420696e207472616e73616374696f6e20726560448201526418d95a5c1d60da1b606482015260840160405180910390fd5b935093915050565b60408051808201909152600080825260208201528151806103f65750506040805180820190915260008082526020820152919050565b6040805180820190915260209384018152928301525090565b606061041a8261057e565b61042357600080fd5b600061042e836105a5565b90508067ffffffffffffffff811115610449576104496109a7565b60405190808252806020026020018201604052801561048e57816020015b60408051808201909152600080825260208201528152602001906001900390816104675790505b509150600061049c8461062d565b905060005b6104aa82610688565b156104e8576104b8826106ac565b8482815181106104ca576104ca610b92565b602002602001018190525080806104e090610bbe565b9150506104a1565b505050919050565b60606104fb82610706565b61050457600080fd5b6000806105108461072c565b90925090508067ffffffffffffffff81111561052e5761052e6109a7565b6040519080825280601f01601f191660200182016040528015610558576020820181803683370190505b5092506105668284836107d0565b5050919050565b60006105788261080e565b92915050565b600081602001516000141561059557506000919050565b50515160c060009190911a101590565b60006105b08261057e565b6105bc57506000919050565b81518051600090811a91906105d085610864565b6105da9083610bd9565b9050600060018660200151846105f09190610bd9565b6105fa9190610bf1565b905060005b8183116101135761060f836108f2565b6106199084610bd9565b92508061062581610bbe565b9150506105ff565b60408051608081018252600091810182815260608201839052815260208101919091526106598261057e565b61066257600080fd5b600061066d83610864565b83516106799190610bd9565b92825250602081019190915290565b8051602081015181516000929161069e91610bd9565b836020015110915050919050565b60408051808201909152600080825260208201526106c982610688565b1561006257602082015160006106de826108f2565b8284526020840181905290506106f48183610bd9565b6020850152506107019050565b919050565b600081602001516000141561071d57506000919050565b50515160c060009190911a1090565b60008061073883610706565b61074157600080fd5b8251805160001a90608082101561075d57946001945092505050565b60b882101561078b57600185602001516107779190610bf1565b9250610784816001610bd9565b93506107c9565b602085015160b61983019081906107a490600190610bf1565b6107ae9190610bf1565b93506107ba8183610bd9565b6107c5906001610bd9565b9450505b5050915091565b6020601f820104836020840160005b838110156107fb576020810283810151908301526001016107df565b5050505060008251602001830152505050565b600061081982610706565b61082257600080fd5b60008061082e8461072c565b9092509050602081111561084157600080fd5b80610850575060009392505050565b806020036101000a82510492505050919050565b600081602001516000141561087b57506000919050565b8151805160001a906080821015610896575060009392505050565b60b88210806108b1575060c082101580156108b1575060f882105b156108c0575060019392505050565b60c08210156108e7576108d460b783610bf1565b6108df906001610bd9565b949350505050565b6108d460f783610bf1565b8051600090811a608081101561090b576001915061098a565b60b88110156109315761091f608082610bf1565b61092a906001610bd9565b915061098a565b60c081101561095a57600183015160b76020839003016101000a9004810160b51901915061098a565b60f881101561096e5761091f60c082610bf1565b600183015160f76020839003016101000a9004810160f5190191505b50919050565b80356001600160a01b038116811461070157600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f8301126109ce57600080fd5b813567ffffffffffffffff808211156109e9576109e96109a7565b604051601f8301601f19908116603f01168101908282118183101715610a1157610a116109a7565b81604052838152866020858801011115610a2a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215610a5f57600080fd5b610a6884610990565b925060208401359150604084013567ffffffffffffffff811115610a8b57600080fd5b610a97868287016109bd565b9150509250925092565b600060208083528351808285015260005b81811015610ace57858101830151858201604001528201610ab2565b81811115610ae0576000604083870101525b50601f01601f1916929092016040019392505050565b600060208284031215610b0857600080fd5b813567ffffffffffffffff811115610b1f57600080fd5b6108df848285016109bd565b600060208284031215610b3d57600080fd5b5035919050565b60008060408385031215610b5757600080fd5b610b6083610990565b9150602083013567ffffffffffffffff811115610b7c57600080fd5b610b88858286016109bd565b9150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415610bd257610bd2610ba8565b5060010190565b60008219821115610bec57610bec610ba8565b500190565b600082821015610c0357610c03610ba8565b50039056fea2646970667358221220ead97fe85f7f0e4772aa2c433b672fa2ff8d17bf646a33873d3fb10b2731838364736f6c63430008090033"; public static final String FUNC_EMITTINGCONTRACTFIRSTLOG = "emittingContractFirstLog"; diff --git a/performance/base/singlebc-hotel-train/src/main/java/net/consensys/gpact/examples/singlebc/hoteltrain/soliditywrappers/Hotel.java b/performance/base/singlebc-hotel-train/src/main/java/net/consensys/gpact/examples/singlebc/hoteltrain/soliditywrappers/Hotel.java index f5181704..eb75a6eb 100644 --- a/performance/base/singlebc-hotel-train/src/main/java/net/consensys/gpact/examples/singlebc/hoteltrain/soliditywrappers/Hotel.java +++ b/performance/base/singlebc-hotel-train/src/main/java/net/consensys/gpact/examples/singlebc/hoteltrain/soliditywrappers/Hotel.java @@ -33,7 +33,7 @@ */ @SuppressWarnings("rawtypes") public class Hotel extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b50604051610a68380380610a6883398101604081905261002f91610062565b60058054336001600160a01b031991821617909155600680549091166001600160a01b0392909216919091179055610092565b60006020828403121561007457600080fd5b81516001600160a01b038116811461008b57600080fd5b9392505050565b6109c7806100a16000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637ebf2c601161005b5780637ebf2c60146100fb57806387441ba61461010e578063d131aa7e14610121578063f40109951461014257600080fd5b80631076575f1461008d5780631358646e146100a25780631b474cf7146100b55780633ca1a5b4146100e8575b600080fd5b6100a061009b3660046107ce565b610162565b005b6100a06100b0366004610865565b6101a7565b6100c86100c336600461082a565b6103f6565b604080519384526020840192909252908201526060015b60405180910390f35b6100a06100f6366004610843565b610437565b6100a0610109366004610843565b610460565b6100a061011c366004610891565b6104c1565b61013461012f36600461082a565b610661565b6040519081526020016100df565b61015561015036600461082a565b6106bf565b6040516100df91906108d0565b6005546001600160a01b0316331461017957600080fd5b6001600160a01b03918216600090815260046020526040902080546001600160a01b03191691909216179055565b336000908152600460205260409020546001600160a01b03166102215760405162461bcd60e51b815260206004820152602760248201527f53656e646572206973206e6f7420616e20617070726f7665642074726176656c604482015266206167656e637960c81b60648201526084015b60405180910390fd5b826102655760405162461bcd60e51b8152602060048201526014602482015273446174652063616e206e6f74206265207a65726f60601b6044820152606401610218565b60005b6001548110156103b3576000818152602081905260409020548281118015906102b257506000828152602081815260408083208884526001019091529020546001600160a01b0316155b156103a057600082815260208181526040808320888452600101825280832080546001600160a01b031916321790558683526002825280832085905560038252808320889055600654338452600492839052928190205460055491516323b872dd60e01b81526001600160a01b0391821693810193909352908116602483015260448201849052909116906323b872dd90606401602060405180830381600087803b15801561036057600080fd5b505af1158015610374573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103989190610801565b505050505050565b50806103ab81610934565b915050610268565b5060405162461bcd60e51b81526020600482015260126024820152714e6f20726f6f6d7320617661696c61626c6560701b6044820152606401610218565b505050565b60008181526002602090815260408083205460039092528220548061041e5760009250610430565b60008281526020819052604090205492505b9193909250565b6005546001600160a01b0316331461044e57600080fd5b60009182526020829052604090912055565b6005546001600160a01b0316331461047757600080fd5b60005b818110156103f15760018054600091829182918261049783610934565b909155508152602081019190915260400160002084905550806104b981610934565b91505061047a565b6005546001600160a01b031633146104d857600080fd5b8361051c5760405162461bcd60e51b8152602060048201526014602482015273446174652063616e206e6f74206265207a65726f60601b6044820152606401610218565b60005b6001548110156103b35760008181526020819052604090205483811180159061056957506000828152602081815260408083208984526001019091529020546001600160a01b0316155b1561064857600082815260208181526040808320898452600101825280832080546001600160a01b031916321790558783526002825280832085905560039091529081902087905560065460055491516323b872dd60e01b81526001600160a01b0386811660048301529283166024820152604481018490529116906323b872dd90606401602060405180830381600087803b15801561060857600080fd5b505af115801561061c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106409190610801565b50505061065b565b508061065381610934565b91505061051f565b50505050565b6000805b6001548110156106b9576000818152602081815260408083208684526001019091529020546001600160a01b0316806106a657826106a281610934565b9350505b50806106b181610934565b915050610665565b50919050565b606060006106cc83610661565b9050806001546106dc919061091d565b67ffffffffffffffff8111156106f4576106f461097b565b60405190808252806020026020018201604052801561071d578160200160208202803683370190505b5091506000805b6001548110156107aa576000818152602081815260408083208884526001019091529020546001600160a01b031680156107975780858461076481610934565b95508151811061077657610776610965565b60200260200101906001600160a01b031690816001600160a01b0316815250505b50806107a281610934565b915050610724565b505050919050565b80356001600160a01b03811681146107c957600080fd5b919050565b600080604083850312156107e157600080fd5b6107ea836107b2565b91506107f8602084016107b2565b90509250929050565b60006020828403121561081357600080fd5b8151801515811461082357600080fd5b9392505050565b60006020828403121561083c57600080fd5b5035919050565b6000806040838503121561085657600080fd5b50508035926020909101359150565b60008060006060848603121561087a57600080fd5b505081359360208301359350604090920135919050565b600080600080608085870312156108a757600080fd5b8435935060208501359250604085013591506108c5606086016107b2565b905092959194509250565b6020808252825182820181905260009190848201906040850190845b818110156109115783516001600160a01b0316835292840192918401916001016108ec565b50909695505050505050565b60008282101561092f5761092f61094f565b500390565b60006000198214156109485761094861094f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220102ae1e7d04cf552a2d9f5e360e1d18243fb3eebe333295d08b6792f495c0c3364736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b50604051610a68380380610a6883398101604081905261002f91610062565b60058054336001600160a01b031991821617909155600680549091166001600160a01b0392909216919091179055610092565b60006020828403121561007457600080fd5b81516001600160a01b038116811461008b57600080fd5b9392505050565b6109c7806100a16000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637ebf2c601161005b5780637ebf2c60146100fb57806387441ba61461010e578063d131aa7e14610121578063f40109951461014257600080fd5b80631076575f1461008d5780631358646e146100a25780631b474cf7146100b55780633ca1a5b4146100e8575b600080fd5b6100a061009b3660046107ce565b610162565b005b6100a06100b0366004610801565b6101a7565b6100c86100c336600461082d565b6103f6565b604080519384526020840192909252908201526060015b60405180910390f35b6100a06100f6366004610846565b610437565b6100a0610109366004610846565b610460565b6100a061011c366004610868565b6104c1565b61013461012f36600461082d565b610661565b6040519081526020016100df565b61015561015036600461082d565b6106bf565b6040516100df91906108a7565b6005546001600160a01b0316331461017957600080fd5b6001600160a01b03918216600090815260046020526040902080546001600160a01b03191691909216179055565b336000908152600460205260409020546001600160a01b03166102215760405162461bcd60e51b815260206004820152602760248201527f53656e646572206973206e6f7420616e20617070726f7665642074726176656c604482015266206167656e637960c81b60648201526084015b60405180910390fd5b826102655760405162461bcd60e51b8152602060048201526014602482015273446174652063616e206e6f74206265207a65726f60601b6044820152606401610218565b60005b6001548110156103b3576000818152602081905260409020548281118015906102b257506000828152602081815260408083208884526001019091529020546001600160a01b0316155b156103a057600082815260208181526040808320888452600101825280832080546001600160a01b031916321790558683526002825280832085905560038252808320889055600654338452600492839052928190205460055491516323b872dd60e01b81526001600160a01b0391821693810193909352908116602483015260448201849052909116906323b872dd90606401602060405180830381600087803b15801561036057600080fd5b505af1158015610374573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039891906108f4565b505050505050565b50806103ab81610933565b915050610268565b5060405162461bcd60e51b81526020600482015260126024820152714e6f20726f6f6d7320617661696c61626c6560701b6044820152606401610218565b505050565b60008181526002602090815260408083205460039092528220548061041e5760009250610430565b60008281526020819052604090205492505b9193909250565b6005546001600160a01b0316331461044e57600080fd5b60009182526020829052604090912055565b6005546001600160a01b0316331461047757600080fd5b60005b818110156103f15760018054600091829182918261049783610933565b909155508152602081019190915260400160002084905550806104b981610933565b91505061047a565b6005546001600160a01b031633146104d857600080fd5b8361051c5760405162461bcd60e51b8152602060048201526014602482015273446174652063616e206e6f74206265207a65726f60601b6044820152606401610218565b60005b6001548110156103b35760008181526020819052604090205483811180159061056957506000828152602081815260408083208984526001019091529020546001600160a01b0316155b1561064857600082815260208181526040808320898452600101825280832080546001600160a01b031916321790558783526002825280832085905560039091529081902087905560065460055491516323b872dd60e01b81526001600160a01b0386811660048301529283166024820152604481018490529116906323b872dd90606401602060405180830381600087803b15801561060857600080fd5b505af115801561061c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064091906108f4565b50505061065b565b508061065381610933565b91505061051f565b50505050565b6000805b6001548110156106b9576000818152602081815260408083208684526001019091529020546001600160a01b0316806106a657826106a281610933565b9350505b50806106b181610933565b915050610665565b50919050565b606060006106cc83610661565b9050806001546106dc919061094e565b67ffffffffffffffff8111156106f4576106f4610965565b60405190808252806020026020018201604052801561071d578160200160208202803683370190505b5091506000805b6001548110156107aa576000818152602081815260408083208884526001019091529020546001600160a01b031680156107975780858461076481610933565b9550815181106107765761077661097b565b60200260200101906001600160a01b031690816001600160a01b0316815250505b50806107a281610933565b915050610724565b505050919050565b80356001600160a01b03811681146107c957600080fd5b919050565b600080604083850312156107e157600080fd5b6107ea836107b2565b91506107f8602084016107b2565b90509250929050565b60008060006060848603121561081657600080fd5b505081359360208301359350604090920135919050565b60006020828403121561083f57600080fd5b5035919050565b6000806040838503121561085957600080fd5b50508035926020909101359150565b6000806000806080858703121561087e57600080fd5b84359350602085013592506040850135915061089c606086016107b2565b905092959194509250565b6020808252825182820181905260009190848201906040850190845b818110156108e85783516001600160a01b0316835292840192918401916001016108c3565b50909695505050505050565b60006020828403121561090657600080fd5b8151801515811461091657600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b60006000198214156109475761094761091d565b5060010190565b6000828210156109605761096061091d565b500390565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea26469706673582212201ea53c0c87a6ce40722969be9a62ae19bd5be7456da5a3a2ca9dd3a185de5fbb64736f6c63430008090033"; public static final String FUNC_ADDAPPROVEDTRAVELAGENCY = "addApprovedTravelAgency"; diff --git a/performance/base/singlebc-hotel-train/src/main/java/net/consensys/gpact/examples/singlebc/hoteltrain/soliditywrappers/TravelAgency.java b/performance/base/singlebc-hotel-train/src/main/java/net/consensys/gpact/examples/singlebc/hoteltrain/soliditywrappers/TravelAgency.java index 5b75e1c3..85d90f54 100644 --- a/performance/base/singlebc-hotel-train/src/main/java/net/consensys/gpact/examples/singlebc/hoteltrain/soliditywrappers/TravelAgency.java +++ b/performance/base/singlebc-hotel-train/src/main/java/net/consensys/gpact/examples/singlebc/hoteltrain/soliditywrappers/TravelAgency.java @@ -30,7 +30,7 @@ */ @SuppressWarnings("rawtypes") public class TravelAgency extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b506040516105e13803806105e183398101604081905261002f91610091565b60008054336001600160a01b0319918216179091556001949094556002805485166001600160a01b039485161790556003919091556004805490931691161790556100d7565b80516001600160a01b038116811461008c57600080fd5b919050565b600080600080608085870312156100a757600080fd5b845193506100b760208601610075565b9250604085015191506100cc60608601610075565b905092959194509250565b6104fb806100e66000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637652de46116100665780637652de461461010b5780638146b5c01461011e5780639d0599ac14610133578063a9dcc12414610146578063d598f8741461015957600080fd5b8063036b0edf14610098578063168fd46f146100c057806341b1637c146100d75780634d1177da14610102575b600080fd5b6100ab6100a636600461044b565b61016c565b60405190151581526020015b60405180910390f35b6100c960035481565b6040519081526020016100b7565b6004546100ea906001600160a01b031681565b6040516001600160a01b0390911681526020016100b7565b6100c960015481565b6100c961011936600461044b565b6101c3565b61013161012c366004610464565b6101e4565b005b6002546100ea906001600160a01b031681565b610131610154366004610464565b61037e565b6100c961016736600461044b565b61043b565b6000805b6006548110156101ba57826005828154811061018e5761018e6104af565b906000526020600020015414156101a85750600192915050565b806101b281610486565b915050610170565b50600092915050565b600681815481106101d357600080fd5b600091825260209091200154905081565b6000546001600160a01b031633146102435760405162461bcd60e51b815260206004820152601a60248201527f4f6e6c79206f776e65722063616e20646f20626f6f6b696e677300000000000060448201526064015b60405180910390fd5b6002546040516309ac323760e11b815260048101849052602481018390526064604482018190526001600160a01b0390921691631358646e9101600060405180830381600087803b15801561029757600080fd5b505af11580156102ab573d6000803e3d6000fd5b5050600480546040516309ac323760e11b8152918201869052602482018590526064604483018190526001600160a01b039091169350631358646e925001600060405180830381600087803b15801561030357600080fd5b505af1158015610317573d6000803e3d6000fd5b50506005805460018181019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0019390935550506006805491820181556000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0155565b6000546001600160a01b031633146103d85760405162461bcd60e51b815260206004820152601a60248201527f4f6e6c79206f776e65722063616e20646f20626f6f6b696e6773000000000000604482015260640161023a565b6005805460018181019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001919091556006805491820181556000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0155565b600581815481106101d357600080fd5b60006020828403121561045d57600080fd5b5035919050565b6000806040838503121561047757600080fd5b50508035926020909101359150565b60006000198214156104a857634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052603260045260246000fdfea264697066735822122044069a14ec9272ce381f9081e3d1e4c66759645c03976b396e4ecf63d7077bde64736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b506040516105e13803806105e183398101604081905261002f91610091565b60008054336001600160a01b0319918216179091556001949094556002805485166001600160a01b039485161790556003919091556004805490931691161790556100d7565b80516001600160a01b038116811461008c57600080fd5b919050565b600080600080608085870312156100a757600080fd5b845193506100b760208601610075565b9250604085015191506100cc60608601610075565b905092959194509250565b6104fb806100e66000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637652de46116100665780637652de461461010b5780638146b5c01461011e5780639d0599ac14610133578063a9dcc12414610146578063d598f8741461015957600080fd5b8063036b0edf14610098578063168fd46f146100c057806341b1637c146100d75780634d1177da14610102575b600080fd5b6100ab6100a636600461044b565b61016c565b60405190151581526020015b60405180910390f35b6100c960035481565b6040519081526020016100b7565b6004546100ea906001600160a01b031681565b6040516001600160a01b0390911681526020016100b7565b6100c960015481565b6100c961011936600461044b565b6101c3565b61013161012c366004610464565b6101e4565b005b6002546100ea906001600160a01b031681565b610131610154366004610464565b61037e565b6100c961016736600461044b565b61043b565b6000805b6006548110156101ba57826005828154811061018e5761018e610486565b906000526020600020015414156101a85750600192915050565b806101b28161049c565b915050610170565b50600092915050565b600681815481106101d357600080fd5b600091825260209091200154905081565b6000546001600160a01b031633146102435760405162461bcd60e51b815260206004820152601a60248201527f4f6e6c79206f776e65722063616e20646f20626f6f6b696e677300000000000060448201526064015b60405180910390fd5b6002546040516309ac323760e11b815260048101849052602481018390526064604482018190526001600160a01b0390921691631358646e9101600060405180830381600087803b15801561029757600080fd5b505af11580156102ab573d6000803e3d6000fd5b5050600480546040516309ac323760e11b8152918201869052602482018590526064604483018190526001600160a01b039091169350631358646e925001600060405180830381600087803b15801561030357600080fd5b505af1158015610317573d6000803e3d6000fd5b50506005805460018181019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0019390935550506006805491820181556000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0155565b6000546001600160a01b031633146103d85760405162461bcd60e51b815260206004820152601a60248201527f4f6e6c79206f776e65722063616e20646f20626f6f6b696e6773000000000000604482015260640161023a565b6005805460018181019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001919091556006805491820181556000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0155565b600581815481106101d357600080fd5b60006020828403121561045d57600080fd5b5035919050565b6000806040838503121561047757600080fd5b50508035926020909101359150565b634e487b7160e01b600052603260045260246000fd5b60006000198214156104be57634e487b7160e01b600052601160045260246000fd5b506001019056fea264697066735822122024fea8f182781524273f20243f770ede060c776f740cb2e82775d82011bc0cf064736f6c63430008090033"; public static final String FUNC_BOOKHOTELANDTRAIN = "bookHotelAndTrain"; diff --git a/performance/base/singlebc-read/src/main/java/net/consensys/gpact/examples/singlebc/read/soliditywrappers/ContractA.java b/performance/base/singlebc-read/src/main/java/net/consensys/gpact/examples/singlebc/read/soliditywrappers/ContractA.java index a8b99e26..2b27666e 100644 --- a/performance/base/singlebc-read/src/main/java/net/consensys/gpact/examples/singlebc/read/soliditywrappers/ContractA.java +++ b/performance/base/singlebc-read/src/main/java/net/consensys/gpact/examples/singlebc/read/soliditywrappers/ContractA.java @@ -37,7 +37,7 @@ */ @SuppressWarnings("rawtypes") public class ContractA extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b5060405161026738038061026783398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6101d4806100936000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80631c57718714610046578063a1f39bae1461005b578063e1cb0e5214610063575b600080fd5b61005961005436600461016c565b610078565b005b6100596100ae565b60015460405190815260200160405180910390f35b6040518181527fabdacda18abdb744b5ea95790fd361f37d4454a3e3269814cf272e2bafb7503d9060200160405180910390a150565b60008054906101000a90046001600160a01b03166001600160a01b0316636d4ce63c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156100fa57600080fd5b505afa15801561010e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101329190610185565b60018190556040519081527fabdacda18abdb744b5ea95790fd361f37d4454a3e3269814cf272e2bafb7503d9060200160405180910390a1565b60006020828403121561017e57600080fd5b5035919050565b60006020828403121561019757600080fd5b505191905056fea2646970667358221220af74e6b8cf0ceaa9c29ccde726c8c4fe0ba24a06f249788c740e1ec242030faf64736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b5060405161026738038061026783398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6101d4806100936000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80631c57718714610046578063a1f39bae1461005b578063e1cb0e5214610063575b600080fd5b61005961005436600461016c565b610078565b005b6100596100ae565b60015460405190815260200160405180910390f35b6040518181527fabdacda18abdb744b5ea95790fd361f37d4454a3e3269814cf272e2bafb7503d9060200160405180910390a150565b60008054906101000a90046001600160a01b03166001600160a01b0316636d4ce63c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156100fa57600080fd5b505afa15801561010e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101329190610185565b60018190556040519081527fabdacda18abdb744b5ea95790fd361f37d4454a3e3269814cf272e2bafb7503d9060200160405180910390a1565b60006020828403121561017e57600080fd5b5035919050565b60006020828403121561019757600080fd5b505191905056fea2646970667358221220bd3463b56e032d562c3b24dc7eaa3e14eeaf3d5937e0b73229737b9b97a4ec4c64736f6c63430008090033"; public static final String FUNC_DOREAD = "doRead"; diff --git a/performance/base/singlebc-read/src/main/java/net/consensys/gpact/examples/singlebc/read/soliditywrappers/ContractB.java b/performance/base/singlebc-read/src/main/java/net/consensys/gpact/examples/singlebc/read/soliditywrappers/ContractB.java index 3ff4689f..0d032712 100644 --- a/performance/base/singlebc-read/src/main/java/net/consensys/gpact/examples/singlebc/read/soliditywrappers/ContractB.java +++ b/performance/base/singlebc-read/src/main/java/net/consensys/gpact/examples/singlebc/read/soliditywrappers/ContractB.java @@ -37,7 +37,7 @@ */ @SuppressWarnings("rawtypes") public class ContractB extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b5060405161012438038061012483398101604081905261002f91610037565b600055610050565b60006020828403121561004957600080fd5b5051919050565b60c68061005e6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80636d4ce63c146037578063c1a24b6c14604c575b600080fd5b60005460405190815260200160405180910390f35b60526054565b005b7f9ebbca46e60e984aa522942ae547e34cddc84dec1c85971a1e80b27a23231b8a607d60005490565b60405190815260200160405180910390a156fea2646970667358221220384406a90089b8a74293a4e1ef6a8f6a9ef5a0a22c363522a8c466b7f013e45464736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b5060405161012438038061012483398101604081905261002f91610037565b600055610050565b60006020828403121561004957600080fd5b5051919050565b60c68061005e6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80636d4ce63c146037578063c1a24b6c14604c575b600080fd5b60005460405190815260200160405180910390f35b60526054565b005b7f9ebbca46e60e984aa522942ae547e34cddc84dec1c85971a1e80b27a23231b8a607d60005490565b60405190815260200160405180910390a156fea26469706673582212206bf932f0b2001c3f52210db0def1a3cd7ddd08ae93f820890ee34a4dd2f19f8064736f6c63430008090033"; public static final String FUNC_GET = "get"; diff --git a/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/Balances.java b/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/Balances.java index 43afa352..e7944f75 100644 --- a/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/Balances.java +++ b/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/Balances.java @@ -27,7 +27,7 @@ */ @SuppressWarnings("rawtypes") public class Balances extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b506102b2806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063beabacc814610046578063e30443bc1461005b578063f8b2cb4f14610085575b600080fd5b6100596100543660046101d1565b6100c0565b005b61005961006936600461020d565b6001600160a01b03909116600090815260208190526040902055565b6100ae6100933660046101af565b6001600160a01b031660009081526020819052604090205490565b60405190815260200160405180910390f35b6001600160a01b03838116600090815260208190526040808220549285168252902054828210156101435760405162461bcd60e51b8152602060048201526024808201527f56616c7565207472616e736665723a20696e73756666696369656e742062616c604482015263616e636560e01b606482015260840160405180910390fd5b61014d838361024f565b6001600160a01b0386166000908152602081905260409020556101708382610237565b6001600160a01b0390941660009081526020819052604090209390935550505050565b80356001600160a01b03811681146101aa57600080fd5b919050565b6000602082840312156101c157600080fd5b6101ca82610193565b9392505050565b6000806000606084860312156101e657600080fd5b6101ef84610193565b92506101fd60208501610193565b9150604084013590509250925092565b6000806040838503121561022057600080fd5b61022983610193565b946020939093013593505050565b6000821982111561024a5761024a610266565b500190565b60008282101561026157610261610266565b500390565b634e487b7160e01b600052601160045260246000fdfea26469706673582212208eb979a3c6b34eae2858d13ae086d3ee6f37732ddfee8474f031d326edc4765464736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b506102b2806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063beabacc814610046578063e30443bc1461005b578063f8b2cb4f14610085575b600080fd5b6100596100543660046101af565b6100c0565b005b6100596100693660046101eb565b6001600160a01b03909116600090815260208190526040902055565b6100ae610093366004610215565b6001600160a01b031660009081526020819052604090205490565b60405190815260200160405180910390f35b6001600160a01b03838116600090815260208190526040808220549285168252902054828210156101435760405162461bcd60e51b8152602060048201526024808201527f56616c7565207472616e736665723a20696e73756666696369656e742062616c604482015263616e636560e01b606482015260840160405180910390fd5b61014d838361024d565b6001600160a01b0386166000908152602081905260409020556101708382610264565b6001600160a01b0390941660009081526020819052604090209390935550505050565b80356001600160a01b03811681146101aa57600080fd5b919050565b6000806000606084860312156101c457600080fd5b6101cd84610193565b92506101db60208501610193565b9150604084013590509250925092565b600080604083850312156101fe57600080fd5b61020783610193565b946020939093013593505050565b60006020828403121561022757600080fd5b61023082610193565b9392505050565b634e487b7160e01b600052601160045260246000fd5b60008282101561025f5761025f610237565b500390565b6000821982111561027757610277610237565b50019056fea26469706673582212200aaadc591bd3ef999b6fbbf2fde3e0ef42b3ded047f3dab7ea842da7d0315a8264736f6c63430008090033"; public static final String FUNC_GETBALANCE = "getBalance"; diff --git a/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/BusLogic.java b/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/BusLogic.java index 1a354af0..3a737240 100644 --- a/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/BusLogic.java +++ b/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/BusLogic.java @@ -38,7 +38,7 @@ */ @SuppressWarnings("rawtypes") public class BusLogic extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b506040516103bb3803806103bb83398101604081905261002f9161008d565b600080546001600160a01b039485166001600160a01b0319918216179091556001805493851693821693909317909255600280549190931691161790556100d0565b80516001600160a01b038116811461008857600080fd5b919050565b6000806000606084860312156100a257600080fd5b6100ab84610071565b92506100b960208501610071565b91506100c760408501610071565b90509250925092565b6102dc806100df6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063d196c76e14610030575b600080fd5b61004361003e366004610224565b610045565b005b60015460408051634c6afee560e11b815290516000926001600160a01b0316916398d5fdca916004808301926020929190829003018186803b15801561008a57600080fd5b505afa15801561009e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100c29190610260565b905060006100d08383610279565b6000546040516317d5759960e31b81526001600160a01b03878116600483015288811660248301526044820184905292935091169063beabacc890606401600060405180830381600087803b15801561012857600080fd5b505af115801561013c573d6000803e3d6000fd5b505060025460405163042c38bb60e21b81526001600160a01b03898116600483015288811660248301526044820188905290911692506310b0e2ec9150606401600060405180830381600087803b15801561019657600080fd5b505af11580156101aa573d6000803e3d6000fd5b5050604080516001600160a01b03808a16825288166020820152908101869052606081018590527fe98a754d57da22349279d2240bff334f71728546e2052a6d667080cf21d97d979250608001905060405180910390a15050505050565b80356001600160a01b038116811461021f57600080fd5b919050565b60008060006060848603121561023957600080fd5b61024284610208565b925061025060208501610208565b9150604084013590509250925092565b60006020828403121561027257600080fd5b5051919050565b60008160001904831182151516156102a157634e487b7160e01b600052601160045260246000fd5b50029056fea2646970667358221220a699cfbea8e0f7ef1c86efe9b842087eec9ab0b756955253845348ba61e4914964736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b506040516103bb3803806103bb83398101604081905261002f9161008d565b600080546001600160a01b039485166001600160a01b0319918216179091556001805493851693821693909317909255600280549190931691161790556100d0565b80516001600160a01b038116811461008857600080fd5b919050565b6000806000606084860312156100a257600080fd5b6100ab84610071565b92506100b960208501610071565b91506100c760408501610071565b90509250925092565b6102dc806100df6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063d196c76e14610030575b600080fd5b61004361003e366004610224565b610045565b005b60015460408051634c6afee560e11b815290516000926001600160a01b0316916398d5fdca916004808301926020929190829003018186803b15801561008a57600080fd5b505afa15801561009e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100c29190610260565b905060006100d08383610279565b6000546040516317d5759960e31b81526001600160a01b03878116600483015288811660248301526044820184905292935091169063beabacc890606401600060405180830381600087803b15801561012857600080fd5b505af115801561013c573d6000803e3d6000fd5b505060025460405163042c38bb60e21b81526001600160a01b03898116600483015288811660248301526044820188905290911692506310b0e2ec9150606401600060405180830381600087803b15801561019657600080fd5b505af11580156101aa573d6000803e3d6000fd5b5050604080516001600160a01b03808a16825288166020820152908101869052606081018590527fe98a754d57da22349279d2240bff334f71728546e2052a6d667080cf21d97d979250608001905060405180910390a15050505050565b80356001600160a01b038116811461021f57600080fd5b919050565b60008060006060848603121561023957600080fd5b61024284610208565b925061025060208501610208565b9150604084013590509250925092565b60006020828403121561027257600080fd5b5051919050565b60008160001904831182151516156102a157634e487b7160e01b600052601160045260246000fd5b50029056fea2646970667358221220121b8b1db54d7f3a7d0b288fce87fd45ebbafde9a18747f5395df29736e9340d64736f6c63430008090033"; public static final String FUNC_STOCKSHIPMENT = "stockShipment"; diff --git a/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/PriceOracle.java b/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/PriceOracle.java index e320d021..8eeb65dc 100644 --- a/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/PriceOracle.java +++ b/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/PriceOracle.java @@ -27,7 +27,7 @@ */ @SuppressWarnings("rawtypes") public class PriceOracle extends Contract { - public static final String BINARY = "6080604052348015600f57600080fd5b5060ac8061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806391b7f5ed14603757806398d5fdca146049575b600080fd5b60476042366004605e565b600055565b005b60005460405190815260200160405180910390f35b600060208284031215606f57600080fd5b503591905056fea264697066735822122030945ebefa924a6466540d9b127d75e35ebc8a971e4a27274a755e5467183bb264736f6c63430008050033"; + public static final String BINARY = "6080604052348015600f57600080fd5b5060ac8061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806391b7f5ed14603757806398d5fdca146049575b600080fd5b60476042366004605e565b600055565b005b60005460405190815260200160405180910390f35b600060208284031215606f57600080fd5b503591905056fea26469706673582212207454e2b285ed3b7fe824685431d46b8cdd2236bed958c0fd6c125ed6829cd54864736f6c63430008090033"; public static final String FUNC_GETPRICE = "getPrice"; diff --git a/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/Stock.java b/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/Stock.java index 4ada7058..386c8833 100644 --- a/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/Stock.java +++ b/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/Stock.java @@ -27,7 +27,7 @@ */ @SuppressWarnings("rawtypes") public class Stock extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b506102b2806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806310b0e2ec146100465780638edf30ef1461005b578063c5eaabfb14610085575b600080fd5b6100596100543660046101d1565b6100c0565b005b61005961006936600461020d565b6001600160a01b03909116600090815260208190526040902055565b6100ae6100933660046101af565b6001600160a01b031660009081526020819052604090205490565b60405190815260200160405180910390f35b6001600160a01b03838116600090815260208190526040808220549285168252902054828210156101435760405162461bcd60e51b8152602060048201526024808201527f53746f636b207472616e736665723a20696e73756666696369656e742062616c604482015263616e636560e01b606482015260840160405180910390fd5b61014d838361024f565b6001600160a01b0386166000908152602081905260409020556101708382610237565b6001600160a01b0390941660009081526020819052604090209390935550505050565b80356001600160a01b03811681146101aa57600080fd5b919050565b6000602082840312156101c157600080fd5b6101ca82610193565b9392505050565b6000806000606084860312156101e657600080fd5b6101ef84610193565b92506101fd60208501610193565b9150604084013590509250925092565b6000806040838503121561022057600080fd5b61022983610193565b946020939093013593505050565b6000821982111561024a5761024a610266565b500190565b60008282101561026157610261610266565b500390565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220b5c7e2e8fbed60700aca0f1a8ac7ffebc526e9b011c6f674dee9a2010159e0eb64736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b506102b2806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806310b0e2ec146100465780638edf30ef1461005b578063c5eaabfb14610085575b600080fd5b6100596100543660046101af565b6100c0565b005b6100596100693660046101eb565b6001600160a01b03909116600090815260208190526040902055565b6100ae610093366004610215565b6001600160a01b031660009081526020819052604090205490565b60405190815260200160405180910390f35b6001600160a01b03838116600090815260208190526040808220549285168252902054828210156101435760405162461bcd60e51b8152602060048201526024808201527f53746f636b207472616e736665723a20696e73756666696369656e742062616c604482015263616e636560e01b606482015260840160405180910390fd5b61014d838361024d565b6001600160a01b0386166000908152602081905260409020556101708382610264565b6001600160a01b0390941660009081526020819052604090209390935550505050565b80356001600160a01b03811681146101aa57600080fd5b919050565b6000806000606084860312156101c457600080fd5b6101cd84610193565b92506101db60208501610193565b9150604084013590509250925092565b600080604083850312156101fe57600080fd5b61020783610193565b946020939093013593505050565b60006020828403121561022757600080fd5b61023082610193565b9392505050565b634e487b7160e01b600052601160045260246000fd5b60008282101561025f5761025f610237565b500390565b6000821982111561027757610277610237565b50019056fea264697066735822122051899b8905b456b5f0218dd42bb110d33a438c2fc774d5dbf2c8f1be34161c3a64736f6c63430008090033"; public static final String FUNC_DELIVERY = "delivery"; diff --git a/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/TradeWallet.java b/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/TradeWallet.java index 3705a79b..6cc7c632 100644 --- a/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/TradeWallet.java +++ b/performance/base/singlebc-trade/src/main/java/net/consensys/gpact/examples/singlebc/trade/soliditywrappers/TradeWallet.java @@ -38,7 +38,7 @@ */ @SuppressWarnings("rawtypes") public class TradeWallet extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b5060405161035438038061035483398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6102c1806100936000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630b3504e6146100515780632db25e0514610067578063c8de7c601461007a578063ff9557651461008f575b600080fd5b6001545b60405190815260200160405180910390f35b61005561007536600461025c565b6100a2565b61008d610088366004610224565b6100c9565b005b61008d61009d366004610224565b6101ec565b6000600182815481106100b7576100b7610275565b90600052602060002001549050919050565b6000546040516368cb63b760e11b81526001600160a01b038481166004830152326024830152604482018490529091169063d196c76e90606401600060405180830381600087803b15801561011d57600080fd5b505af1158015610131573d6000803e3d6000fd5b50506040516bffffffffffffffffffffffff19606086811b8216602084015232901b166034820152604881018490526000925060680190505b60408051808303601f190181529082905280516020918201206001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60181905580835292507f979597633b92b98cf82a1b3e32dee4f4e729c2be11ced37801cbcea939cd83a8910160405180910390a1505050565b6040516bffffffffffffffffffffffff19606084811b8216602084015232901b1660348201526048810182905260009060680161016a565b6000806040838503121561023757600080fd5b82356001600160a01b038116811461024e57600080fd5b946020939093013593505050565b60006020828403121561026e57600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fdfea264697066735822122098b66ee03e62a3cebd0717bf007ca28d9e749153fc76a6d176f461be20dd52f764736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b5060405161035438038061035483398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6102c1806100936000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630b3504e6146100515780632db25e0514610067578063c8de7c601461007a578063ff9557651461008f575b600080fd5b6001545b60405190815260200160405180910390f35b610055610075366004610224565b6100a2565b61008d61008836600461023d565b6100c9565b005b61008d61009d36600461023d565b6101ec565b6000600182815481106100b7576100b7610275565b90600052602060002001549050919050565b6000546040516368cb63b760e11b81526001600160a01b038481166004830152326024830152604482018490529091169063d196c76e90606401600060405180830381600087803b15801561011d57600080fd5b505af1158015610131573d6000803e3d6000fd5b50506040516bffffffffffffffffffffffff19606086811b8216602084015232901b166034820152604881018490526000925060680190505b60408051808303601f190181529082905280516020918201206001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60181905580835292507f979597633b92b98cf82a1b3e32dee4f4e729c2be11ced37801cbcea939cd83a8910160405180910390a1505050565b6040516bffffffffffffffffffffffff19606084811b8216602084015232901b1660348201526048810182905260009060680161016a565b60006020828403121561023657600080fd5b5035919050565b6000806040838503121561025057600080fd5b82356001600160a01b038116811461026757600080fd5b946020939093013593505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220c8ed9c759abe0f4a54c1913500f84a2d939c36f2bbcab207405fe173f5b3ff6464736f6c63430008090033"; public static final String FUNC_EXECUTETRADE = "executeTrade"; diff --git a/performance/base/singlebc-write/src/main/java/net/consensys/gpact/examples/singlebc/write/soliditywrappers/ContractA.java b/performance/base/singlebc-write/src/main/java/net/consensys/gpact/examples/singlebc/write/soliditywrappers/ContractA.java index 66949b5f..a73c856e 100644 --- a/performance/base/singlebc-write/src/main/java/net/consensys/gpact/examples/singlebc/write/soliditywrappers/ContractA.java +++ b/performance/base/singlebc-write/src/main/java/net/consensys/gpact/examples/singlebc/write/soliditywrappers/ContractA.java @@ -27,7 +27,7 @@ */ @SuppressWarnings("rawtypes") public class ContractA extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b5060405161017d38038061017d83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b60eb806100926000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c385474014602d575b600080fd5b603c6038366004609d565b603e565b005b6000546040516360fe47b160e01b8152600481018390526001600160a01b03909116906360fe47b190602401600060405180830381600087803b158015608357600080fd5b505af11580156096573d6000803e3d6000fd5b5050505050565b60006020828403121560ae57600080fd5b503591905056fea26469706673582212201950e7ff38e3ff4177dba9cf64185366ccf4d5dd3723432a291ac7b3998c882c64736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b5060405161017d38038061017d83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b60eb806100926000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c385474014602d575b600080fd5b603c6038366004609d565b603e565b005b6000546040516360fe47b160e01b8152600481018390526001600160a01b03909116906360fe47b190602401600060405180830381600087803b158015608357600080fd5b505af11580156096573d6000803e3d6000fd5b5050505050565b60006020828403121560ae57600080fd5b503591905056fea2646970667358221220f874a8b298021d79f29c674c1cee9614dc26d6dcaf7a97f4f005481b77a0ede764736f6c63430008090033"; public static final String FUNC_DOWRITE = "doWrite"; diff --git a/performance/base/singlebc-write/src/main/java/net/consensys/gpact/examples/singlebc/write/soliditywrappers/ContractB.java b/performance/base/singlebc-write/src/main/java/net/consensys/gpact/examples/singlebc/write/soliditywrappers/ContractB.java index 0b4e4f8b..c6a1e2ea 100644 --- a/performance/base/singlebc-write/src/main/java/net/consensys/gpact/examples/singlebc/write/soliditywrappers/ContractB.java +++ b/performance/base/singlebc-write/src/main/java/net/consensys/gpact/examples/singlebc/write/soliditywrappers/ContractB.java @@ -36,7 +36,7 @@ */ @SuppressWarnings("rawtypes") public class ContractB extends Contract { - public static final String BINARY = "608060405234801561001057600080fd5b5060e68061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806360fe47b1146037578063e1cb0e52146048575b600080fd5b604660423660046098565b605d565b005b60005460405190815260200160405180910390f35b60008190556040518181527fbc9e8ea3b0777e6b9815f4c534668e08ddcaa8595a383ac46aebb40336ce81d79060200160405180910390a150565b60006020828403121560a957600080fd5b503591905056fea2646970667358221220c63b0770da6c2a909da0243c96e044eacd3f4abcf0ed33f60e627715da07db2f64736f6c63430008050033"; + public static final String BINARY = "608060405234801561001057600080fd5b5060e68061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806360fe47b1146037578063e1cb0e52146048575b600080fd5b604660423660046098565b605d565b005b60005460405190815260200160405180910390f35b60008190556040518181527fbc9e8ea3b0777e6b9815f4c534668e08ddcaa8595a383ac46aebb40336ce81d79060200160405180910390a150565b60006020828403121560a957600080fd5b503591905056fea26469706673582212207f3889a6d6c80f4e55ac811c30b50211965f291d3faa9454135e20ace500665864736f6c63430008090033"; public static final String FUNC_GETVAL = "getVal";