@layerzerolabs/lz-evm-oapp-v2 2.1.21 → 2.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/artifacts/contracts/oapp/OApp.sol/OApp.json +40 -7
- package/artifacts/contracts/oapp/OAppReceiver.sol/OAppReceiver.json +40 -7
- package/artifacts/contracts/oapp/examples/OmniCounter.sol/OmniCounter.json +48 -15
- package/artifacts/contracts/oapp/examples/OmniCounterAbstract.sol/MsgCodec.json +2 -2
- package/artifacts/contracts/oapp/examples/OmniCounterAbstract.sol/OmniCounterAbstract.json +46 -13
- package/artifacts/contracts/oapp/examples/OmniCounterPreCrime.sol/OmniCounterPreCrime.json +2 -2
- package/artifacts/contracts/oapp/interfaces/IOAppReceiver.sol/IOAppReceiver.json +37 -4
- package/artifacts/contracts/oapp/utils/RateLimiter.sol/RateLimiter.json +104 -0
- package/artifacts/contracts/oft/OFT.sol/OFT.json +46 -13
- package/artifacts/contracts/oft/OFTAdapter.sol/OFTAdapter.json +46 -13
- package/artifacts/contracts/oft/OFTCore.sol/OFTCore.json +46 -13
- package/contracts/oapp/OAppReceiver.sol +17 -7
- package/contracts/oapp/examples/OmniCounterAbstract.sol +1 -0
- package/contracts/oapp/interfaces/IOAppReceiver.sol +14 -4
- package/contracts/oapp/utils/RateLimiter.sol +229 -0
- package/contracts/oft/OFT.sol +4 -2
- package/contracts/oft/OFTAdapter.sol +4 -2
- package/contracts/oft/OFTCore.sol +3 -0
- package/package.json +7 -7
|
@@ -361,8 +361,8 @@
|
|
|
361
361
|
"type": "function"
|
|
362
362
|
}
|
|
363
363
|
],
|
|
364
|
-
"bytecode": "0x60e06040523480156200001157600080fd5b5060405162002da338038062002da383398101604081905262000034916200013c565b81816200004133620000cf565b6001600160a01b03808316608052811660a0819052604080516352ae287960e01b815290516352ae2879916004808201926020929091908290030181865afa15801562000092573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000b8919062000174565b6001600160a01b031660c052506200019992505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200013757600080fd5b919050565b600080604083850312156200015057600080fd5b6200015b836200011f565b91506200016b602084016200011f565b90509250929050565b6000602082840312156200018757600080fd5b62000192826200011f565b9392505050565b60805160a05160c051612bb7620001ec6000396000818161018d0152611b9b01526000818161029f015281816105f0015281816111d90152611384015260008181611a2f0152611bd90152612bb76000f3fe6080604052600436106100dd5760003560e01c80638e9e70991161007f578063bf7b5d7a11610059578063bf7b5d7a1461028d578063f0cd3836146102c1578063f2fde38b146102e1578063f8bcddf61461030157600080fd5b80638e9e709914610236578063afea44ef1461024b578063b9a1f5e71461026b57600080fd5b806352ae2879116100bb57806352ae28791461017b57806354fd4d50146101d4578063715018a6146101f65780638da5cb5b1461020b57600080fd5b806310f9cf3a146100e25780632913daa01461010457806350dfa9371461015b575b600080fd5b3480156100ee57600080fd5b506101026100fd3660046120c1565b610321565b005b34801561011057600080fd5b5060005461013d9074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b61016e61016936600461215b565b610539565b6040516101529190612235565b34801561018757600080fd5b506101af7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610152565b3480156101e057600080fd5b5060408051600281526000602082015201610152565b34801561020257600080fd5b506101026105d4565b34801561021757600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166101af565b34801561024257600080fd5b5061016e6105e8565b34801561025757600080fd5b5061010261026636600461225e565b610859565b34801561027757600080fd5b506102806108b4565b604051610152919061227b565b34801561029957600080fd5b506101af7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102cd57600080fd5b5061016e6102dc36600461215b565b610933565b3480156102ed57600080fd5b506101026102fc3660046122da565b610bd0565b34801561030d57600080fd5b5061010261031c366004612310565b610c8c565b3361dead1461035c576040517f9cbfe06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061039c8787878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cfc92505050565b905060008267ffffffffffffffff8111156103b9576103b9612385565b6040519080825280602002602001820160405280156103e2578160200160208202803683370190505b50905060008367ffffffffffffffff81111561040057610400612385565b60405190808252806020026020018201604052801561043357816020015b606081526020019060019003908161041e5790505b50905060005b8481101561051857366000878784818110610456576104566123b4565b905060200281019061046891906123e3565b909250905061047b600460008385612448565b61048491612472565b60e01c858481518110610499576104996123b4565b63ffffffff909216602092830291909101909101526104bb8160048185612448565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505086518792508691508110610503576105036123b4565b60209081029190910101525050600101610439565b506105238383610e6a565b61052e838383610f54565b505050505050505050565b60603361dead14610576576040517f9cbfe06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006105b68686868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cfc92505050565b90506105c1816110d2565b6105ca8161137d565b9695505050505050565b6105dc6114e4565b6105e66000611565565b565b6001546060907f000000000000000000000000000000000000000000000000000000000000000090819060009067ffffffffffffffff81111561062d5761062d612385565b60405190808252806020026020018201604052801561068857816020015b6106756040518060600160405280600063ffffffff16815260200160008152602001600081525090565b81526020019060019003908161064b5790505b50905060005b600154811015610830576000600182815481106106ad576106ad6123b4565b600091825260209182902060039190910201546040805160608101825263ffffffff90921680835290517f56a4728900000000000000000000000000000000000000000000000000000000815260048101829052909350909182019073ffffffffffffffffffffffffffffffffffffffff8716906356a4728990602401602060405180830381865afa158015610747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076b91906124ba565b81526040517f622f17f600000000000000000000000000000000000000000000000000000000815263ffffffff8416600482015260209091019073ffffffffffffffffffffffffffffffffffffffff87169063622f17f690602401602060405180830381865afa1580156107e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080791906124ba565b81525083838151811061081c5761081c6123b4565b60209081029190910101525060010161068e565b5080604051602001610842919061227b565b604051602081830303815290604052935050505090565b6108616114e4565b6000805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60606001805480602002602001604051908101604052809291908181526020016000905b8282101561092a5760008481526020908190206040805160608101825260038602909201805463ffffffff168352600180820154848601526002909101549183019190915290835290920191016108d8565b50505050905090565b60603361dead14610970576040517f9cbfe06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546040517e0200000000000000000000000000000000000000000000000000000000000060208201527401000000000000000000000000000000000000000090910460c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166022820152602a01604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060008515610a6557610a60610a5b8888888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cfc92505050565b6115da565b610ade565b6001805480602002602001604051908101604052809291908181526020016000905b82821015610ad95760008481526020908190206040805160608101825260038602909201805463ffffffff16835260018082015484860152600290910154918301919091529083529092019101610a87565b505050505b805190915015610bc6578051604051610afd90849083906020016124d3565b604051602081830303815290604052925060005b8161ffff16811015610bc35783838281518110610b3057610b306123b4565b602002602001015160000151848381518110610b4e57610b4e6123b4565b602002602001015160200151858481518110610b6c57610b6c6123b4565b602002602001015160400151604051602001610b8b949392919061251d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529350600101610b11565b50505b5095945050505050565b610bd86114e4565b73ffffffffffffffffffffffffffffffffffffffff8116610c80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610c8981611565565b50565b610c946114e4565b610ca060016000612017565b60005b81811015610cf7576001838383818110610cbf57610cbf6123b4565b835460018101855560009485526020909420606090910292909201926003029091019050610ced8282612586565b5050600101610ca3565b505050565b60608267ffffffffffffffff811115610d1757610d17612385565b604051908082528060200260200182016040528015610dbd57816020015b604080516101608101825260006101008201818152610120830182905261014083018290528252602080830182905292820181905260608083018290526080830182905260a083019190915260c0820181905260e082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610d355790505b50905060005b83811015610e6257366000868684818110610de057610de06123b4565b9050602002810190610df291906123e3565b91509150610e0082826118a1565b848481518110610e1257610e126123b4565b6020026020010181905250848381518110610e2f57610e2f6123b4565b6020026020010151848481518110610e4957610e496123b4565b6020908102919091010151608001525050600101610dc3565b509392505050565b815115610f00576000610e7c836115da565b905060005b8151811015610efd576000828281518110610e9e57610e9e6123b4565b6020026020010151600001519050610eb684826119d4565b610ef4576040517f01992f2a00000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610c77565b50600101610e81565b50505b6000610f0a611a2b565b9050610f1682826119d4565b610cf7576040517f01992f2a00000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610c77565b6000610f5e611a2b565b9050606060005b8451811015610fd6578263ffffffff16858281518110610f8757610f876123b4565b602002602001015163ffffffff1603610fce57838181518110610fac57610fac6123b4565b6020026020010151806020019051810190610fc79190612650565b9150610fd6565b600101610f65565b5060005b84518110156110ca576000858281518110610ff757610ff76123b4565b602002602001015190506000858381518110611015576110156123b4565b60200260200101518060200190518101906110309190612650565b9050600061103e8584611ac1565b509050600061104d8388611ac1565b915050808211156110ba576040517f1915975700000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e626f756e64436f756e74203e206f7574626f756e64436f756e74000000006044820152606401610c77565b505060019092019150610fda9050565b505050505050565b60005481517401000000000000000000000000000000000000000090910467ffffffffffffffff1610156111605760005481516040517f9db086050000000000000000000000000000000000000000000000000000000081527401000000000000000000000000000000000000000090920467ffffffffffffffff1660048301526024820152604401610c77565b805115610c895760008080805b845181101561137657600085828151811061118a5761118a6123b4565b602090810291909101810151805180519201516040517f5a0dfe4d00000000000000000000000000000000000000000000000000000000815263ffffffff9093166004840152602483015291507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635a0dfe4d90604401602060405180830381865afa158015611235573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611259919061272d565b611263575061136e565b80515163ffffffff80871691161080611295575080515163ffffffff8681169116148015611295575080516020015184115b156112cc576040517f50823c8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80515163ffffffff86811691161415806112eb57508051602001518414155b1561130c578051805160209091015190955093506113098585611b5e565b92505b6113158361277e565b92508267ffffffffffffffff1681600001516040015167ffffffffffffffff161461136c576040517f50823c8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60010161116d565b5050505050565b60606000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163463bd815db060e01b866040516024016113d391906127a5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161145c919061290b565b60006040518083038185875af1925050503d8060008114611499576040519150601f19603f3d011682016040523d82523d6000602084013e61149e565b606091505b509150915060006114af8383611c4d565b90506114b9611a2b565b816040516020016114cb929190612927565b6040516020818303038152906040529350505050919050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c77565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606060006001805480602002602001604051908101604052809291908181526020016000905b828210156116525760008481526020908190206040805160608101825260038602909201805463ffffffff16835260018082015484860152600290910154918301919091529083529092019101611600565b5050505090506000835167ffffffffffffffff81111561167457611674612385565b6040519080825280602002602001820160405280156116dd57816020015b60408051606081018252600080825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816116925790505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005b85518110156117af576000868281518110611721576117216123b4565b602002602001015160000151600001519050600061173f8683611d6c565b90506000811215801561175b575060006117598684611d6c565b125b156117a5578361176a81612972565b94505085818151811061177f5761177f6123b4565b6020026020010151858581518110611799576117996123b4565b60200260200101819052505b5050600101611704565b50600081126118995760006117c58260016129aa565b90508067ffffffffffffffff8111156117e0576117e0612385565b60405190808252806020026020018201604052801561184957816020015b60408051606081018252600080825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816117fe5790505b50945060005b8181101561189657838181518110611869576118696123b4565b6020026020010151868281518110611883576118836123b4565b602090810291909101015260010161184f565b50505b505050919050565b6040805161016081018252600061010082018181526101208301829052610140830182905282526020820181905291810182905260608082018390526080820183905260a082019290925260c0810182905260e081019190915260405180606001604052806119108585611de1565b63ffffffff1681526020016119258585611e04565b81526020016119348585611e1d565b67ffffffffffffffff169052815261194c8383611e40565b63ffffffff1660208201526119618383611e50565b73ffffffffffffffffffffffffffffffffffffffff1660408201526119868383611e62565b60608201526119958383611e72565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060c082015292915050565b6000805b8351811015611a1f578263ffffffff168482815181106119fa576119fa6123b4565b602002602001015163ffffffff1603611a17576001915050611a25565b6001016119d8565b50600090505b92915050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abc91906129bd565b905090565b60008060005b8451811015611b4e578363ffffffff16858281518110611ae957611ae96123b4565b60200260200101516000015163ffffffff1603611b4657848181518110611b1257611b126123b4565b602002602001015160200151858281518110611b3057611b306123b4565b6020026020010151604001519250925050611b57565b600101611ac7565b50600080915091505b9250929050565b6040517fa0dd43fc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015263ffffffff84166024830152604482018390526000917f00000000000000000000000000000000000000000000000000000000000000009091169063a0dd43fc90606401602060405180830381865afa158015611c22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4691906129da565b9392505050565b60608215611cb7576040517f614cbd8a00000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f2072657665727400000000000000000000000000000000000000000000006044820152606401610c77565b7f8351eea700000000000000000000000000000000000000000000000000000000611ce1836129f7565b7fffffffff000000000000000000000000000000000000000000000000000000001614611d3c57816040517f614cbd8a000000000000000000000000000000000000000000000000000000008152600401610c779190612235565b611d566004808451611d4e9190612a43565b849190611e8d565b905080806020019051810190611c469190612a56565b6000805b8351811015611db8578263ffffffff16848281518110611d9257611d926123b4565b60200260200101516000015163ffffffff1603611db0579050611a25565b600101611d70565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9392505050565b6000611df1600d60098486612448565b611dfa91612472565b60e01c9392505050565b6000611e14602d600d8486612448565b611c4691612aff565b6000611e2d600960018486612448565b611e3691612b3b565b60c01c9392505050565b6000611df16031602d8486612448565b6000611c46611e5f8484612007565b90565b6000611e14607160518486612448565b366000611e828360718187612448565b915091509250929050565b606081611e9b81601f6129aa565b1015611f03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610c77565b611f0d82846129aa565b84511015611f77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610c77565b606082158015611f965760405191506000825260208201604052611ffe565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611fcf578051835260209283019201611fb7565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b6000611e14605160318486612448565b5080546000825560030290600052602060002090810190610c8991905b808211156120785780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001681556000600182018190556002820155600301612034565b5090565b60008083601f84011261208e57600080fd5b50813567ffffffffffffffff8111156120a657600080fd5b6020830191508360208260051b8501011115611b5757600080fd5b600080600080600080606087890312156120da57600080fd5b863567ffffffffffffffff808211156120f257600080fd5b6120fe8a838b0161207c565b9098509650602089013591508082111561211757600080fd5b6121238a838b0161207c565b9096509450604089013591508082111561213c57600080fd5b5061214989828a0161207c565b979a9699509497509295939492505050565b6000806000806040858703121561217157600080fd5b843567ffffffffffffffff8082111561218957600080fd5b6121958883890161207c565b909650945060208701359150808211156121ae57600080fd5b506121bb8782880161207c565b95989497509550505050565b60005b838110156121e25781810151838201526020016121ca565b50506000910152565b600081518084526122038160208601602086016121c7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611c4660208301846121eb565b67ffffffffffffffff81168114610c8957600080fd5b60006020828403121561227057600080fd5b8135611c4681612248565b602080825282518282018190526000919060409081850190868401855b828110156122cd578151805163ffffffff16855286810151878601528501518585015260609093019290850190600101612298565b5091979650505050505050565b6000602082840312156122ec57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114611c4657600080fd5b6000806020838503121561232357600080fd5b823567ffffffffffffffff8082111561233b57600080fd5b818501915085601f83011261234f57600080fd5b81358181111561235e57600080fd5b86602060608302850101111561237357600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261241857600080fd5b83018035915067ffffffffffffffff82111561243357600080fd5b602001915036819003821315611b5757600080fd5b6000808585111561245857600080fd5b8386111561246557600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156124b25780818660040360031b1b83161692505b505092915050565b6000602082840312156124cc57600080fd5b5051919050565b600083516124e58184602088016121c7565b60f09390931b7fffff000000000000000000000000000000000000000000000000000000000000169190920190815260020192915050565b6000855161252f818460208a016121c7565b60e09590951b7fffffffff0000000000000000000000000000000000000000000000000000000016919094019081526004810192909252602482015260440192915050565b63ffffffff81168114610c8957600080fd5b813561259181612574565b63ffffffff81167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000008354161782555060208201356001820155604082013560028201555050565b6040516060810167ffffffffffffffff811182821017156125fb576125fb612385565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561264857612648612385565b604052919050565b6000602080838503121561266357600080fd5b825167ffffffffffffffff8082111561267b57600080fd5b818501915085601f83011261268f57600080fd5b8151818111156126a1576126a1612385565b6126af848260051b01612601565b818152848101925060609182028401850191888311156126ce57600080fd5b938501935b828510156127215780858a0312156126eb5760008081fd5b6126f36125d8565b85516126fe81612574565b8152858701518782015260408087015190820152845293840193928501926126d3565b50979650505050505050565b60006020828403121561273f57600080fd5b81518015158114611c4657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681810361279b5761279b61274f565b6001019392505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156128fd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08984030185528151610140612831858351805163ffffffff1682526020808201519083015260409081015167ffffffffffffffff16910152565b8882015160606128488188018363ffffffff169052565b89840151915060806128718189018473ffffffffffffffffffffffffffffffffffffffff169052565b9084015160a0888101919091529084015160c08089019190915290840151915060e0906128b58289018473ffffffffffffffffffffffffffffffffffffffff169052565b840151610100880184905291506128ce878401836121eb565b9301518684036101208801529291506128e9905081836121eb565b9689019694505050908601906001016127ce565b509098975050505050505050565b6000825161291d8184602087016121c7565b9190910192915050565b7fffffffff000000000000000000000000000000000000000000000000000000008360e01b168152600082516129648160048501602087016121c7565b919091016004019392505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129a3576129a361274f565b5060010190565b80820180821115611a2557611a2561274f565b6000602082840312156129cf57600080fd5b8151611c4681612574565b6000602082840312156129ec57600080fd5b8151611c4681612248565b6000815160208301517fffffffff00000000000000000000000000000000000000000000000000000000808216935060048310156118995760049290920360031b82901b161692915050565b81810381811115611a2557611a2561274f565b600060208284031215612a6857600080fd5b815167ffffffffffffffff80821115612a8057600080fd5b818401915084601f830112612a9457600080fd5b815181811115612aa657612aa6612385565b612ad760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612601565b9150808252856020828501011115612aee57600080fd5b611ffe8160208401602086016121c7565b80356020831015611a25577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156124b25760089490940360031b84901b169092169291505056fea2646970667358221220da814a474a6d45420d704e18ad63f897a187c9c1defeaecb87aee4372766388964736f6c63430008160033",
|
|
365
|
-
"deployedBytecode": "0x6080604052600436106100dd5760003560e01c80638e9e70991161007f578063bf7b5d7a11610059578063bf7b5d7a1461028d578063f0cd3836146102c1578063f2fde38b146102e1578063f8bcddf61461030157600080fd5b80638e9e709914610236578063afea44ef1461024b578063b9a1f5e71461026b57600080fd5b806352ae2879116100bb57806352ae28791461017b57806354fd4d50146101d4578063715018a6146101f65780638da5cb5b1461020b57600080fd5b806310f9cf3a146100e25780632913daa01461010457806350dfa9371461015b575b600080fd5b3480156100ee57600080fd5b506101026100fd3660046120c1565b610321565b005b34801561011057600080fd5b5060005461013d9074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b61016e61016936600461215b565b610539565b6040516101529190612235565b34801561018757600080fd5b506101af7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610152565b3480156101e057600080fd5b5060408051600281526000602082015201610152565b34801561020257600080fd5b506101026105d4565b34801561021757600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166101af565b34801561024257600080fd5b5061016e6105e8565b34801561025757600080fd5b5061010261026636600461225e565b610859565b34801561027757600080fd5b506102806108b4565b604051610152919061227b565b34801561029957600080fd5b506101af7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102cd57600080fd5b5061016e6102dc36600461215b565b610933565b3480156102ed57600080fd5b506101026102fc3660046122da565b610bd0565b34801561030d57600080fd5b5061010261031c366004612310565b610c8c565b3361dead1461035c576040517f9cbfe06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061039c8787878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cfc92505050565b905060008267ffffffffffffffff8111156103b9576103b9612385565b6040519080825280602002602001820160405280156103e2578160200160208202803683370190505b50905060008367ffffffffffffffff81111561040057610400612385565b60405190808252806020026020018201604052801561043357816020015b606081526020019060019003908161041e5790505b50905060005b8481101561051857366000878784818110610456576104566123b4565b905060200281019061046891906123e3565b909250905061047b600460008385612448565b61048491612472565b60e01c858481518110610499576104996123b4565b63ffffffff909216602092830291909101909101526104bb8160048185612448565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505086518792508691508110610503576105036123b4565b60209081029190910101525050600101610439565b506105238383610e6a565b61052e838383610f54565b505050505050505050565b60603361dead14610576576040517f9cbfe06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006105b68686868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cfc92505050565b90506105c1816110d2565b6105ca8161137d565b9695505050505050565b6105dc6114e4565b6105e66000611565565b565b6001546060907f000000000000000000000000000000000000000000000000000000000000000090819060009067ffffffffffffffff81111561062d5761062d612385565b60405190808252806020026020018201604052801561068857816020015b6106756040518060600160405280600063ffffffff16815260200160008152602001600081525090565b81526020019060019003908161064b5790505b50905060005b600154811015610830576000600182815481106106ad576106ad6123b4565b600091825260209182902060039190910201546040805160608101825263ffffffff90921680835290517f56a4728900000000000000000000000000000000000000000000000000000000815260048101829052909350909182019073ffffffffffffffffffffffffffffffffffffffff8716906356a4728990602401602060405180830381865afa158015610747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076b91906124ba565b81526040517f622f17f600000000000000000000000000000000000000000000000000000000815263ffffffff8416600482015260209091019073ffffffffffffffffffffffffffffffffffffffff87169063622f17f690602401602060405180830381865afa1580156107e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080791906124ba565b81525083838151811061081c5761081c6123b4565b60209081029190910101525060010161068e565b5080604051602001610842919061227b565b604051602081830303815290604052935050505090565b6108616114e4565b6000805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60606001805480602002602001604051908101604052809291908181526020016000905b8282101561092a5760008481526020908190206040805160608101825260038602909201805463ffffffff168352600180820154848601526002909101549183019190915290835290920191016108d8565b50505050905090565b60603361dead14610970576040517f9cbfe06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546040517e0200000000000000000000000000000000000000000000000000000000000060208201527401000000000000000000000000000000000000000090910460c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166022820152602a01604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060008515610a6557610a60610a5b8888888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cfc92505050565b6115da565b610ade565b6001805480602002602001604051908101604052809291908181526020016000905b82821015610ad95760008481526020908190206040805160608101825260038602909201805463ffffffff16835260018082015484860152600290910154918301919091529083529092019101610a87565b505050505b805190915015610bc6578051604051610afd90849083906020016124d3565b604051602081830303815290604052925060005b8161ffff16811015610bc35783838281518110610b3057610b306123b4565b602002602001015160000151848381518110610b4e57610b4e6123b4565b602002602001015160200151858481518110610b6c57610b6c6123b4565b602002602001015160400151604051602001610b8b949392919061251d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529350600101610b11565b50505b5095945050505050565b610bd86114e4565b73ffffffffffffffffffffffffffffffffffffffff8116610c80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610c8981611565565b50565b610c946114e4565b610ca060016000612017565b60005b81811015610cf7576001838383818110610cbf57610cbf6123b4565b835460018101855560009485526020909420606090910292909201926003029091019050610ced8282612586565b5050600101610ca3565b505050565b60608267ffffffffffffffff811115610d1757610d17612385565b604051908082528060200260200182016040528015610dbd57816020015b604080516101608101825260006101008201818152610120830182905261014083018290528252602080830182905292820181905260608083018290526080830182905260a083019190915260c0820181905260e082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610d355790505b50905060005b83811015610e6257366000868684818110610de057610de06123b4565b9050602002810190610df291906123e3565b91509150610e0082826118a1565b848481518110610e1257610e126123b4565b6020026020010181905250848381518110610e2f57610e2f6123b4565b6020026020010151848481518110610e4957610e496123b4565b6020908102919091010151608001525050600101610dc3565b509392505050565b815115610f00576000610e7c836115da565b905060005b8151811015610efd576000828281518110610e9e57610e9e6123b4565b6020026020010151600001519050610eb684826119d4565b610ef4576040517f01992f2a00000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610c77565b50600101610e81565b50505b6000610f0a611a2b565b9050610f1682826119d4565b610cf7576040517f01992f2a00000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610c77565b6000610f5e611a2b565b9050606060005b8451811015610fd6578263ffffffff16858281518110610f8757610f876123b4565b602002602001015163ffffffff1603610fce57838181518110610fac57610fac6123b4565b6020026020010151806020019051810190610fc79190612650565b9150610fd6565b600101610f65565b5060005b84518110156110ca576000858281518110610ff757610ff76123b4565b602002602001015190506000858381518110611015576110156123b4565b60200260200101518060200190518101906110309190612650565b9050600061103e8584611ac1565b509050600061104d8388611ac1565b915050808211156110ba576040517f1915975700000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e626f756e64436f756e74203e206f7574626f756e64436f756e74000000006044820152606401610c77565b505060019092019150610fda9050565b505050505050565b60005481517401000000000000000000000000000000000000000090910467ffffffffffffffff1610156111605760005481516040517f9db086050000000000000000000000000000000000000000000000000000000081527401000000000000000000000000000000000000000090920467ffffffffffffffff1660048301526024820152604401610c77565b805115610c895760008080805b845181101561137657600085828151811061118a5761118a6123b4565b602090810291909101810151805180519201516040517f5a0dfe4d00000000000000000000000000000000000000000000000000000000815263ffffffff9093166004840152602483015291507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635a0dfe4d90604401602060405180830381865afa158015611235573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611259919061272d565b611263575061136e565b80515163ffffffff80871691161080611295575080515163ffffffff8681169116148015611295575080516020015184115b156112cc576040517f50823c8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80515163ffffffff86811691161415806112eb57508051602001518414155b1561130c578051805160209091015190955093506113098585611b5e565b92505b6113158361277e565b92508267ffffffffffffffff1681600001516040015167ffffffffffffffff161461136c576040517f50823c8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60010161116d565b5050505050565b60606000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163463bd815db060e01b866040516024016113d391906127a5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161145c919061290b565b60006040518083038185875af1925050503d8060008114611499576040519150601f19603f3d011682016040523d82523d6000602084013e61149e565b606091505b509150915060006114af8383611c4d565b90506114b9611a2b565b816040516020016114cb929190612927565b6040516020818303038152906040529350505050919050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c77565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606060006001805480602002602001604051908101604052809291908181526020016000905b828210156116525760008481526020908190206040805160608101825260038602909201805463ffffffff16835260018082015484860152600290910154918301919091529083529092019101611600565b5050505090506000835167ffffffffffffffff81111561167457611674612385565b6040519080825280602002602001820160405280156116dd57816020015b60408051606081018252600080825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816116925790505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005b85518110156117af576000868281518110611721576117216123b4565b602002602001015160000151600001519050600061173f8683611d6c565b90506000811215801561175b575060006117598684611d6c565b125b156117a5578361176a81612972565b94505085818151811061177f5761177f6123b4565b6020026020010151858581518110611799576117996123b4565b60200260200101819052505b5050600101611704565b50600081126118995760006117c58260016129aa565b90508067ffffffffffffffff8111156117e0576117e0612385565b60405190808252806020026020018201604052801561184957816020015b60408051606081018252600080825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816117fe5790505b50945060005b8181101561189657838181518110611869576118696123b4565b6020026020010151868281518110611883576118836123b4565b602090810291909101015260010161184f565b50505b505050919050565b6040805161016081018252600061010082018181526101208301829052610140830182905282526020820181905291810182905260608082018390526080820183905260a082019290925260c0810182905260e081019190915260405180606001604052806119108585611de1565b63ffffffff1681526020016119258585611e04565b81526020016119348585611e1d565b67ffffffffffffffff169052815261194c8383611e40565b63ffffffff1660208201526119618383611e50565b73ffffffffffffffffffffffffffffffffffffffff1660408201526119868383611e62565b60608201526119958383611e72565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060c082015292915050565b6000805b8351811015611a1f578263ffffffff168482815181106119fa576119fa6123b4565b602002602001015163ffffffff1603611a17576001915050611a25565b6001016119d8565b50600090505b92915050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abc91906129bd565b905090565b60008060005b8451811015611b4e578363ffffffff16858281518110611ae957611ae96123b4565b60200260200101516000015163ffffffff1603611b4657848181518110611b1257611b126123b4565b602002602001015160200151858281518110611b3057611b306123b4565b6020026020010151604001519250925050611b57565b600101611ac7565b50600080915091505b9250929050565b6040517fa0dd43fc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015263ffffffff84166024830152604482018390526000917f00000000000000000000000000000000000000000000000000000000000000009091169063a0dd43fc90606401602060405180830381865afa158015611c22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4691906129da565b9392505050565b60608215611cb7576040517f614cbd8a00000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f2072657665727400000000000000000000000000000000000000000000006044820152606401610c77565b7f8351eea700000000000000000000000000000000000000000000000000000000611ce1836129f7565b7fffffffff000000000000000000000000000000000000000000000000000000001614611d3c57816040517f614cbd8a000000000000000000000000000000000000000000000000000000008152600401610c779190612235565b611d566004808451611d4e9190612a43565b849190611e8d565b905080806020019051810190611c469190612a56565b6000805b8351811015611db8578263ffffffff16848281518110611d9257611d926123b4565b60200260200101516000015163ffffffff1603611db0579050611a25565b600101611d70565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9392505050565b6000611df1600d60098486612448565b611dfa91612472565b60e01c9392505050565b6000611e14602d600d8486612448565b611c4691612aff565b6000611e2d600960018486612448565b611e3691612b3b565b60c01c9392505050565b6000611df16031602d8486612448565b6000611c46611e5f8484612007565b90565b6000611e14607160518486612448565b366000611e828360718187612448565b915091509250929050565b606081611e9b81601f6129aa565b1015611f03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610c77565b611f0d82846129aa565b84511015611f77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610c77565b606082158015611f965760405191506000825260208201604052611ffe565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611fcf578051835260209283019201611fb7565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b6000611e14605160318486612448565b5080546000825560030290600052602060002090810190610c8991905b808211156120785780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001681556000600182018190556002820155600301612034565b5090565b60008083601f84011261208e57600080fd5b50813567ffffffffffffffff8111156120a657600080fd5b6020830191508360208260051b8501011115611b5757600080fd5b600080600080600080606087890312156120da57600080fd5b863567ffffffffffffffff808211156120f257600080fd5b6120fe8a838b0161207c565b9098509650602089013591508082111561211757600080fd5b6121238a838b0161207c565b9096509450604089013591508082111561213c57600080fd5b5061214989828a0161207c565b979a9699509497509295939492505050565b6000806000806040858703121561217157600080fd5b843567ffffffffffffffff8082111561218957600080fd5b6121958883890161207c565b909650945060208701359150808211156121ae57600080fd5b506121bb8782880161207c565b95989497509550505050565b60005b838110156121e25781810151838201526020016121ca565b50506000910152565b600081518084526122038160208601602086016121c7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611c4660208301846121eb565b67ffffffffffffffff81168114610c8957600080fd5b60006020828403121561227057600080fd5b8135611c4681612248565b602080825282518282018190526000919060409081850190868401855b828110156122cd578151805163ffffffff16855286810151878601528501518585015260609093019290850190600101612298565b5091979650505050505050565b6000602082840312156122ec57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114611c4657600080fd5b6000806020838503121561232357600080fd5b823567ffffffffffffffff8082111561233b57600080fd5b818501915085601f83011261234f57600080fd5b81358181111561235e57600080fd5b86602060608302850101111561237357600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261241857600080fd5b83018035915067ffffffffffffffff82111561243357600080fd5b602001915036819003821315611b5757600080fd5b6000808585111561245857600080fd5b8386111561246557600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156124b25780818660040360031b1b83161692505b505092915050565b6000602082840312156124cc57600080fd5b5051919050565b600083516124e58184602088016121c7565b60f09390931b7fffff000000000000000000000000000000000000000000000000000000000000169190920190815260020192915050565b6000855161252f818460208a016121c7565b60e09590951b7fffffffff0000000000000000000000000000000000000000000000000000000016919094019081526004810192909252602482015260440192915050565b63ffffffff81168114610c8957600080fd5b813561259181612574565b63ffffffff81167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000008354161782555060208201356001820155604082013560028201555050565b6040516060810167ffffffffffffffff811182821017156125fb576125fb612385565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561264857612648612385565b604052919050565b6000602080838503121561266357600080fd5b825167ffffffffffffffff8082111561267b57600080fd5b818501915085601f83011261268f57600080fd5b8151818111156126a1576126a1612385565b6126af848260051b01612601565b818152848101925060609182028401850191888311156126ce57600080fd5b938501935b828510156127215780858a0312156126eb5760008081fd5b6126f36125d8565b85516126fe81612574565b8152858701518782015260408087015190820152845293840193928501926126d3565b50979650505050505050565b60006020828403121561273f57600080fd5b81518015158114611c4657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681810361279b5761279b61274f565b6001019392505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156128fd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08984030185528151610140612831858351805163ffffffff1682526020808201519083015260409081015167ffffffffffffffff16910152565b8882015160606128488188018363ffffffff169052565b89840151915060806128718189018473ffffffffffffffffffffffffffffffffffffffff169052565b9084015160a0888101919091529084015160c08089019190915290840151915060e0906128b58289018473ffffffffffffffffffffffffffffffffffffffff169052565b840151610100880184905291506128ce878401836121eb565b9301518684036101208801529291506128e9905081836121eb565b9689019694505050908601906001016127ce565b509098975050505050505050565b6000825161291d8184602087016121c7565b9190910192915050565b7fffffffff000000000000000000000000000000000000000000000000000000008360e01b168152600082516129648160048501602087016121c7565b919091016004019392505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129a3576129a361274f565b5060010190565b80820180821115611a2557611a2561274f565b6000602082840312156129cf57600080fd5b8151611c4681612574565b6000602082840312156129ec57600080fd5b8151611c4681612248565b6000815160208301517fffffffff00000000000000000000000000000000000000000000000000000000808216935060048310156118995760049290920360031b82901b161692915050565b81810381811115611a2557611a2561274f565b600060208284031215612a6857600080fd5b815167ffffffffffffffff80821115612a8057600080fd5b818401915084601f830112612a9457600080fd5b815181811115612aa657612aa6612385565b612ad760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612601565b9150808252856020828501011115612aee57600080fd5b611ffe8160208401602086016121c7565b80356020831015611a25577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156124b25760089490940360031b84901b169092169291505056fea2646970667358221220da814a474a6d45420d704e18ad63f897a187c9c1defeaecb87aee4372766388964736f6c63430008160033",
|
|
364
|
+
"bytecode": "0x60e06040523480156200001157600080fd5b5060405162002da338038062002da383398101604081905262000034916200013c565b81816200004133620000cf565b6001600160a01b03808316608052811660a0819052604080516352ae287960e01b815290516352ae2879916004808201926020929091908290030181865afa15801562000092573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000b8919062000174565b6001600160a01b031660c052506200019992505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200013757600080fd5b919050565b600080604083850312156200015057600080fd5b6200015b836200011f565b91506200016b602084016200011f565b90509250929050565b6000602082840312156200018757600080fd5b62000192826200011f565b9392505050565b60805160a05160c051612bb7620001ec6000396000818161018d0152611b9b01526000818161029f015281816105f0015281816111d90152611384015260008181611a2f0152611bd90152612bb76000f3fe6080604052600436106100dd5760003560e01c80638e9e70991161007f578063bf7b5d7a11610059578063bf7b5d7a1461028d578063f0cd3836146102c1578063f2fde38b146102e1578063f8bcddf61461030157600080fd5b80638e9e709914610236578063afea44ef1461024b578063b9a1f5e71461026b57600080fd5b806352ae2879116100bb57806352ae28791461017b57806354fd4d50146101d4578063715018a6146101f65780638da5cb5b1461020b57600080fd5b806310f9cf3a146100e25780632913daa01461010457806350dfa9371461015b575b600080fd5b3480156100ee57600080fd5b506101026100fd3660046120c1565b610321565b005b34801561011057600080fd5b5060005461013d9074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b61016e61016936600461215b565b610539565b6040516101529190612235565b34801561018757600080fd5b506101af7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610152565b3480156101e057600080fd5b5060408051600281526000602082015201610152565b34801561020257600080fd5b506101026105d4565b34801561021757600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166101af565b34801561024257600080fd5b5061016e6105e8565b34801561025757600080fd5b5061010261026636600461225e565b610859565b34801561027757600080fd5b506102806108b4565b604051610152919061227b565b34801561029957600080fd5b506101af7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102cd57600080fd5b5061016e6102dc36600461215b565b610933565b3480156102ed57600080fd5b506101026102fc3660046122da565b610bd0565b34801561030d57600080fd5b5061010261031c366004612310565b610c8c565b3361dead1461035c576040517f9cbfe06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061039c8787878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cfc92505050565b905060008267ffffffffffffffff8111156103b9576103b9612385565b6040519080825280602002602001820160405280156103e2578160200160208202803683370190505b50905060008367ffffffffffffffff81111561040057610400612385565b60405190808252806020026020018201604052801561043357816020015b606081526020019060019003908161041e5790505b50905060005b8481101561051857366000878784818110610456576104566123b4565b905060200281019061046891906123e3565b909250905061047b600460008385612448565b61048491612472565b60e01c858481518110610499576104996123b4565b63ffffffff909216602092830291909101909101526104bb8160048185612448565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505086518792508691508110610503576105036123b4565b60209081029190910101525050600101610439565b506105238383610e6a565b61052e838383610f54565b505050505050505050565b60603361dead14610576576040517f9cbfe06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006105b68686868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cfc92505050565b90506105c1816110d2565b6105ca8161137d565b9695505050505050565b6105dc6114e4565b6105e66000611565565b565b6001546060907f000000000000000000000000000000000000000000000000000000000000000090819060009067ffffffffffffffff81111561062d5761062d612385565b60405190808252806020026020018201604052801561068857816020015b6106756040518060600160405280600063ffffffff16815260200160008152602001600081525090565b81526020019060019003908161064b5790505b50905060005b600154811015610830576000600182815481106106ad576106ad6123b4565b600091825260209182902060039190910201546040805160608101825263ffffffff90921680835290517f56a4728900000000000000000000000000000000000000000000000000000000815260048101829052909350909182019073ffffffffffffffffffffffffffffffffffffffff8716906356a4728990602401602060405180830381865afa158015610747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076b91906124ba565b81526040517f622f17f600000000000000000000000000000000000000000000000000000000815263ffffffff8416600482015260209091019073ffffffffffffffffffffffffffffffffffffffff87169063622f17f690602401602060405180830381865afa1580156107e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080791906124ba565b81525083838151811061081c5761081c6123b4565b60209081029190910101525060010161068e565b5080604051602001610842919061227b565b604051602081830303815290604052935050505090565b6108616114e4565b6000805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60606001805480602002602001604051908101604052809291908181526020016000905b8282101561092a5760008481526020908190206040805160608101825260038602909201805463ffffffff168352600180820154848601526002909101549183019190915290835290920191016108d8565b50505050905090565b60603361dead14610970576040517f9cbfe06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546040517e0200000000000000000000000000000000000000000000000000000000000060208201527401000000000000000000000000000000000000000090910460c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166022820152602a01604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060008515610a6557610a60610a5b8888888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cfc92505050565b6115da565b610ade565b6001805480602002602001604051908101604052809291908181526020016000905b82821015610ad95760008481526020908190206040805160608101825260038602909201805463ffffffff16835260018082015484860152600290910154918301919091529083529092019101610a87565b505050505b805190915015610bc6578051604051610afd90849083906020016124d3565b604051602081830303815290604052925060005b8161ffff16811015610bc35783838281518110610b3057610b306123b4565b602002602001015160000151848381518110610b4e57610b4e6123b4565b602002602001015160200151858481518110610b6c57610b6c6123b4565b602002602001015160400151604051602001610b8b949392919061251d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529350600101610b11565b50505b5095945050505050565b610bd86114e4565b73ffffffffffffffffffffffffffffffffffffffff8116610c80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610c8981611565565b50565b610c946114e4565b610ca060016000612017565b60005b81811015610cf7576001838383818110610cbf57610cbf6123b4565b835460018101855560009485526020909420606090910292909201926003029091019050610ced8282612586565b5050600101610ca3565b505050565b60608267ffffffffffffffff811115610d1757610d17612385565b604051908082528060200260200182016040528015610dbd57816020015b604080516101608101825260006101008201818152610120830182905261014083018290528252602080830182905292820181905260608083018290526080830182905260a083019190915260c0820181905260e082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610d355790505b50905060005b83811015610e6257366000868684818110610de057610de06123b4565b9050602002810190610df291906123e3565b91509150610e0082826118a1565b848481518110610e1257610e126123b4565b6020026020010181905250848381518110610e2f57610e2f6123b4565b6020026020010151848481518110610e4957610e496123b4565b6020908102919091010151608001525050600101610dc3565b509392505050565b815115610f00576000610e7c836115da565b905060005b8151811015610efd576000828281518110610e9e57610e9e6123b4565b6020026020010151600001519050610eb684826119d4565b610ef4576040517f01992f2a00000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610c77565b50600101610e81565b50505b6000610f0a611a2b565b9050610f1682826119d4565b610cf7576040517f01992f2a00000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610c77565b6000610f5e611a2b565b9050606060005b8451811015610fd6578263ffffffff16858281518110610f8757610f876123b4565b602002602001015163ffffffff1603610fce57838181518110610fac57610fac6123b4565b6020026020010151806020019051810190610fc79190612650565b9150610fd6565b600101610f65565b5060005b84518110156110ca576000858281518110610ff757610ff76123b4565b602002602001015190506000858381518110611015576110156123b4565b60200260200101518060200190518101906110309190612650565b9050600061103e8584611ac1565b509050600061104d8388611ac1565b915050808211156110ba576040517f1915975700000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e626f756e64436f756e74203e206f7574626f756e64436f756e74000000006044820152606401610c77565b505060019092019150610fda9050565b505050505050565b60005481517401000000000000000000000000000000000000000090910467ffffffffffffffff1610156111605760005481516040517f9db086050000000000000000000000000000000000000000000000000000000081527401000000000000000000000000000000000000000090920467ffffffffffffffff1660048301526024820152604401610c77565b805115610c895760008080805b845181101561137657600085828151811061118a5761118a6123b4565b602090810291909101810151805180519201516040517f5a0dfe4d00000000000000000000000000000000000000000000000000000000815263ffffffff9093166004840152602483015291507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635a0dfe4d90604401602060405180830381865afa158015611235573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611259919061272d565b611263575061136e565b80515163ffffffff80871691161080611295575080515163ffffffff8681169116148015611295575080516020015184115b156112cc576040517f50823c8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80515163ffffffff86811691161415806112eb57508051602001518414155b1561130c578051805160209091015190955093506113098585611b5e565b92505b6113158361277e565b92508267ffffffffffffffff1681600001516040015167ffffffffffffffff161461136c576040517f50823c8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60010161116d565b5050505050565b60606000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163463bd815db060e01b866040516024016113d391906127a5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161145c919061290b565b60006040518083038185875af1925050503d8060008114611499576040519150601f19603f3d011682016040523d82523d6000602084013e61149e565b606091505b509150915060006114af8383611c4d565b90506114b9611a2b565b816040516020016114cb929190612927565b6040516020818303038152906040529350505050919050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c77565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606060006001805480602002602001604051908101604052809291908181526020016000905b828210156116525760008481526020908190206040805160608101825260038602909201805463ffffffff16835260018082015484860152600290910154918301919091529083529092019101611600565b5050505090506000835167ffffffffffffffff81111561167457611674612385565b6040519080825280602002602001820160405280156116dd57816020015b60408051606081018252600080825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816116925790505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005b85518110156117af576000868281518110611721576117216123b4565b602002602001015160000151600001519050600061173f8683611d6c565b90506000811215801561175b575060006117598684611d6c565b125b156117a5578361176a81612972565b94505085818151811061177f5761177f6123b4565b6020026020010151858581518110611799576117996123b4565b60200260200101819052505b5050600101611704565b50600081126118995760006117c58260016129aa565b90508067ffffffffffffffff8111156117e0576117e0612385565b60405190808252806020026020018201604052801561184957816020015b60408051606081018252600080825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816117fe5790505b50945060005b8181101561189657838181518110611869576118696123b4565b6020026020010151868281518110611883576118836123b4565b602090810291909101015260010161184f565b50505b505050919050565b6040805161016081018252600061010082018181526101208301829052610140830182905282526020820181905291810182905260608082018390526080820183905260a082019290925260c0810182905260e081019190915260405180606001604052806119108585611de1565b63ffffffff1681526020016119258585611e04565b81526020016119348585611e1d565b67ffffffffffffffff169052815261194c8383611e40565b63ffffffff1660208201526119618383611e50565b73ffffffffffffffffffffffffffffffffffffffff1660408201526119868383611e62565b60608201526119958383611e72565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060c082015292915050565b6000805b8351811015611a1f578263ffffffff168482815181106119fa576119fa6123b4565b602002602001015163ffffffff1603611a17576001915050611a25565b6001016119d8565b50600090505b92915050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abc91906129bd565b905090565b60008060005b8451811015611b4e578363ffffffff16858281518110611ae957611ae96123b4565b60200260200101516000015163ffffffff1603611b4657848181518110611b1257611b126123b4565b602002602001015160200151858281518110611b3057611b306123b4565b6020026020010151604001519250925050611b57565b600101611ac7565b50600080915091505b9250929050565b6040517fa0dd43fc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015263ffffffff84166024830152604482018390526000917f00000000000000000000000000000000000000000000000000000000000000009091169063a0dd43fc90606401602060405180830381865afa158015611c22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4691906129da565b9392505050565b60608215611cb7576040517f614cbd8a00000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f2072657665727400000000000000000000000000000000000000000000006044820152606401610c77565b7f8351eea700000000000000000000000000000000000000000000000000000000611ce1836129f7565b7fffffffff000000000000000000000000000000000000000000000000000000001614611d3c57816040517f614cbd8a000000000000000000000000000000000000000000000000000000008152600401610c779190612235565b611d566004808451611d4e9190612a43565b849190611e8d565b905080806020019051810190611c469190612a56565b6000805b8351811015611db8578263ffffffff16848281518110611d9257611d926123b4565b60200260200101516000015163ffffffff1603611db0579050611a25565b600101611d70565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9392505050565b6000611df1600d60098486612448565b611dfa91612472565b60e01c9392505050565b6000611e14602d600d8486612448565b611c4691612aff565b6000611e2d600960018486612448565b611e3691612b3b565b60c01c9392505050565b6000611df16031602d8486612448565b6000611c46611e5f8484612007565b90565b6000611e14607160518486612448565b366000611e828360718187612448565b915091509250929050565b606081611e9b81601f6129aa565b1015611f03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610c77565b611f0d82846129aa565b84511015611f77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610c77565b606082158015611f965760405191506000825260208201604052611ffe565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611fcf578051835260209283019201611fb7565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b6000611e14605160318486612448565b5080546000825560030290600052602060002090810190610c8991905b808211156120785780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001681556000600182018190556002820155600301612034565b5090565b60008083601f84011261208e57600080fd5b50813567ffffffffffffffff8111156120a657600080fd5b6020830191508360208260051b8501011115611b5757600080fd5b600080600080600080606087890312156120da57600080fd5b863567ffffffffffffffff808211156120f257600080fd5b6120fe8a838b0161207c565b9098509650602089013591508082111561211757600080fd5b6121238a838b0161207c565b9096509450604089013591508082111561213c57600080fd5b5061214989828a0161207c565b979a9699509497509295939492505050565b6000806000806040858703121561217157600080fd5b843567ffffffffffffffff8082111561218957600080fd5b6121958883890161207c565b909650945060208701359150808211156121ae57600080fd5b506121bb8782880161207c565b95989497509550505050565b60005b838110156121e25781810151838201526020016121ca565b50506000910152565b600081518084526122038160208601602086016121c7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611c4660208301846121eb565b67ffffffffffffffff81168114610c8957600080fd5b60006020828403121561227057600080fd5b8135611c4681612248565b602080825282518282018190526000919060409081850190868401855b828110156122cd578151805163ffffffff16855286810151878601528501518585015260609093019290850190600101612298565b5091979650505050505050565b6000602082840312156122ec57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114611c4657600080fd5b6000806020838503121561232357600080fd5b823567ffffffffffffffff8082111561233b57600080fd5b818501915085601f83011261234f57600080fd5b81358181111561235e57600080fd5b86602060608302850101111561237357600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261241857600080fd5b83018035915067ffffffffffffffff82111561243357600080fd5b602001915036819003821315611b5757600080fd5b6000808585111561245857600080fd5b8386111561246557600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156124b25780818660040360031b1b83161692505b505092915050565b6000602082840312156124cc57600080fd5b5051919050565b600083516124e58184602088016121c7565b60f09390931b7fffff000000000000000000000000000000000000000000000000000000000000169190920190815260020192915050565b6000855161252f818460208a016121c7565b60e09590951b7fffffffff0000000000000000000000000000000000000000000000000000000016919094019081526004810192909252602482015260440192915050565b63ffffffff81168114610c8957600080fd5b813561259181612574565b63ffffffff81167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000008354161782555060208201356001820155604082013560028201555050565b6040516060810167ffffffffffffffff811182821017156125fb576125fb612385565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561264857612648612385565b604052919050565b6000602080838503121561266357600080fd5b825167ffffffffffffffff8082111561267b57600080fd5b818501915085601f83011261268f57600080fd5b8151818111156126a1576126a1612385565b6126af848260051b01612601565b818152848101925060609182028401850191888311156126ce57600080fd5b938501935b828510156127215780858a0312156126eb5760008081fd5b6126f36125d8565b85516126fe81612574565b8152858701518782015260408087015190820152845293840193928501926126d3565b50979650505050505050565b60006020828403121561273f57600080fd5b81518015158114611c4657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681810361279b5761279b61274f565b6001019392505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156128fd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08984030185528151610140612831858351805163ffffffff1682526020808201519083015260409081015167ffffffffffffffff16910152565b8882015160606128488188018363ffffffff169052565b89840151915060806128718189018473ffffffffffffffffffffffffffffffffffffffff169052565b9084015160a0888101919091529084015160c08089019190915290840151915060e0906128b58289018473ffffffffffffffffffffffffffffffffffffffff169052565b840151610100880184905291506128ce878401836121eb565b9301518684036101208801529291506128e9905081836121eb565b9689019694505050908601906001016127ce565b509098975050505050505050565b6000825161291d8184602087016121c7565b9190910192915050565b7fffffffff000000000000000000000000000000000000000000000000000000008360e01b168152600082516129648160048501602087016121c7565b919091016004019392505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129a3576129a361274f565b5060010190565b80820180821115611a2557611a2561274f565b6000602082840312156129cf57600080fd5b8151611c4681612574565b6000602082840312156129ec57600080fd5b8151611c4681612248565b6000815160208301517fffffffff00000000000000000000000000000000000000000000000000000000808216935060048310156118995760049290920360031b82901b161692915050565b81810381811115611a2557611a2561274f565b600060208284031215612a6857600080fd5b815167ffffffffffffffff80821115612a8057600080fd5b818401915084601f830112612a9457600080fd5b815181811115612aa657612aa6612385565b612ad760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612601565b9150808252856020828501011115612aee57600080fd5b611ffe8160208401602086016121c7565b80356020831015611a25577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156124b25760089490940360031b84901b169092169291505056fea2646970667358221220df8518d684a60b399065b94aa7c0bee31a05af0f6b3619dafb201cb7c8d0dd2e64736f6c63430008160033",
|
|
365
|
+
"deployedBytecode": "0x6080604052600436106100dd5760003560e01c80638e9e70991161007f578063bf7b5d7a11610059578063bf7b5d7a1461028d578063f0cd3836146102c1578063f2fde38b146102e1578063f8bcddf61461030157600080fd5b80638e9e709914610236578063afea44ef1461024b578063b9a1f5e71461026b57600080fd5b806352ae2879116100bb57806352ae28791461017b57806354fd4d50146101d4578063715018a6146101f65780638da5cb5b1461020b57600080fd5b806310f9cf3a146100e25780632913daa01461010457806350dfa9371461015b575b600080fd5b3480156100ee57600080fd5b506101026100fd3660046120c1565b610321565b005b34801561011057600080fd5b5060005461013d9074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b61016e61016936600461215b565b610539565b6040516101529190612235565b34801561018757600080fd5b506101af7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610152565b3480156101e057600080fd5b5060408051600281526000602082015201610152565b34801561020257600080fd5b506101026105d4565b34801561021757600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166101af565b34801561024257600080fd5b5061016e6105e8565b34801561025757600080fd5b5061010261026636600461225e565b610859565b34801561027757600080fd5b506102806108b4565b604051610152919061227b565b34801561029957600080fd5b506101af7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102cd57600080fd5b5061016e6102dc36600461215b565b610933565b3480156102ed57600080fd5b506101026102fc3660046122da565b610bd0565b34801561030d57600080fd5b5061010261031c366004612310565b610c8c565b3361dead1461035c576040517f9cbfe06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061039c8787878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cfc92505050565b905060008267ffffffffffffffff8111156103b9576103b9612385565b6040519080825280602002602001820160405280156103e2578160200160208202803683370190505b50905060008367ffffffffffffffff81111561040057610400612385565b60405190808252806020026020018201604052801561043357816020015b606081526020019060019003908161041e5790505b50905060005b8481101561051857366000878784818110610456576104566123b4565b905060200281019061046891906123e3565b909250905061047b600460008385612448565b61048491612472565b60e01c858481518110610499576104996123b4565b63ffffffff909216602092830291909101909101526104bb8160048185612448565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505086518792508691508110610503576105036123b4565b60209081029190910101525050600101610439565b506105238383610e6a565b61052e838383610f54565b505050505050505050565b60603361dead14610576576040517f9cbfe06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006105b68686868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cfc92505050565b90506105c1816110d2565b6105ca8161137d565b9695505050505050565b6105dc6114e4565b6105e66000611565565b565b6001546060907f000000000000000000000000000000000000000000000000000000000000000090819060009067ffffffffffffffff81111561062d5761062d612385565b60405190808252806020026020018201604052801561068857816020015b6106756040518060600160405280600063ffffffff16815260200160008152602001600081525090565b81526020019060019003908161064b5790505b50905060005b600154811015610830576000600182815481106106ad576106ad6123b4565b600091825260209182902060039190910201546040805160608101825263ffffffff90921680835290517f56a4728900000000000000000000000000000000000000000000000000000000815260048101829052909350909182019073ffffffffffffffffffffffffffffffffffffffff8716906356a4728990602401602060405180830381865afa158015610747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076b91906124ba565b81526040517f622f17f600000000000000000000000000000000000000000000000000000000815263ffffffff8416600482015260209091019073ffffffffffffffffffffffffffffffffffffffff87169063622f17f690602401602060405180830381865afa1580156107e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080791906124ba565b81525083838151811061081c5761081c6123b4565b60209081029190910101525060010161068e565b5080604051602001610842919061227b565b604051602081830303815290604052935050505090565b6108616114e4565b6000805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60606001805480602002602001604051908101604052809291908181526020016000905b8282101561092a5760008481526020908190206040805160608101825260038602909201805463ffffffff168352600180820154848601526002909101549183019190915290835290920191016108d8565b50505050905090565b60603361dead14610970576040517f9cbfe06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546040517e0200000000000000000000000000000000000000000000000000000000000060208201527401000000000000000000000000000000000000000090910460c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166022820152602a01604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060008515610a6557610a60610a5b8888888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cfc92505050565b6115da565b610ade565b6001805480602002602001604051908101604052809291908181526020016000905b82821015610ad95760008481526020908190206040805160608101825260038602909201805463ffffffff16835260018082015484860152600290910154918301919091529083529092019101610a87565b505050505b805190915015610bc6578051604051610afd90849083906020016124d3565b604051602081830303815290604052925060005b8161ffff16811015610bc35783838281518110610b3057610b306123b4565b602002602001015160000151848381518110610b4e57610b4e6123b4565b602002602001015160200151858481518110610b6c57610b6c6123b4565b602002602001015160400151604051602001610b8b949392919061251d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529350600101610b11565b50505b5095945050505050565b610bd86114e4565b73ffffffffffffffffffffffffffffffffffffffff8116610c80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610c8981611565565b50565b610c946114e4565b610ca060016000612017565b60005b81811015610cf7576001838383818110610cbf57610cbf6123b4565b835460018101855560009485526020909420606090910292909201926003029091019050610ced8282612586565b5050600101610ca3565b505050565b60608267ffffffffffffffff811115610d1757610d17612385565b604051908082528060200260200182016040528015610dbd57816020015b604080516101608101825260006101008201818152610120830182905261014083018290528252602080830182905292820181905260608083018290526080830182905260a083019190915260c0820181905260e082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610d355790505b50905060005b83811015610e6257366000868684818110610de057610de06123b4565b9050602002810190610df291906123e3565b91509150610e0082826118a1565b848481518110610e1257610e126123b4565b6020026020010181905250848381518110610e2f57610e2f6123b4565b6020026020010151848481518110610e4957610e496123b4565b6020908102919091010151608001525050600101610dc3565b509392505050565b815115610f00576000610e7c836115da565b905060005b8151811015610efd576000828281518110610e9e57610e9e6123b4565b6020026020010151600001519050610eb684826119d4565b610ef4576040517f01992f2a00000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610c77565b50600101610e81565b50505b6000610f0a611a2b565b9050610f1682826119d4565b610cf7576040517f01992f2a00000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610c77565b6000610f5e611a2b565b9050606060005b8451811015610fd6578263ffffffff16858281518110610f8757610f876123b4565b602002602001015163ffffffff1603610fce57838181518110610fac57610fac6123b4565b6020026020010151806020019051810190610fc79190612650565b9150610fd6565b600101610f65565b5060005b84518110156110ca576000858281518110610ff757610ff76123b4565b602002602001015190506000858381518110611015576110156123b4565b60200260200101518060200190518101906110309190612650565b9050600061103e8584611ac1565b509050600061104d8388611ac1565b915050808211156110ba576040517f1915975700000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e626f756e64436f756e74203e206f7574626f756e64436f756e74000000006044820152606401610c77565b505060019092019150610fda9050565b505050505050565b60005481517401000000000000000000000000000000000000000090910467ffffffffffffffff1610156111605760005481516040517f9db086050000000000000000000000000000000000000000000000000000000081527401000000000000000000000000000000000000000090920467ffffffffffffffff1660048301526024820152604401610c77565b805115610c895760008080805b845181101561137657600085828151811061118a5761118a6123b4565b602090810291909101810151805180519201516040517f5a0dfe4d00000000000000000000000000000000000000000000000000000000815263ffffffff9093166004840152602483015291507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635a0dfe4d90604401602060405180830381865afa158015611235573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611259919061272d565b611263575061136e565b80515163ffffffff80871691161080611295575080515163ffffffff8681169116148015611295575080516020015184115b156112cc576040517f50823c8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80515163ffffffff86811691161415806112eb57508051602001518414155b1561130c578051805160209091015190955093506113098585611b5e565b92505b6113158361277e565b92508267ffffffffffffffff1681600001516040015167ffffffffffffffff161461136c576040517f50823c8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60010161116d565b5050505050565b60606000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163463bd815db060e01b866040516024016113d391906127a5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161145c919061290b565b60006040518083038185875af1925050503d8060008114611499576040519150601f19603f3d011682016040523d82523d6000602084013e61149e565b606091505b509150915060006114af8383611c4d565b90506114b9611a2b565b816040516020016114cb929190612927565b6040516020818303038152906040529350505050919050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c77565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606060006001805480602002602001604051908101604052809291908181526020016000905b828210156116525760008481526020908190206040805160608101825260038602909201805463ffffffff16835260018082015484860152600290910154918301919091529083529092019101611600565b5050505090506000835167ffffffffffffffff81111561167457611674612385565b6040519080825280602002602001820160405280156116dd57816020015b60408051606081018252600080825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816116925790505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005b85518110156117af576000868281518110611721576117216123b4565b602002602001015160000151600001519050600061173f8683611d6c565b90506000811215801561175b575060006117598684611d6c565b125b156117a5578361176a81612972565b94505085818151811061177f5761177f6123b4565b6020026020010151858581518110611799576117996123b4565b60200260200101819052505b5050600101611704565b50600081126118995760006117c58260016129aa565b90508067ffffffffffffffff8111156117e0576117e0612385565b60405190808252806020026020018201604052801561184957816020015b60408051606081018252600080825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816117fe5790505b50945060005b8181101561189657838181518110611869576118696123b4565b6020026020010151868281518110611883576118836123b4565b602090810291909101015260010161184f565b50505b505050919050565b6040805161016081018252600061010082018181526101208301829052610140830182905282526020820181905291810182905260608082018390526080820183905260a082019290925260c0810182905260e081019190915260405180606001604052806119108585611de1565b63ffffffff1681526020016119258585611e04565b81526020016119348585611e1d565b67ffffffffffffffff169052815261194c8383611e40565b63ffffffff1660208201526119618383611e50565b73ffffffffffffffffffffffffffffffffffffffff1660408201526119868383611e62565b60608201526119958383611e72565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060c082015292915050565b6000805b8351811015611a1f578263ffffffff168482815181106119fa576119fa6123b4565b602002602001015163ffffffff1603611a17576001915050611a25565b6001016119d8565b50600090505b92915050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abc91906129bd565b905090565b60008060005b8451811015611b4e578363ffffffff16858281518110611ae957611ae96123b4565b60200260200101516000015163ffffffff1603611b4657848181518110611b1257611b126123b4565b602002602001015160200151858281518110611b3057611b306123b4565b6020026020010151604001519250925050611b57565b600101611ac7565b50600080915091505b9250929050565b6040517fa0dd43fc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015263ffffffff84166024830152604482018390526000917f00000000000000000000000000000000000000000000000000000000000000009091169063a0dd43fc90606401602060405180830381865afa158015611c22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4691906129da565b9392505050565b60608215611cb7576040517f614cbd8a00000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f2072657665727400000000000000000000000000000000000000000000006044820152606401610c77565b7f8351eea700000000000000000000000000000000000000000000000000000000611ce1836129f7565b7fffffffff000000000000000000000000000000000000000000000000000000001614611d3c57816040517f614cbd8a000000000000000000000000000000000000000000000000000000008152600401610c779190612235565b611d566004808451611d4e9190612a43565b849190611e8d565b905080806020019051810190611c469190612a56565b6000805b8351811015611db8578263ffffffff16848281518110611d9257611d926123b4565b60200260200101516000015163ffffffff1603611db0579050611a25565b600101611d70565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9392505050565b6000611df1600d60098486612448565b611dfa91612472565b60e01c9392505050565b6000611e14602d600d8486612448565b611c4691612aff565b6000611e2d600960018486612448565b611e3691612b3b565b60c01c9392505050565b6000611df16031602d8486612448565b6000611c46611e5f8484612007565b90565b6000611e14607160518486612448565b366000611e828360718187612448565b915091509250929050565b606081611e9b81601f6129aa565b1015611f03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610c77565b611f0d82846129aa565b84511015611f77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610c77565b606082158015611f965760405191506000825260208201604052611ffe565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611fcf578051835260209283019201611fb7565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b6000611e14605160318486612448565b5080546000825560030290600052602060002090810190610c8991905b808211156120785780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001681556000600182018190556002820155600301612034565b5090565b60008083601f84011261208e57600080fd5b50813567ffffffffffffffff8111156120a657600080fd5b6020830191508360208260051b8501011115611b5757600080fd5b600080600080600080606087890312156120da57600080fd5b863567ffffffffffffffff808211156120f257600080fd5b6120fe8a838b0161207c565b9098509650602089013591508082111561211757600080fd5b6121238a838b0161207c565b9096509450604089013591508082111561213c57600080fd5b5061214989828a0161207c565b979a9699509497509295939492505050565b6000806000806040858703121561217157600080fd5b843567ffffffffffffffff8082111561218957600080fd5b6121958883890161207c565b909650945060208701359150808211156121ae57600080fd5b506121bb8782880161207c565b95989497509550505050565b60005b838110156121e25781810151838201526020016121ca565b50506000910152565b600081518084526122038160208601602086016121c7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611c4660208301846121eb565b67ffffffffffffffff81168114610c8957600080fd5b60006020828403121561227057600080fd5b8135611c4681612248565b602080825282518282018190526000919060409081850190868401855b828110156122cd578151805163ffffffff16855286810151878601528501518585015260609093019290850190600101612298565b5091979650505050505050565b6000602082840312156122ec57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114611c4657600080fd5b6000806020838503121561232357600080fd5b823567ffffffffffffffff8082111561233b57600080fd5b818501915085601f83011261234f57600080fd5b81358181111561235e57600080fd5b86602060608302850101111561237357600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261241857600080fd5b83018035915067ffffffffffffffff82111561243357600080fd5b602001915036819003821315611b5757600080fd5b6000808585111561245857600080fd5b8386111561246557600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156124b25780818660040360031b1b83161692505b505092915050565b6000602082840312156124cc57600080fd5b5051919050565b600083516124e58184602088016121c7565b60f09390931b7fffff000000000000000000000000000000000000000000000000000000000000169190920190815260020192915050565b6000855161252f818460208a016121c7565b60e09590951b7fffffffff0000000000000000000000000000000000000000000000000000000016919094019081526004810192909252602482015260440192915050565b63ffffffff81168114610c8957600080fd5b813561259181612574565b63ffffffff81167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000008354161782555060208201356001820155604082013560028201555050565b6040516060810167ffffffffffffffff811182821017156125fb576125fb612385565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561264857612648612385565b604052919050565b6000602080838503121561266357600080fd5b825167ffffffffffffffff8082111561267b57600080fd5b818501915085601f83011261268f57600080fd5b8151818111156126a1576126a1612385565b6126af848260051b01612601565b818152848101925060609182028401850191888311156126ce57600080fd5b938501935b828510156127215780858a0312156126eb5760008081fd5b6126f36125d8565b85516126fe81612574565b8152858701518782015260408087015190820152845293840193928501926126d3565b50979650505050505050565b60006020828403121561273f57600080fd5b81518015158114611c4657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681810361279b5761279b61274f565b6001019392505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156128fd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08984030185528151610140612831858351805163ffffffff1682526020808201519083015260409081015167ffffffffffffffff16910152565b8882015160606128488188018363ffffffff169052565b89840151915060806128718189018473ffffffffffffffffffffffffffffffffffffffff169052565b9084015160a0888101919091529084015160c08089019190915290840151915060e0906128b58289018473ffffffffffffffffffffffffffffffffffffffff169052565b840151610100880184905291506128ce878401836121eb565b9301518684036101208801529291506128e9905081836121eb565b9689019694505050908601906001016127ce565b509098975050505050505050565b6000825161291d8184602087016121c7565b9190910192915050565b7fffffffff000000000000000000000000000000000000000000000000000000008360e01b168152600082516129648160048501602087016121c7565b919091016004019392505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129a3576129a361274f565b5060010190565b80820180821115611a2557611a2561274f565b6000602082840312156129cf57600080fd5b8151611c4681612574565b6000602082840312156129ec57600080fd5b8151611c4681612248565b6000815160208301517fffffffff00000000000000000000000000000000000000000000000000000000808216935060048310156118995760049290920360031b82901b161692915050565b81810381811115611a2557611a2561274f565b600060208284031215612a6857600080fd5b815167ffffffffffffffff80821115612a8057600080fd5b818401915084601f830112612a9457600080fd5b815181811115612aa657612aa6612385565b612ad760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612601565b9150808252856020828501011115612aee57600080fd5b611ffe8160208401602086016121c7565b80356020831015611a25577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156124b25760089490940360031b84901b169092169291505056fea2646970667358221220df8518d684a60b399065b94aa7c0bee31a05af0f6b3619dafb201cb7c8d0dd2e64736f6c63430008160033",
|
|
366
366
|
"linkReferences": {},
|
|
367
367
|
"deployedLinkReferences": {}
|
|
368
368
|
}
|
|
@@ -40,15 +40,48 @@
|
|
|
40
40
|
"type": "function"
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
|
-
"inputs": [
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
"inputs": [
|
|
44
|
+
{
|
|
45
|
+
"components": [
|
|
46
|
+
{
|
|
47
|
+
"internalType": "uint32",
|
|
48
|
+
"name": "srcEid",
|
|
49
|
+
"type": "uint32"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"internalType": "bytes32",
|
|
53
|
+
"name": "sender",
|
|
54
|
+
"type": "bytes32"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"internalType": "uint64",
|
|
58
|
+
"name": "nonce",
|
|
59
|
+
"type": "uint64"
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"internalType": "struct Origin",
|
|
63
|
+
"name": "_origin",
|
|
64
|
+
"type": "tuple"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"internalType": "bytes",
|
|
68
|
+
"name": "_message",
|
|
69
|
+
"type": "bytes"
|
|
70
|
+
},
|
|
46
71
|
{
|
|
47
72
|
"internalType": "address",
|
|
48
|
-
"name": "
|
|
73
|
+
"name": "_sender",
|
|
49
74
|
"type": "address"
|
|
50
75
|
}
|
|
51
76
|
],
|
|
77
|
+
"name": "isComposeMsgSender",
|
|
78
|
+
"outputs": [
|
|
79
|
+
{
|
|
80
|
+
"internalType": "bool",
|
|
81
|
+
"name": "isSender",
|
|
82
|
+
"type": "bool"
|
|
83
|
+
}
|
|
84
|
+
],
|
|
52
85
|
"stateMutability": "view",
|
|
53
86
|
"type": "function"
|
|
54
87
|
},
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-sol-artifact-1",
|
|
3
|
+
"contractName": "RateLimiter",
|
|
4
|
+
"sourceName": "contracts/oapp/utils/RateLimiter.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"inputs": [],
|
|
8
|
+
"name": "RateLimitExceeded",
|
|
9
|
+
"type": "error"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"anonymous": false,
|
|
13
|
+
"inputs": [
|
|
14
|
+
{
|
|
15
|
+
"components": [
|
|
16
|
+
{
|
|
17
|
+
"internalType": "uint32",
|
|
18
|
+
"name": "dstEid",
|
|
19
|
+
"type": "uint32"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"internalType": "uint256",
|
|
23
|
+
"name": "limit",
|
|
24
|
+
"type": "uint256"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"internalType": "uint256",
|
|
28
|
+
"name": "window",
|
|
29
|
+
"type": "uint256"
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"indexed": false,
|
|
33
|
+
"internalType": "struct RateLimiter.RateLimitConfig[]",
|
|
34
|
+
"name": "rateLimitConfigs",
|
|
35
|
+
"type": "tuple[]"
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"name": "RateLimitsChanged",
|
|
39
|
+
"type": "event"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"inputs": [
|
|
43
|
+
{
|
|
44
|
+
"internalType": "uint32",
|
|
45
|
+
"name": "_dstEid",
|
|
46
|
+
"type": "uint32"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"name": "getAmountCanBeSent",
|
|
50
|
+
"outputs": [
|
|
51
|
+
{
|
|
52
|
+
"internalType": "uint256",
|
|
53
|
+
"name": "currentAmountInFlight",
|
|
54
|
+
"type": "uint256"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"internalType": "uint256",
|
|
58
|
+
"name": "amountCanBeSent",
|
|
59
|
+
"type": "uint256"
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"stateMutability": "view",
|
|
63
|
+
"type": "function"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"inputs": [
|
|
67
|
+
{
|
|
68
|
+
"internalType": "uint32",
|
|
69
|
+
"name": "dstEid",
|
|
70
|
+
"type": "uint32"
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
"name": "rateLimits",
|
|
74
|
+
"outputs": [
|
|
75
|
+
{
|
|
76
|
+
"internalType": "uint256",
|
|
77
|
+
"name": "amountInFlight",
|
|
78
|
+
"type": "uint256"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"internalType": "uint256",
|
|
82
|
+
"name": "lastUpdated",
|
|
83
|
+
"type": "uint256"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"internalType": "uint256",
|
|
87
|
+
"name": "limit",
|
|
88
|
+
"type": "uint256"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"internalType": "uint256",
|
|
92
|
+
"name": "window",
|
|
93
|
+
"type": "uint256"
|
|
94
|
+
}
|
|
95
|
+
],
|
|
96
|
+
"stateMutability": "view",
|
|
97
|
+
"type": "function"
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
"bytecode": "0x",
|
|
101
|
+
"deployedBytecode": "0x",
|
|
102
|
+
"linkReferences": {},
|
|
103
|
+
"deployedLinkReferences": {}
|
|
104
|
+
}
|
|
@@ -498,19 +498,6 @@
|
|
|
498
498
|
"stateMutability": "view",
|
|
499
499
|
"type": "function"
|
|
500
500
|
},
|
|
501
|
-
{
|
|
502
|
-
"inputs": [],
|
|
503
|
-
"name": "composeMsgSender",
|
|
504
|
-
"outputs": [
|
|
505
|
-
{
|
|
506
|
-
"internalType": "address",
|
|
507
|
-
"name": "sender",
|
|
508
|
-
"type": "address"
|
|
509
|
-
}
|
|
510
|
-
],
|
|
511
|
-
"stateMutability": "view",
|
|
512
|
-
"type": "function"
|
|
513
|
-
},
|
|
514
501
|
{
|
|
515
502
|
"inputs": [],
|
|
516
503
|
"name": "decimalConversionRate",
|
|
@@ -622,6 +609,52 @@
|
|
|
622
609
|
"stateMutability": "nonpayable",
|
|
623
610
|
"type": "function"
|
|
624
611
|
},
|
|
612
|
+
{
|
|
613
|
+
"inputs": [
|
|
614
|
+
{
|
|
615
|
+
"components": [
|
|
616
|
+
{
|
|
617
|
+
"internalType": "uint32",
|
|
618
|
+
"name": "srcEid",
|
|
619
|
+
"type": "uint32"
|
|
620
|
+
},
|
|
621
|
+
{
|
|
622
|
+
"internalType": "bytes32",
|
|
623
|
+
"name": "sender",
|
|
624
|
+
"type": "bytes32"
|
|
625
|
+
},
|
|
626
|
+
{
|
|
627
|
+
"internalType": "uint64",
|
|
628
|
+
"name": "nonce",
|
|
629
|
+
"type": "uint64"
|
|
630
|
+
}
|
|
631
|
+
],
|
|
632
|
+
"internalType": "struct Origin",
|
|
633
|
+
"name": "",
|
|
634
|
+
"type": "tuple"
|
|
635
|
+
},
|
|
636
|
+
{
|
|
637
|
+
"internalType": "bytes",
|
|
638
|
+
"name": "",
|
|
639
|
+
"type": "bytes"
|
|
640
|
+
},
|
|
641
|
+
{
|
|
642
|
+
"internalType": "address",
|
|
643
|
+
"name": "_sender",
|
|
644
|
+
"type": "address"
|
|
645
|
+
}
|
|
646
|
+
],
|
|
647
|
+
"name": "isComposeMsgSender",
|
|
648
|
+
"outputs": [
|
|
649
|
+
{
|
|
650
|
+
"internalType": "bool",
|
|
651
|
+
"name": "",
|
|
652
|
+
"type": "bool"
|
|
653
|
+
}
|
|
654
|
+
],
|
|
655
|
+
"stateMutability": "view",
|
|
656
|
+
"type": "function"
|
|
657
|
+
},
|
|
625
658
|
{
|
|
626
659
|
"inputs": [
|
|
627
660
|
{
|
|
@@ -381,19 +381,6 @@
|
|
|
381
381
|
"stateMutability": "view",
|
|
382
382
|
"type": "function"
|
|
383
383
|
},
|
|
384
|
-
{
|
|
385
|
-
"inputs": [],
|
|
386
|
-
"name": "composeMsgSender",
|
|
387
|
-
"outputs": [
|
|
388
|
-
{
|
|
389
|
-
"internalType": "address",
|
|
390
|
-
"name": "sender",
|
|
391
|
-
"type": "address"
|
|
392
|
-
}
|
|
393
|
-
],
|
|
394
|
-
"stateMutability": "view",
|
|
395
|
-
"type": "function"
|
|
396
|
-
},
|
|
397
384
|
{
|
|
398
385
|
"inputs": [],
|
|
399
386
|
"name": "decimalConversionRate",
|
|
@@ -444,6 +431,52 @@
|
|
|
444
431
|
"stateMutability": "view",
|
|
445
432
|
"type": "function"
|
|
446
433
|
},
|
|
434
|
+
{
|
|
435
|
+
"inputs": [
|
|
436
|
+
{
|
|
437
|
+
"components": [
|
|
438
|
+
{
|
|
439
|
+
"internalType": "uint32",
|
|
440
|
+
"name": "srcEid",
|
|
441
|
+
"type": "uint32"
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"internalType": "bytes32",
|
|
445
|
+
"name": "sender",
|
|
446
|
+
"type": "bytes32"
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
"internalType": "uint64",
|
|
450
|
+
"name": "nonce",
|
|
451
|
+
"type": "uint64"
|
|
452
|
+
}
|
|
453
|
+
],
|
|
454
|
+
"internalType": "struct Origin",
|
|
455
|
+
"name": "",
|
|
456
|
+
"type": "tuple"
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
"internalType": "bytes",
|
|
460
|
+
"name": "",
|
|
461
|
+
"type": "bytes"
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
"internalType": "address",
|
|
465
|
+
"name": "_sender",
|
|
466
|
+
"type": "address"
|
|
467
|
+
}
|
|
468
|
+
],
|
|
469
|
+
"name": "isComposeMsgSender",
|
|
470
|
+
"outputs": [
|
|
471
|
+
{
|
|
472
|
+
"internalType": "bool",
|
|
473
|
+
"name": "",
|
|
474
|
+
"type": "bool"
|
|
475
|
+
}
|
|
476
|
+
],
|
|
477
|
+
"stateMutability": "view",
|
|
478
|
+
"type": "function"
|
|
479
|
+
},
|
|
447
480
|
{
|
|
448
481
|
"inputs": [
|
|
449
482
|
{
|
|
@@ -381,19 +381,6 @@
|
|
|
381
381
|
"stateMutability": "view",
|
|
382
382
|
"type": "function"
|
|
383
383
|
},
|
|
384
|
-
{
|
|
385
|
-
"inputs": [],
|
|
386
|
-
"name": "composeMsgSender",
|
|
387
|
-
"outputs": [
|
|
388
|
-
{
|
|
389
|
-
"internalType": "address",
|
|
390
|
-
"name": "sender",
|
|
391
|
-
"type": "address"
|
|
392
|
-
}
|
|
393
|
-
],
|
|
394
|
-
"stateMutability": "view",
|
|
395
|
-
"type": "function"
|
|
396
|
-
},
|
|
397
384
|
{
|
|
398
385
|
"inputs": [],
|
|
399
386
|
"name": "decimalConversionRate",
|
|
@@ -444,6 +431,52 @@
|
|
|
444
431
|
"stateMutability": "view",
|
|
445
432
|
"type": "function"
|
|
446
433
|
},
|
|
434
|
+
{
|
|
435
|
+
"inputs": [
|
|
436
|
+
{
|
|
437
|
+
"components": [
|
|
438
|
+
{
|
|
439
|
+
"internalType": "uint32",
|
|
440
|
+
"name": "srcEid",
|
|
441
|
+
"type": "uint32"
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"internalType": "bytes32",
|
|
445
|
+
"name": "sender",
|
|
446
|
+
"type": "bytes32"
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
"internalType": "uint64",
|
|
450
|
+
"name": "nonce",
|
|
451
|
+
"type": "uint64"
|
|
452
|
+
}
|
|
453
|
+
],
|
|
454
|
+
"internalType": "struct Origin",
|
|
455
|
+
"name": "",
|
|
456
|
+
"type": "tuple"
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
"internalType": "bytes",
|
|
460
|
+
"name": "",
|
|
461
|
+
"type": "bytes"
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
"internalType": "address",
|
|
465
|
+
"name": "_sender",
|
|
466
|
+
"type": "address"
|
|
467
|
+
}
|
|
468
|
+
],
|
|
469
|
+
"name": "isComposeMsgSender",
|
|
470
|
+
"outputs": [
|
|
471
|
+
{
|
|
472
|
+
"internalType": "bool",
|
|
473
|
+
"name": "",
|
|
474
|
+
"type": "bool"
|
|
475
|
+
}
|
|
476
|
+
],
|
|
477
|
+
"stateMutability": "view",
|
|
478
|
+
"type": "function"
|
|
479
|
+
},
|
|
447
480
|
{
|
|
448
481
|
"inputs": [
|
|
449
482
|
{
|
|
@@ -15,7 +15,7 @@ abstract contract OAppReceiver is IOAppReceiver, OAppCore {
|
|
|
15
15
|
|
|
16
16
|
// @dev The version of the OAppReceiver implementation.
|
|
17
17
|
// @dev Version is bumped when changes are made to this contract.
|
|
18
|
-
uint64 internal constant RECEIVER_VERSION =
|
|
18
|
+
uint64 internal constant RECEIVER_VERSION = 2;
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* @notice Retrieves the OApp version information.
|
|
@@ -31,14 +31,24 @@ abstract contract OAppReceiver is IOAppReceiver, OAppCore {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
|
-
* @notice
|
|
35
|
-
* @
|
|
34
|
+
* @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.
|
|
35
|
+
* @dev _origin The origin information containing the source endpoint and sender address.
|
|
36
|
+
* - srcEid: The source chain endpoint ID.
|
|
37
|
+
* - sender: The sender address on the src chain.
|
|
38
|
+
* - nonce: The nonce of the message.
|
|
39
|
+
* @dev _message The lzReceive payload.
|
|
40
|
+
* @param _sender The sender address.
|
|
41
|
+
* @return isSender Is a valid sender.
|
|
36
42
|
*
|
|
37
|
-
* @dev Applications can optionally choose to implement
|
|
38
|
-
* @dev The default sender IS the
|
|
43
|
+
* @dev Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.
|
|
44
|
+
* @dev The default sender IS the OAppReceiver implementer.
|
|
39
45
|
*/
|
|
40
|
-
function
|
|
41
|
-
|
|
46
|
+
function isComposeMsgSender(
|
|
47
|
+
Origin calldata /*_origin*/,
|
|
48
|
+
bytes calldata /*_message*/,
|
|
49
|
+
address _sender
|
|
50
|
+
) public view virtual returns (bool) {
|
|
51
|
+
return _sender == address(this);
|
|
42
52
|
}
|
|
43
53
|
|
|
44
54
|
/**
|
|
@@ -92,6 +92,7 @@ abstract contract OmniCounterAbstract is ILayerZeroComposer, OApp, OAppPreCrimeS
|
|
|
92
92
|
function brokenIncrement(uint32 _eid, uint8 _type, bytes calldata _options) external payable onlyAdmin {
|
|
93
93
|
// bytes memory options = combineOptions(_eid, _type, _options);
|
|
94
94
|
_lzSend(_eid, MsgCodec.encode(_type, eid), _options, MessagingFee(msg.value, 0), payable(msg.sender));
|
|
95
|
+
// _incrementOutbound(_eid); // mock method which intentionally does not increment outboundCount to cause a PreCrime Crime
|
|
95
96
|
}
|
|
96
97
|
|
|
97
98
|
function batchIncrement(
|