@layerzerolabs/lz-evm-protocol-v2 2.0.13 → 2.0.15
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/artifacts/contracts/EndpointV2.sol/EndpointV2.json +82 -92
- package/artifacts/contracts/EndpointV2Alt.sol/EndpointV2Alt.json +84 -94
- package/artifacts/contracts/EndpointV2View.sol/EndpointV2View.json +209 -0
- package/artifacts/contracts/EndpointV2ViewUpgradeable.sol/EndpointV2ViewUpgradeable.json +196 -0
- package/artifacts/contracts/MessageLibManager.sol/MessageLibManager.json +12 -12
- package/artifacts/contracts/MessagingChannel.sol/MessagingChannel.json +2 -2
- package/artifacts/contracts/MessagingComposer.sol/MessagingComposer.json +2 -2
- package/artifacts/contracts/interfaces/ILayerZeroEndpointV2.sol/ILayerZeroEndpointV2.json +99 -51
- package/artifacts/contracts/interfaces/IMessageLibManager.sol/IMessageLibManager.json +29 -0
- package/artifacts/contracts/interfaces/IMessagingChannel.sol/IMessagingChannel.json +29 -0
- package/artifacts/contracts/libs/AddressCast.sol/AddressCast.json +14 -3
- package/artifacts/contracts/libs/Errors.sol/Errors.json +30 -45
- package/artifacts/contracts/libs/GUID.sol/GUID.json +2 -2
- package/artifacts/contracts/libs/Transfer.sol/Transfer.json +8 -8
- package/artifacts/contracts/messagelib/BlockedMessageLib.sol/BlockedMessageLib.json +3 -3
- package/artifacts/contracts/messagelib/SimpleMessageLib.sol/SimpleMessageLib.json +10 -10
- package/artifacts/contracts/messagelib/libs/ExecutorOptions.sol/ExecutorOptions.json +5 -5
- package/artifacts/contracts/messagelib/libs/PacketV1Codec.sol/PacketV1Codec.json +2 -2
- package/contracts/EndpointV2.sol +13 -49
- package/contracts/EndpointV2Alt.sol +4 -2
- package/contracts/EndpointV2View.sol +12 -0
- package/contracts/EndpointV2ViewUpgradeable.sol +86 -0
- package/contracts/MessageLibManager.sol +17 -17
- package/contracts/MessagingChannel.sol +8 -8
- package/contracts/MessagingComposer.sol +2 -2
- package/contracts/MessagingContext.sol +1 -1
- package/contracts/interfaces/ILayerZeroEndpointV2.sol +2 -13
- package/contracts/interfaces/ILayerZeroReceiver.sol +0 -1
- package/contracts/interfaces/IMessageLibManager.sol +2 -0
- package/contracts/interfaces/IMessagingChannel.sol +2 -0
- package/contracts/libs/AddressCast.sol +6 -5
- package/contracts/libs/Errors.sol +28 -31
- package/contracts/libs/Transfer.sol +5 -5
- package/contracts/messagelib/BlockedMessageLib.sol +1 -1
- package/contracts/messagelib/SimpleMessageLib.sol +1 -1
- package/contracts/messagelib/libs/ExecutorOptions.sol +6 -6
- package/package.json +3 -1
|
@@ -37,12 +37,12 @@
|
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
"inputs": [],
|
|
40
|
-
"name": "
|
|
40
|
+
"name": "LZ_NotImplemented",
|
|
41
41
|
"type": "error"
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
"inputs": [],
|
|
45
|
-
"name": "
|
|
45
|
+
"name": "LzTokenIsAddressZero",
|
|
46
46
|
"type": "error"
|
|
47
47
|
},
|
|
48
48
|
{
|
|
@@ -55,11 +55,6 @@
|
|
|
55
55
|
"name": "OnlyWhitelistCaller",
|
|
56
56
|
"type": "error"
|
|
57
57
|
},
|
|
58
|
-
{
|
|
59
|
-
"inputs": [],
|
|
60
|
-
"name": "ToAddressIsZero",
|
|
61
|
-
"type": "error"
|
|
62
|
-
},
|
|
63
58
|
{
|
|
64
59
|
"inputs": [],
|
|
65
60
|
"name": "ToIsAddressZero",
|
|
@@ -83,7 +78,12 @@
|
|
|
83
78
|
"type": "uint256"
|
|
84
79
|
}
|
|
85
80
|
],
|
|
86
|
-
"name": "
|
|
81
|
+
"name": "Transfer_NativeFailed",
|
|
82
|
+
"type": "error"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"inputs": [],
|
|
86
|
+
"name": "Transfer_ToAddressIsZero",
|
|
87
87
|
"type": "error"
|
|
88
88
|
},
|
|
89
89
|
{
|
|
@@ -584,8 +584,8 @@
|
|
|
584
584
|
"type": "receive"
|
|
585
585
|
}
|
|
586
586
|
],
|
|
587
|
-
"bytecode": "0x60e06040523480156200001157600080fd5b50604051620020033803806200200383398101604081905262000034916200013f565b6200003f33620000d2565b6001600160a01b03808316608081905290821660a0526040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa15801562000091573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000b7919062000177565b63ffffffff1660c052505060636002556064600355620001a6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200013a57600080fd5b919050565b600080604083850312156200015357600080fd5b6200015e8362000122565b91506200016e6020840162000122565b90509250929050565b6000602082840312156200018a57600080fd5b815163ffffffff811681146200019f57600080fd5b9392505050565b60805160a05160c051611e11620001f260003960006103d40152600061034301526000818161030f015281816106ce015281816107fd01528181610a450152610d070152611e116000f3fe6080604052600436106101845760003560e01c8063715018a6116100d6578063996f79c01161007f578063dabca06311610059578063dabca063146104ff578063f2fde38b1461051f578063fd9be5221461053f5761018b565b8063996f79c01461049c578063aec336e6146104b2578063d80e9bd9146104d25761018b565b80638da5cb5b116100b05780638da5cb5b1461042d5780638f58aa7a1461045857806390953238146104785761018b565b8063715018a6146103ad57806372607537146103c257806372d713221461040b5761018b565b80634389e58f1161013857806361d027b31161011257806361d027b3146103315780636251b637146103655780636750cd4c1461038c5761018b565b80634389e58f146102a257806354fd4d50146102d15780635e280f11146102fd5761018b565b80631881d94d116101695780631881d94d146102145780631c7c294e14610230578063334993ff146102825761018b565b806301ffc9a7146101bd57806312cc947f146101f25761018b565b3661018b57005b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3480156101c957600080fd5b506101dd6101d8366004611451565b61055f565b60405190151581526020015b60405180910390f35b3480156101fe57600080fd5b5061021261020d3660046114d5565b6105f8565b005b34801561022057600080fd5b5060026040516101e99190611517565b34801561023c57600080fd5b5060015461025d9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101e9565b34801561028e57600080fd5b5061021261029d366004611558565b6107d1565b3480156102ae57600080fd5b506102c26102bd3660046116a3565b6107e4565b6040516101e993929190611789565b3480156102dd57600080fd5b5060408051600080825260208201526002918101919091526060016101e9565b34801561030957600080fd5b5061025d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561033d57600080fd5b5061025d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561037157600080fd5b5061037a600181565b60405160ff90911681526020016101e9565b34801561039857600080fd5b506101dd6103a73660046117e2565b50600190565b3480156103b957600080fd5b5061021261094a565b3480156103ce57600080fd5b506103f67f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016101e9565b34801561041757600080fd5b5061042061095e565b6040516101e991906117fd565b34801561043957600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff1661025d565b34801561046457600080fd5b5061021261047336600461183d565b6109ec565b34801561048457600080fd5b5061048e60025481565b6040519081526020016101e9565b3480156104a857600080fd5b5061048e60035481565b3480156104be57600080fd5b506102126104cd366004611869565b610b47565b3480156104de57600080fd5b506104f26104ed366004611886565b610b96565b6040516101e99190611902565b34801561050b57600080fd5b5061021261051a366004611919565b610bda565b34801561052b57600080fd5b5061021261053a366004611869565b610bf2565b34801561054b57600080fd5b5061021261055a36600461183d565b610cae565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f97f025840000000000000000000000000000000000000000000000000000000014806105f257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60015473ffffffffffffffffffffffffffffffffffffffff1615801590610637575060015473ffffffffffffffffffffffffffffffffffffffff163314155b1561066e576040517f70b216ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180606001604052806106858585610da1565b63ffffffff16815260200161069a8585610dc4565b81526020016106a98585610de4565b67ffffffffffffffff169052905073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663a825d747826106fe8686610e07565b6107088787610e19565b60405161071692919061194e565b6040805191829003822060e086901b7fffffffff00000000000000000000000000000000000000000000000000000000168352845163ffffffff1660048401526020850151602484015293015167ffffffffffffffff16604482015273ffffffffffffffffffffffffffffffffffffffff9091166064820152608481019190915260a401600060405180830381600087803b1580156107b457600080fd5b505af11580156107c8573d6000803e3d6000fd5b50505050505050565b6107d9610e35565b600391909155600255565b60408051808201909152600080825260208201526060807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16331461086a576040517f7eb966c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61087b61087687611976565b610eb6565b9150845160001461088c5784610918565b6004805461089990611a14565b80601f01602080910402602001604051908101604052809291908181526020018280546108c590611a14565b80156109125780601f106108e757610100808354040283529160200191610912565b820191906000526020600020905b8154815290600101906020018083116108f557829003601f168201915b50505050505b9050604051806040016040528060035481526020018561093957600061093d565b6002545b9052969195509350915050565b610952610e35565b61095c6000610f1b565b565b6004805461096b90611a14565b80601f016020809104026020016040519081016040528092919081815260200182805461099790611a14565b80156109e45780601f106109b9576101008083540402835291602001916109e4565b820191906000526020600020905b8154815290600101906020018083116109c757829003601f168201915b505050505081565b6109f4610e35565b73ffffffffffffffffffffffffffffffffffffffff8216610a41576040517f3d3496e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad29190611a61565b905073ffffffffffffffffffffffffffffffffffffffff8116610b21576040517f54c1781b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b4273ffffffffffffffffffffffffffffffffffffffff82168484610f90565b505050565b610b4f610e35565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60408051808201909152600080825260208201526040518060400160405280600354815260200183610bc9576000610bcd565b6002545b905290505b949350505050565b610be2610e35565b6004610bee8282611ace565b5050565b610bfa610e35565b73ffffffffffffffffffffffffffffffffffffffff8116610ca2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610cab81610f1b565b50565b610cb6610e35565b73ffffffffffffffffffffffffffffffffffffffff8216610d03576040517f3d3496e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d949190611a61565b9050610b4281848461101d565b6000610db1600d60098486611be8565b610dba91611c12565b60e01c9392505050565b6000610dd4602d600d8486611be8565b610ddd91611c5a565b9392505050565b6000610df4600960018486611be8565b610dfd91611c96565b60c01c9392505050565b6000610ddd610e16848461104d565b90565b366000610e298360518187611be8565b915091505b9250929050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461095c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c99565b8051602080830151604080850151606080870151608088015160a089015160c08a015195519398610f05986001989197919673ffffffffffffffffffffffffffffffffffffffff169501611cdc565b6040516020818303038152906040529050919050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610b4290849061105d565b73ffffffffffffffffffffffffffffffffffffffff831661104257610b42828261116c565b610b42838383611272565b6000610dd4605160318486611be8565b60006110bf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166112e09092919063ffffffff16565b90508051600014806110e05750808060200190518101906110e09190611da2565b610b42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610c99565b73ffffffffffffffffffffffffffffffffffffffff82166111b9576040517f32fa6a1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114611213576040519150601f19603f3d011682016040523d82523d6000602084013e611218565b606091505b5050905080610b42576040517f2c024f9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610c99565b73ffffffffffffffffffffffffffffffffffffffff82166112bf576040517f32fa6a1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b4273ffffffffffffffffffffffffffffffffffffffff84168383610f90565b6060610bd28484600085856000808673ffffffffffffffffffffffffffffffffffffffff1685876040516113149190611dbf565b60006040518083038185875af1925050503d8060008114611351576040519150601f19603f3d011682016040523d82523d6000602084013e611356565b606091505b509150915061136787838387611372565b979650505050505050565b606083156114085782516000036114015773ffffffffffffffffffffffffffffffffffffffff85163b611401576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c99565b5081610bd2565b610bd2838381511561141d5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9991906117fd565b60006020828403121561146357600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610ddd57600080fd5b60008083601f8401126114a557600080fd5b50813567ffffffffffffffff8111156114bd57600080fd5b602083019150836020828501011115610e2e57600080fd5b600080602083850312156114e857600080fd5b823567ffffffffffffffff8111156114ff57600080fd5b61150b85828601611493565b90969095509350505050565b6020810160038310611552577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561156b57600080fd5b50508035926020909101359150565b600060e0828403121561158c57600080fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff811182821017156115e4576115e4611592565b60405290565b600082601f8301126115fb57600080fd5b813567ffffffffffffffff8082111561161657611616611592565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561165c5761165c611592565b8160405283815286602085880101111561167557600080fd5b836020870160208301376000602085830101528094505050505092915050565b8015158114610cab57600080fd5b6000806000606084860312156116b857600080fd5b833567ffffffffffffffff808211156116d057600080fd5b6116dc8783880161157a565b945060208601359150808211156116f257600080fd5b506116ff868287016115ea565b925050604084013561171081611695565b809150509250925092565b60005b8381101561173657818101518382015260200161171e565b50506000910152565b6000815180845261175781602086016020860161171b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b83518152602080850151908201526080604082015260006117ad608083018561173f565b82810360608401526117bf818561173f565b9695505050505050565b803563ffffffff811681146117dd57600080fd5b919050565b6000602082840312156117f457600080fd5b610ddd826117c9565b602081526000610ddd602083018461173f565b73ffffffffffffffffffffffffffffffffffffffff81168114610cab57600080fd5b80356117dd81611810565b6000806040838503121561185057600080fd5b823561185b81611810565b946020939093013593505050565b60006020828403121561187b57600080fd5b8135610ddd81611810565b6000806000806060858703121561189c57600080fd5b843567ffffffffffffffff808211156118b457600080fd5b6118c08883890161157a565b955060208701359150808211156118d657600080fd5b506118e387828801611493565b90945092505060408501356118f781611695565b939692955090935050565b8151815260208083015190820152604081016105f2565b60006020828403121561192b57600080fd5b813567ffffffffffffffff81111561194257600080fd5b610bd2848285016115ea565b8183823760009101908152919050565b803567ffffffffffffffff811681146117dd57600080fd5b600060e0823603121561198857600080fd5b6119906115c1565b6119998361195e565b81526119a7602084016117c9565b60208201526119b860408401611832565b60408201526119c9606084016117c9565b60608201526080830135608082015260a083013560a082015260c083013567ffffffffffffffff8111156119fc57600080fd5b611a08368286016115ea565b60c08301525092915050565b600181811c90821680611a2857607f821691505b60208210810361158c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060208284031215611a7357600080fd5b8151610ddd81611810565b601f821115610b42576000816000526020600020601f850160051c81016020861015611aa75750805b601f850160051c820191505b81811015611ac657828155600101611ab3565b505050505050565b815167ffffffffffffffff811115611ae857611ae8611592565b611afc81611af68454611a14565b84611a7e565b602080601f831160018114611b4f5760008415611b195750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611ac6565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015611b9c57888601518255948401946001909101908401611b7d565b5085821015611bd857878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60008085851115611bf857600080fd5b83861115611c0557600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015611c525780818660040360031b1b83161692505b505092915050565b803560208310156105f2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008135818116916008851015611c525760089490940360031b84901b1690921692915050565b7fff000000000000000000000000000000000000000000000000000000000000008960f81b1681527fffffffffffffffff0000000000000000000000000000000000000000000000008860c01b16600182015260007fffffffff00000000000000000000000000000000000000000000000000000000808960e01b16600984015287600d840152808760e01b16602d840152508460318301528360518301528251611d8e81607185016020870161171b565b919091016071019998505050505050505050565b600060208284031215611db457600080fd5b8151610ddd81611695565b60008251611dd181846020870161171b565b919091019291505056fea2646970667358221220d42394ded1cc993f25399ee65cd1f1bdebc165739a074470df0d865221bc676364736f6c63430008160033",
|
|
588
|
-
"deployedBytecode": "0x6080604052600436106101845760003560e01c8063715018a6116100d6578063996f79c01161007f578063dabca06311610059578063dabca063146104ff578063f2fde38b1461051f578063fd9be5221461053f5761018b565b8063996f79c01461049c578063aec336e6146104b2578063d80e9bd9146104d25761018b565b80638da5cb5b116100b05780638da5cb5b1461042d5780638f58aa7a1461045857806390953238146104785761018b565b8063715018a6146103ad57806372607537146103c257806372d713221461040b5761018b565b80634389e58f1161013857806361d027b31161011257806361d027b3146103315780636251b637146103655780636750cd4c1461038c5761018b565b80634389e58f146102a257806354fd4d50146102d15780635e280f11146102fd5761018b565b80631881d94d116101695780631881d94d146102145780631c7c294e14610230578063334993ff146102825761018b565b806301ffc9a7146101bd57806312cc947f146101f25761018b565b3661018b57005b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3480156101c957600080fd5b506101dd6101d8366004611451565b61055f565b60405190151581526020015b60405180910390f35b3480156101fe57600080fd5b5061021261020d3660046114d5565b6105f8565b005b34801561022057600080fd5b5060026040516101e99190611517565b34801561023c57600080fd5b5060015461025d9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101e9565b34801561028e57600080fd5b5061021261029d366004611558565b6107d1565b3480156102ae57600080fd5b506102c26102bd3660046116a3565b6107e4565b6040516101e993929190611789565b3480156102dd57600080fd5b5060408051600080825260208201526002918101919091526060016101e9565b34801561030957600080fd5b5061025d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561033d57600080fd5b5061025d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561037157600080fd5b5061037a600181565b60405160ff90911681526020016101e9565b34801561039857600080fd5b506101dd6103a73660046117e2565b50600190565b3480156103b957600080fd5b5061021261094a565b3480156103ce57600080fd5b506103f67f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016101e9565b34801561041757600080fd5b5061042061095e565b6040516101e991906117fd565b34801561043957600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff1661025d565b34801561046457600080fd5b5061021261047336600461183d565b6109ec565b34801561048457600080fd5b5061048e60025481565b6040519081526020016101e9565b3480156104a857600080fd5b5061048e60035481565b3480156104be57600080fd5b506102126104cd366004611869565b610b47565b3480156104de57600080fd5b506104f26104ed366004611886565b610b96565b6040516101e99190611902565b34801561050b57600080fd5b5061021261051a366004611919565b610bda565b34801561052b57600080fd5b5061021261053a366004611869565b610bf2565b34801561054b57600080fd5b5061021261055a36600461183d565b610cae565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f97f025840000000000000000000000000000000000000000000000000000000014806105f257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60015473ffffffffffffffffffffffffffffffffffffffff1615801590610637575060015473ffffffffffffffffffffffffffffffffffffffff163314155b1561066e576040517f70b216ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180606001604052806106858585610da1565b63ffffffff16815260200161069a8585610dc4565b81526020016106a98585610de4565b67ffffffffffffffff169052905073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663a825d747826106fe8686610e07565b6107088787610e19565b60405161071692919061194e565b6040805191829003822060e086901b7fffffffff00000000000000000000000000000000000000000000000000000000168352845163ffffffff1660048401526020850151602484015293015167ffffffffffffffff16604482015273ffffffffffffffffffffffffffffffffffffffff9091166064820152608481019190915260a401600060405180830381600087803b1580156107b457600080fd5b505af11580156107c8573d6000803e3d6000fd5b50505050505050565b6107d9610e35565b600391909155600255565b60408051808201909152600080825260208201526060807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16331461086a576040517f7eb966c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61087b61087687611976565b610eb6565b9150845160001461088c5784610918565b6004805461089990611a14565b80601f01602080910402602001604051908101604052809291908181526020018280546108c590611a14565b80156109125780601f106108e757610100808354040283529160200191610912565b820191906000526020600020905b8154815290600101906020018083116108f557829003601f168201915b50505050505b9050604051806040016040528060035481526020018561093957600061093d565b6002545b9052969195509350915050565b610952610e35565b61095c6000610f1b565b565b6004805461096b90611a14565b80601f016020809104026020016040519081016040528092919081815260200182805461099790611a14565b80156109e45780601f106109b9576101008083540402835291602001916109e4565b820191906000526020600020905b8154815290600101906020018083116109c757829003601f168201915b505050505081565b6109f4610e35565b73ffffffffffffffffffffffffffffffffffffffff8216610a41576040517f3d3496e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad29190611a61565b905073ffffffffffffffffffffffffffffffffffffffff8116610b21576040517f54c1781b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b4273ffffffffffffffffffffffffffffffffffffffff82168484610f90565b505050565b610b4f610e35565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60408051808201909152600080825260208201526040518060400160405280600354815260200183610bc9576000610bcd565b6002545b905290505b949350505050565b610be2610e35565b6004610bee8282611ace565b5050565b610bfa610e35565b73ffffffffffffffffffffffffffffffffffffffff8116610ca2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610cab81610f1b565b50565b610cb6610e35565b73ffffffffffffffffffffffffffffffffffffffff8216610d03576040517f3d3496e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d949190611a61565b9050610b4281848461101d565b6000610db1600d60098486611be8565b610dba91611c12565b60e01c9392505050565b6000610dd4602d600d8486611be8565b610ddd91611c5a565b9392505050565b6000610df4600960018486611be8565b610dfd91611c96565b60c01c9392505050565b6000610ddd610e16848461104d565b90565b366000610e298360518187611be8565b915091505b9250929050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461095c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c99565b8051602080830151604080850151606080870151608088015160a089015160c08a015195519398610f05986001989197919673ffffffffffffffffffffffffffffffffffffffff169501611cdc565b6040516020818303038152906040529050919050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610b4290849061105d565b73ffffffffffffffffffffffffffffffffffffffff831661104257610b42828261116c565b610b42838383611272565b6000610dd4605160318486611be8565b60006110bf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166112e09092919063ffffffff16565b90508051600014806110e05750808060200190518101906110e09190611da2565b610b42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610c99565b73ffffffffffffffffffffffffffffffffffffffff82166111b9576040517f32fa6a1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114611213576040519150601f19603f3d011682016040523d82523d6000602084013e611218565b606091505b5050905080610b42576040517f2c024f9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610c99565b73ffffffffffffffffffffffffffffffffffffffff82166112bf576040517f32fa6a1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b4273ffffffffffffffffffffffffffffffffffffffff84168383610f90565b6060610bd28484600085856000808673ffffffffffffffffffffffffffffffffffffffff1685876040516113149190611dbf565b60006040518083038185875af1925050503d8060008114611351576040519150601f19603f3d011682016040523d82523d6000602084013e611356565b606091505b509150915061136787838387611372565b979650505050505050565b606083156114085782516000036114015773ffffffffffffffffffffffffffffffffffffffff85163b611401576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c99565b5081610bd2565b610bd2838381511561141d5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9991906117fd565b60006020828403121561146357600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610ddd57600080fd5b60008083601f8401126114a557600080fd5b50813567ffffffffffffffff8111156114bd57600080fd5b602083019150836020828501011115610e2e57600080fd5b600080602083850312156114e857600080fd5b823567ffffffffffffffff8111156114ff57600080fd5b61150b85828601611493565b90969095509350505050565b6020810160038310611552577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561156b57600080fd5b50508035926020909101359150565b600060e0828403121561158c57600080fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff811182821017156115e4576115e4611592565b60405290565b600082601f8301126115fb57600080fd5b813567ffffffffffffffff8082111561161657611616611592565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561165c5761165c611592565b8160405283815286602085880101111561167557600080fd5b836020870160208301376000602085830101528094505050505092915050565b8015158114610cab57600080fd5b6000806000606084860312156116b857600080fd5b833567ffffffffffffffff808211156116d057600080fd5b6116dc8783880161157a565b945060208601359150808211156116f257600080fd5b506116ff868287016115ea565b925050604084013561171081611695565b809150509250925092565b60005b8381101561173657818101518382015260200161171e565b50506000910152565b6000815180845261175781602086016020860161171b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b83518152602080850151908201526080604082015260006117ad608083018561173f565b82810360608401526117bf818561173f565b9695505050505050565b803563ffffffff811681146117dd57600080fd5b919050565b6000602082840312156117f457600080fd5b610ddd826117c9565b602081526000610ddd602083018461173f565b73ffffffffffffffffffffffffffffffffffffffff81168114610cab57600080fd5b80356117dd81611810565b6000806040838503121561185057600080fd5b823561185b81611810565b946020939093013593505050565b60006020828403121561187b57600080fd5b8135610ddd81611810565b6000806000806060858703121561189c57600080fd5b843567ffffffffffffffff808211156118b457600080fd5b6118c08883890161157a565b955060208701359150808211156118d657600080fd5b506118e387828801611493565b90945092505060408501356118f781611695565b939692955090935050565b8151815260208083015190820152604081016105f2565b60006020828403121561192b57600080fd5b813567ffffffffffffffff81111561194257600080fd5b610bd2848285016115ea565b8183823760009101908152919050565b803567ffffffffffffffff811681146117dd57600080fd5b600060e0823603121561198857600080fd5b6119906115c1565b6119998361195e565b81526119a7602084016117c9565b60208201526119b860408401611832565b60408201526119c9606084016117c9565b60608201526080830135608082015260a083013560a082015260c083013567ffffffffffffffff8111156119fc57600080fd5b611a08368286016115ea565b60c08301525092915050565b600181811c90821680611a2857607f821691505b60208210810361158c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060208284031215611a7357600080fd5b8151610ddd81611810565b601f821115610b42576000816000526020600020601f850160051c81016020861015611aa75750805b601f850160051c820191505b81811015611ac657828155600101611ab3565b505050505050565b815167ffffffffffffffff811115611ae857611ae8611592565b611afc81611af68454611a14565b84611a7e565b602080601f831160018114611b4f5760008415611b195750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611ac6565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015611b9c57888601518255948401946001909101908401611b7d565b5085821015611bd857878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60008085851115611bf857600080fd5b83861115611c0557600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015611c525780818660040360031b1b83161692505b505092915050565b803560208310156105f2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008135818116916008851015611c525760089490940360031b84901b1690921692915050565b7fff000000000000000000000000000000000000000000000000000000000000008960f81b1681527fffffffffffffffff0000000000000000000000000000000000000000000000008860c01b16600182015260007fffffffff00000000000000000000000000000000000000000000000000000000808960e01b16600984015287600d840152808760e01b16602d840152508460318301528360518301528251611d8e81607185016020870161171b565b919091016071019998505050505050505050565b600060208284031215611db457600080fd5b8151610ddd81611695565b60008251611dd181846020870161171b565b919091019291505056fea2646970667358221220d42394ded1cc993f25399ee65cd1f1bdebc165739a074470df0d865221bc676364736f6c63430008160033",
|
|
587
|
+
"bytecode": "0x60e06040523480156200001157600080fd5b50604051620020033803806200200383398101604081905262000034916200013f565b6200003f33620000d2565b6001600160a01b03808316608081905290821660a0526040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa15801562000091573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000b7919062000177565b63ffffffff1660c052505060636002556064600355620001a6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200013a57600080fd5b919050565b600080604083850312156200015357600080fd5b6200015e8362000122565b91506200016e6020840162000122565b90509250929050565b6000602082840312156200018a57600080fd5b815163ffffffff811681146200019f57600080fd5b9392505050565b60805160a05160c051611e11620001f260003960006103d40152600061034301526000818161030f015281816106ce015281816107fd01528181610a450152610d070152611e116000f3fe6080604052600436106101845760003560e01c8063715018a6116100d6578063996f79c01161007f578063dabca06311610059578063dabca063146104ff578063f2fde38b1461051f578063fd9be5221461053f5761018b565b8063996f79c01461049c578063aec336e6146104b2578063d80e9bd9146104d25761018b565b80638da5cb5b116100b05780638da5cb5b1461042d5780638f58aa7a1461045857806390953238146104785761018b565b8063715018a6146103ad57806372607537146103c257806372d713221461040b5761018b565b80634389e58f1161013857806361d027b31161011257806361d027b3146103315780636251b637146103655780636750cd4c1461038c5761018b565b80634389e58f146102a257806354fd4d50146102d15780635e280f11146102fd5761018b565b80631881d94d116101695780631881d94d146102145780631c7c294e14610230578063334993ff146102825761018b565b806301ffc9a7146101bd57806312cc947f146101f25761018b565b3661018b57005b6040517f2657b6c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3480156101c957600080fd5b506101dd6101d8366004611451565b61055f565b60405190151581526020015b60405180910390f35b3480156101fe57600080fd5b5061021261020d3660046114d5565b6105f8565b005b34801561022057600080fd5b5060026040516101e99190611517565b34801561023c57600080fd5b5060015461025d9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101e9565b34801561028e57600080fd5b5061021261029d366004611558565b6107d1565b3480156102ae57600080fd5b506102c26102bd3660046116a3565b6107e4565b6040516101e993929190611789565b3480156102dd57600080fd5b5060408051600080825260208201526002918101919091526060016101e9565b34801561030957600080fd5b5061025d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561033d57600080fd5b5061025d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561037157600080fd5b5061037a600181565b60405160ff90911681526020016101e9565b34801561039857600080fd5b506101dd6103a73660046117e2565b50600190565b3480156103b957600080fd5b5061021261094a565b3480156103ce57600080fd5b506103f67f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016101e9565b34801561041757600080fd5b5061042061095e565b6040516101e991906117fd565b34801561043957600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff1661025d565b34801561046457600080fd5b5061021261047336600461183d565b6109ec565b34801561048457600080fd5b5061048e60025481565b6040519081526020016101e9565b3480156104a857600080fd5b5061048e60035481565b3480156104be57600080fd5b506102126104cd366004611869565b610b47565b3480156104de57600080fd5b506104f26104ed366004611886565b610b96565b6040516101e99190611902565b34801561050b57600080fd5b5061021261051a366004611919565b610bda565b34801561052b57600080fd5b5061021261053a366004611869565b610bf2565b34801561054b57600080fd5b5061021261055a36600461183d565b610cae565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f97f025840000000000000000000000000000000000000000000000000000000014806105f257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60015473ffffffffffffffffffffffffffffffffffffffff1615801590610637575060015473ffffffffffffffffffffffffffffffffffffffff163314155b1561066e576040517f70b216ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180606001604052806106858585610da1565b63ffffffff16815260200161069a8585610dc4565b81526020016106a98585610de4565b67ffffffffffffffff169052905073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663a825d747826106fe8686610e07565b6107088787610e19565b60405161071692919061194e565b6040805191829003822060e086901b7fffffffff00000000000000000000000000000000000000000000000000000000168352845163ffffffff1660048401526020850151602484015293015167ffffffffffffffff16604482015273ffffffffffffffffffffffffffffffffffffffff9091166064820152608481019190915260a401600060405180830381600087803b1580156107b457600080fd5b505af11580156107c8573d6000803e3d6000fd5b50505050505050565b6107d9610e35565b600391909155600255565b60408051808201909152600080825260208201526060807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16331461086a576040517f7eb966c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61087b61087687611976565b610eb6565b9150845160001461088c5784610918565b6004805461089990611a14565b80601f01602080910402602001604051908101604052809291908181526020018280546108c590611a14565b80156109125780601f106108e757610100808354040283529160200191610912565b820191906000526020600020905b8154815290600101906020018083116108f557829003601f168201915b50505050505b9050604051806040016040528060035481526020018561093957600061093d565b6002545b9052969195509350915050565b610952610e35565b61095c6000610f1b565b565b6004805461096b90611a14565b80601f016020809104026020016040519081016040528092919081815260200182805461099790611a14565b80156109e45780601f106109b9576101008083540402835291602001916109e4565b820191906000526020600020905b8154815290600101906020018083116109c757829003601f168201915b505050505081565b6109f4610e35565b73ffffffffffffffffffffffffffffffffffffffff8216610a41576040517f3d3496e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad29190611a61565b905073ffffffffffffffffffffffffffffffffffffffff8116610b21576040517f54c1781b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b4273ffffffffffffffffffffffffffffffffffffffff82168484610f90565b505050565b610b4f610e35565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60408051808201909152600080825260208201526040518060400160405280600354815260200183610bc9576000610bcd565b6002545b905290505b949350505050565b610be2610e35565b6004610bee8282611ace565b5050565b610bfa610e35565b73ffffffffffffffffffffffffffffffffffffffff8116610ca2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610cab81610f1b565b50565b610cb6610e35565b73ffffffffffffffffffffffffffffffffffffffff8216610d03576040517f3d3496e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d949190611a61565b9050610b4281848461101d565b6000610db1600d60098486611be8565b610dba91611c12565b60e01c9392505050565b6000610dd4602d600d8486611be8565b610ddd91611c5a565b9392505050565b6000610df4600960018486611be8565b610dfd91611c96565b60c01c9392505050565b6000610ddd610e16848461104d565b90565b366000610e298360518187611be8565b915091505b9250929050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461095c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c99565b8051602080830151604080850151606080870151608088015160a089015160c08a015195519398610f05986001989197919673ffffffffffffffffffffffffffffffffffffffff169501611cdc565b6040516020818303038152906040529050919050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610b4290849061105d565b73ffffffffffffffffffffffffffffffffffffffff831661104257610b42828261116c565b610b42838383611272565b6000610dd4605160318486611be8565b60006110bf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166112e09092919063ffffffff16565b90508051600014806110e05750808060200190518101906110e09190611da2565b610b42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610c99565b73ffffffffffffffffffffffffffffffffffffffff82166111b9576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114611213576040519150601f19603f3d011682016040523d82523d6000602084013e611218565b606091505b5050905080610b42576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610c99565b73ffffffffffffffffffffffffffffffffffffffff82166112bf576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b4273ffffffffffffffffffffffffffffffffffffffff84168383610f90565b6060610bd28484600085856000808673ffffffffffffffffffffffffffffffffffffffff1685876040516113149190611dbf565b60006040518083038185875af1925050503d8060008114611351576040519150601f19603f3d011682016040523d82523d6000602084013e611356565b606091505b509150915061136787838387611372565b979650505050505050565b606083156114085782516000036114015773ffffffffffffffffffffffffffffffffffffffff85163b611401576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c99565b5081610bd2565b610bd2838381511561141d5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9991906117fd565b60006020828403121561146357600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610ddd57600080fd5b60008083601f8401126114a557600080fd5b50813567ffffffffffffffff8111156114bd57600080fd5b602083019150836020828501011115610e2e57600080fd5b600080602083850312156114e857600080fd5b823567ffffffffffffffff8111156114ff57600080fd5b61150b85828601611493565b90969095509350505050565b6020810160038310611552577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561156b57600080fd5b50508035926020909101359150565b600060e0828403121561158c57600080fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff811182821017156115e4576115e4611592565b60405290565b600082601f8301126115fb57600080fd5b813567ffffffffffffffff8082111561161657611616611592565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561165c5761165c611592565b8160405283815286602085880101111561167557600080fd5b836020870160208301376000602085830101528094505050505092915050565b8015158114610cab57600080fd5b6000806000606084860312156116b857600080fd5b833567ffffffffffffffff808211156116d057600080fd5b6116dc8783880161157a565b945060208601359150808211156116f257600080fd5b506116ff868287016115ea565b925050604084013561171081611695565b809150509250925092565b60005b8381101561173657818101518382015260200161171e565b50506000910152565b6000815180845261175781602086016020860161171b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b83518152602080850151908201526080604082015260006117ad608083018561173f565b82810360608401526117bf818561173f565b9695505050505050565b803563ffffffff811681146117dd57600080fd5b919050565b6000602082840312156117f457600080fd5b610ddd826117c9565b602081526000610ddd602083018461173f565b73ffffffffffffffffffffffffffffffffffffffff81168114610cab57600080fd5b80356117dd81611810565b6000806040838503121561185057600080fd5b823561185b81611810565b946020939093013593505050565b60006020828403121561187b57600080fd5b8135610ddd81611810565b6000806000806060858703121561189c57600080fd5b843567ffffffffffffffff808211156118b457600080fd5b6118c08883890161157a565b955060208701359150808211156118d657600080fd5b506118e387828801611493565b90945092505060408501356118f781611695565b939692955090935050565b8151815260208083015190820152604081016105f2565b60006020828403121561192b57600080fd5b813567ffffffffffffffff81111561194257600080fd5b610bd2848285016115ea565b8183823760009101908152919050565b803567ffffffffffffffff811681146117dd57600080fd5b600060e0823603121561198857600080fd5b6119906115c1565b6119998361195e565b81526119a7602084016117c9565b60208201526119b860408401611832565b60408201526119c9606084016117c9565b60608201526080830135608082015260a083013560a082015260c083013567ffffffffffffffff8111156119fc57600080fd5b611a08368286016115ea565b60c08301525092915050565b600181811c90821680611a2857607f821691505b60208210810361158c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060208284031215611a7357600080fd5b8151610ddd81611810565b601f821115610b42576000816000526020600020601f850160051c81016020861015611aa75750805b601f850160051c820191505b81811015611ac657828155600101611ab3565b505050505050565b815167ffffffffffffffff811115611ae857611ae8611592565b611afc81611af68454611a14565b84611a7e565b602080601f831160018114611b4f5760008415611b195750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611ac6565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015611b9c57888601518255948401946001909101908401611b7d565b5085821015611bd857878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60008085851115611bf857600080fd5b83861115611c0557600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015611c525780818660040360031b1b83161692505b505092915050565b803560208310156105f2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008135818116916008851015611c525760089490940360031b84901b1690921692915050565b7fff000000000000000000000000000000000000000000000000000000000000008960f81b1681527fffffffffffffffff0000000000000000000000000000000000000000000000008860c01b16600182015260007fffffffff00000000000000000000000000000000000000000000000000000000808960e01b16600984015287600d840152808760e01b16602d840152508460318301528360518301528251611d8e81607185016020870161171b565b919091016071019998505050505050505050565b600060208284031215611db457600080fd5b8151610ddd81611695565b60008251611dd181846020870161171b565b919091019291505056fea264697066735822122094b5d0ed838fa5020c414183b57de7ccf607dba20c918e10b74020e69974479964736f6c63430008160033",
|
|
588
|
+
"deployedBytecode": "0x6080604052600436106101845760003560e01c8063715018a6116100d6578063996f79c01161007f578063dabca06311610059578063dabca063146104ff578063f2fde38b1461051f578063fd9be5221461053f5761018b565b8063996f79c01461049c578063aec336e6146104b2578063d80e9bd9146104d25761018b565b80638da5cb5b116100b05780638da5cb5b1461042d5780638f58aa7a1461045857806390953238146104785761018b565b8063715018a6146103ad57806372607537146103c257806372d713221461040b5761018b565b80634389e58f1161013857806361d027b31161011257806361d027b3146103315780636251b637146103655780636750cd4c1461038c5761018b565b80634389e58f146102a257806354fd4d50146102d15780635e280f11146102fd5761018b565b80631881d94d116101695780631881d94d146102145780631c7c294e14610230578063334993ff146102825761018b565b806301ffc9a7146101bd57806312cc947f146101f25761018b565b3661018b57005b6040517f2657b6c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3480156101c957600080fd5b506101dd6101d8366004611451565b61055f565b60405190151581526020015b60405180910390f35b3480156101fe57600080fd5b5061021261020d3660046114d5565b6105f8565b005b34801561022057600080fd5b5060026040516101e99190611517565b34801561023c57600080fd5b5060015461025d9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101e9565b34801561028e57600080fd5b5061021261029d366004611558565b6107d1565b3480156102ae57600080fd5b506102c26102bd3660046116a3565b6107e4565b6040516101e993929190611789565b3480156102dd57600080fd5b5060408051600080825260208201526002918101919091526060016101e9565b34801561030957600080fd5b5061025d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561033d57600080fd5b5061025d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561037157600080fd5b5061037a600181565b60405160ff90911681526020016101e9565b34801561039857600080fd5b506101dd6103a73660046117e2565b50600190565b3480156103b957600080fd5b5061021261094a565b3480156103ce57600080fd5b506103f67f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016101e9565b34801561041757600080fd5b5061042061095e565b6040516101e991906117fd565b34801561043957600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff1661025d565b34801561046457600080fd5b5061021261047336600461183d565b6109ec565b34801561048457600080fd5b5061048e60025481565b6040519081526020016101e9565b3480156104a857600080fd5b5061048e60035481565b3480156104be57600080fd5b506102126104cd366004611869565b610b47565b3480156104de57600080fd5b506104f26104ed366004611886565b610b96565b6040516101e99190611902565b34801561050b57600080fd5b5061021261051a366004611919565b610bda565b34801561052b57600080fd5b5061021261053a366004611869565b610bf2565b34801561054b57600080fd5b5061021261055a36600461183d565b610cae565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f97f025840000000000000000000000000000000000000000000000000000000014806105f257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60015473ffffffffffffffffffffffffffffffffffffffff1615801590610637575060015473ffffffffffffffffffffffffffffffffffffffff163314155b1561066e576040517f70b216ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180606001604052806106858585610da1565b63ffffffff16815260200161069a8585610dc4565b81526020016106a98585610de4565b67ffffffffffffffff169052905073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663a825d747826106fe8686610e07565b6107088787610e19565b60405161071692919061194e565b6040805191829003822060e086901b7fffffffff00000000000000000000000000000000000000000000000000000000168352845163ffffffff1660048401526020850151602484015293015167ffffffffffffffff16604482015273ffffffffffffffffffffffffffffffffffffffff9091166064820152608481019190915260a401600060405180830381600087803b1580156107b457600080fd5b505af11580156107c8573d6000803e3d6000fd5b50505050505050565b6107d9610e35565b600391909155600255565b60408051808201909152600080825260208201526060807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16331461086a576040517f7eb966c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61087b61087687611976565b610eb6565b9150845160001461088c5784610918565b6004805461089990611a14565b80601f01602080910402602001604051908101604052809291908181526020018280546108c590611a14565b80156109125780601f106108e757610100808354040283529160200191610912565b820191906000526020600020905b8154815290600101906020018083116108f557829003601f168201915b50505050505b9050604051806040016040528060035481526020018561093957600061093d565b6002545b9052969195509350915050565b610952610e35565b61095c6000610f1b565b565b6004805461096b90611a14565b80601f016020809104026020016040519081016040528092919081815260200182805461099790611a14565b80156109e45780601f106109b9576101008083540402835291602001916109e4565b820191906000526020600020905b8154815290600101906020018083116109c757829003601f168201915b505050505081565b6109f4610e35565b73ffffffffffffffffffffffffffffffffffffffff8216610a41576040517f3d3496e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad29190611a61565b905073ffffffffffffffffffffffffffffffffffffffff8116610b21576040517f54c1781b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b4273ffffffffffffffffffffffffffffffffffffffff82168484610f90565b505050565b610b4f610e35565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60408051808201909152600080825260208201526040518060400160405280600354815260200183610bc9576000610bcd565b6002545b905290505b949350505050565b610be2610e35565b6004610bee8282611ace565b5050565b610bfa610e35565b73ffffffffffffffffffffffffffffffffffffffff8116610ca2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610cab81610f1b565b50565b610cb6610e35565b73ffffffffffffffffffffffffffffffffffffffff8216610d03576040517f3d3496e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d949190611a61565b9050610b4281848461101d565b6000610db1600d60098486611be8565b610dba91611c12565b60e01c9392505050565b6000610dd4602d600d8486611be8565b610ddd91611c5a565b9392505050565b6000610df4600960018486611be8565b610dfd91611c96565b60c01c9392505050565b6000610ddd610e16848461104d565b90565b366000610e298360518187611be8565b915091505b9250929050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461095c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c99565b8051602080830151604080850151606080870151608088015160a089015160c08a015195519398610f05986001989197919673ffffffffffffffffffffffffffffffffffffffff169501611cdc565b6040516020818303038152906040529050919050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610b4290849061105d565b73ffffffffffffffffffffffffffffffffffffffff831661104257610b42828261116c565b610b42838383611272565b6000610dd4605160318486611be8565b60006110bf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166112e09092919063ffffffff16565b90508051600014806110e05750808060200190518101906110e09190611da2565b610b42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610c99565b73ffffffffffffffffffffffffffffffffffffffff82166111b9576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114611213576040519150601f19603f3d011682016040523d82523d6000602084013e611218565b606091505b5050905080610b42576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610c99565b73ffffffffffffffffffffffffffffffffffffffff82166112bf576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b4273ffffffffffffffffffffffffffffffffffffffff84168383610f90565b6060610bd28484600085856000808673ffffffffffffffffffffffffffffffffffffffff1685876040516113149190611dbf565b60006040518083038185875af1925050503d8060008114611351576040519150601f19603f3d011682016040523d82523d6000602084013e611356565b606091505b509150915061136787838387611372565b979650505050505050565b606083156114085782516000036114015773ffffffffffffffffffffffffffffffffffffffff85163b611401576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c99565b5081610bd2565b610bd2838381511561141d5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9991906117fd565b60006020828403121561146357600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610ddd57600080fd5b60008083601f8401126114a557600080fd5b50813567ffffffffffffffff8111156114bd57600080fd5b602083019150836020828501011115610e2e57600080fd5b600080602083850312156114e857600080fd5b823567ffffffffffffffff8111156114ff57600080fd5b61150b85828601611493565b90969095509350505050565b6020810160038310611552577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561156b57600080fd5b50508035926020909101359150565b600060e0828403121561158c57600080fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff811182821017156115e4576115e4611592565b60405290565b600082601f8301126115fb57600080fd5b813567ffffffffffffffff8082111561161657611616611592565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561165c5761165c611592565b8160405283815286602085880101111561167557600080fd5b836020870160208301376000602085830101528094505050505092915050565b8015158114610cab57600080fd5b6000806000606084860312156116b857600080fd5b833567ffffffffffffffff808211156116d057600080fd5b6116dc8783880161157a565b945060208601359150808211156116f257600080fd5b506116ff868287016115ea565b925050604084013561171081611695565b809150509250925092565b60005b8381101561173657818101518382015260200161171e565b50506000910152565b6000815180845261175781602086016020860161171b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b83518152602080850151908201526080604082015260006117ad608083018561173f565b82810360608401526117bf818561173f565b9695505050505050565b803563ffffffff811681146117dd57600080fd5b919050565b6000602082840312156117f457600080fd5b610ddd826117c9565b602081526000610ddd602083018461173f565b73ffffffffffffffffffffffffffffffffffffffff81168114610cab57600080fd5b80356117dd81611810565b6000806040838503121561185057600080fd5b823561185b81611810565b946020939093013593505050565b60006020828403121561187b57600080fd5b8135610ddd81611810565b6000806000806060858703121561189c57600080fd5b843567ffffffffffffffff808211156118b457600080fd5b6118c08883890161157a565b955060208701359150808211156118d657600080fd5b506118e387828801611493565b90945092505060408501356118f781611695565b939692955090935050565b8151815260208083015190820152604081016105f2565b60006020828403121561192b57600080fd5b813567ffffffffffffffff81111561194257600080fd5b610bd2848285016115ea565b8183823760009101908152919050565b803567ffffffffffffffff811681146117dd57600080fd5b600060e0823603121561198857600080fd5b6119906115c1565b6119998361195e565b81526119a7602084016117c9565b60208201526119b860408401611832565b60408201526119c9606084016117c9565b60608201526080830135608082015260a083013560a082015260c083013567ffffffffffffffff8111156119fc57600080fd5b611a08368286016115ea565b60c08301525092915050565b600181811c90821680611a2857607f821691505b60208210810361158c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060208284031215611a7357600080fd5b8151610ddd81611810565b601f821115610b42576000816000526020600020601f850160051c81016020861015611aa75750805b601f850160051c820191505b81811015611ac657828155600101611ab3565b505050505050565b815167ffffffffffffffff811115611ae857611ae8611592565b611afc81611af68454611a14565b84611a7e565b602080601f831160018114611b4f5760008415611b195750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611ac6565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015611b9c57888601518255948401946001909101908401611b7d565b5085821015611bd857878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60008085851115611bf857600080fd5b83861115611c0557600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015611c525780818660040360031b1b83161692505b505092915050565b803560208310156105f2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008135818116916008851015611c525760089490940360031b84901b1690921692915050565b7fff000000000000000000000000000000000000000000000000000000000000008960f81b1681527fffffffffffffffff0000000000000000000000000000000000000000000000008860c01b16600182015260007fffffffff00000000000000000000000000000000000000000000000000000000808960e01b16600984015287600d840152808760e01b16602d840152508460318301528360518301528251611d8e81607185016020870161171b565b919091016071019998505050505050505050565b600060208284031215611db457600080fd5b8151610ddd81611695565b60008251611dd181846020870161171b565b919091019291505056fea264697066735822122094b5d0ed838fa5020c414183b57de7ccf607dba20c918e10b74020e69974479964736f6c63430008160033",
|
|
589
589
|
"linkReferences": {},
|
|
590
590
|
"deployedLinkReferences": {}
|
|
591
591
|
}
|
|
@@ -5,22 +5,22 @@
|
|
|
5
5
|
"abi": [
|
|
6
6
|
{
|
|
7
7
|
"inputs": [],
|
|
8
|
-
"name": "
|
|
8
|
+
"name": "Executor_InvalidLzComposeOption",
|
|
9
9
|
"type": "error"
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
12
|
"inputs": [],
|
|
13
|
-
"name": "
|
|
13
|
+
"name": "Executor_InvalidLzReceiveOption",
|
|
14
14
|
"type": "error"
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
17
|
"inputs": [],
|
|
18
|
-
"name": "
|
|
18
|
+
"name": "Executor_InvalidNativeDropOption",
|
|
19
19
|
"type": "error"
|
|
20
20
|
}
|
|
21
21
|
],
|
|
22
|
-
"bytecode": "
|
|
23
|
-
"deployedBytecode": "
|
|
22
|
+
"bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202802f6fc7b0324d6e90f6b255a6d960eb59c14b267656809c799020401b377d164736f6c63430008160033",
|
|
23
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202802f6fc7b0324d6e90f6b255a6d960eb59c14b267656809c799020401b377d164736f6c63430008160033",
|
|
24
24
|
"linkReferences": {},
|
|
25
25
|
"deployedLinkReferences": {}
|
|
26
26
|
}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"contractName": "PacketV1Codec",
|
|
4
4
|
"sourceName": "contracts/messagelib/libs/PacketV1Codec.sol",
|
|
5
5
|
"abi": [],
|
|
6
|
-
"bytecode": "
|
|
7
|
-
"deployedBytecode": "
|
|
6
|
+
"bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bbc85d4f3af63b5580ccb5061a6cef246f5ffa7d781a450a25d85e1a0d5e8e1a64736f6c63430008160033",
|
|
7
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bbc85d4f3af63b5580ccb5061a6cef246f5ffa7d781a450a25d85e1a0d5e8e1a64736f6c63430008160033",
|
|
8
8
|
"linkReferences": {},
|
|
9
9
|
"deployedLinkReferences": {}
|
|
10
10
|
}
|
package/contracts/EndpointV2.sol
CHANGED
|
@@ -4,7 +4,7 @@ pragma solidity ^0.8.20;
|
|
|
4
4
|
|
|
5
5
|
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
6
6
|
|
|
7
|
-
import { MessagingFee, MessagingParams, MessagingReceipt, Origin,
|
|
7
|
+
import { MessagingFee, MessagingParams, MessagingReceipt, Origin, ILayerZeroEndpointV2 } from "./interfaces/ILayerZeroEndpointV2.sol";
|
|
8
8
|
import { ISendLib, Packet } from "./interfaces/ISendLib.sol";
|
|
9
9
|
import { ILayerZeroReceiver } from "./interfaces/ILayerZeroReceiver.sol";
|
|
10
10
|
import { Errors } from "./libs/Errors.sol";
|
|
@@ -54,7 +54,7 @@ contract EndpointV2 is ILayerZeroEndpointV2, MessagingChannel, MessageLibManager
|
|
|
54
54
|
/// @param _sender the sender of the message
|
|
55
55
|
function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory) {
|
|
56
56
|
// lzToken must be set to support payInLzToken
|
|
57
|
-
if (_params.payInLzToken && lzToken == address(0x0)) revert Errors.
|
|
57
|
+
if (_params.payInLzToken && lzToken == address(0x0)) revert Errors.LZ_LzTokenUnavailable();
|
|
58
58
|
|
|
59
59
|
// get the correct outbound nonce
|
|
60
60
|
uint64 nonce = outboundNonce[_sender][_params.dstEid][_params.receiver] + 1;
|
|
@@ -84,7 +84,7 @@ contract EndpointV2 is ILayerZeroEndpointV2, MessagingChannel, MessageLibManager
|
|
|
84
84
|
MessagingParams calldata _params,
|
|
85
85
|
address _refundAddress
|
|
86
86
|
) external payable sendContext(_params.dstEid, msg.sender) returns (MessagingReceipt memory) {
|
|
87
|
-
if (_params.payInLzToken && lzToken == address(0x0)) revert Errors.
|
|
87
|
+
if (_params.payInLzToken && lzToken == address(0x0)) revert Errors.LZ_LzTokenUnavailable();
|
|
88
88
|
|
|
89
89
|
// send message
|
|
90
90
|
(MessagingReceipt memory receipt, address _sendLibrary) = _send(msg.sender, _params);
|
|
@@ -149,11 +149,11 @@ contract EndpointV2 is ILayerZeroEndpointV2, MessagingChannel, MessageLibManager
|
|
|
149
149
|
/// @param _receiver the receiver of the message
|
|
150
150
|
/// @param _payloadHash the payload hash of the message
|
|
151
151
|
function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external {
|
|
152
|
-
if (!isValidReceiveLibrary(_receiver, _origin.srcEid, msg.sender)) revert Errors.
|
|
152
|
+
if (!isValidReceiveLibrary(_receiver, _origin.srcEid, msg.sender)) revert Errors.LZ_InvalidReceiveLibrary();
|
|
153
153
|
|
|
154
154
|
uint64 lazyNonce = lazyInboundNonce[_receiver][_origin.srcEid][_origin.sender];
|
|
155
|
-
if (!_initializable(_origin, _receiver, lazyNonce)) revert Errors.
|
|
156
|
-
if (!_verifiable(_origin, _receiver, lazyNonce)) revert Errors.
|
|
155
|
+
if (!_initializable(_origin, _receiver, lazyNonce)) revert Errors.LZ_PathNotInitializable();
|
|
156
|
+
if (!_verifiable(_origin, _receiver, lazyNonce)) revert Errors.LZ_PathNotVerifiable();
|
|
157
157
|
|
|
158
158
|
// insert the message into the message channel
|
|
159
159
|
_inbound(_receiver, _origin.srcEid, _origin.sender, _origin.nonce, _payloadHash);
|
|
@@ -292,7 +292,7 @@ contract EndpointV2 is ILayerZeroEndpointV2, MessagingChannel, MessageLibManager
|
|
|
292
292
|
// in which an oapp sending a message with lz token and the lz token is set to a new token between the tx
|
|
293
293
|
// being sent and the tx being mined. if the required lz token fee is 0 and the old lz token would be
|
|
294
294
|
// locked in the contract instead of being refunded
|
|
295
|
-
if (supplied == 0) revert Errors.
|
|
295
|
+
if (supplied == 0) revert Errors.LZ_ZeroLzTokenFee();
|
|
296
296
|
}
|
|
297
297
|
}
|
|
298
298
|
|
|
@@ -308,7 +308,7 @@ contract EndpointV2 is ILayerZeroEndpointV2, MessagingChannel, MessageLibManager
|
|
|
308
308
|
uint256 _suppliedLzTokenFee
|
|
309
309
|
) internal pure {
|
|
310
310
|
if (_required.nativeFee > _suppliedNativeFee || _required.lzTokenFee > _suppliedLzTokenFee) {
|
|
311
|
-
revert Errors.
|
|
311
|
+
revert Errors.LZ_InsufficientFee(
|
|
312
312
|
_required.nativeFee,
|
|
313
313
|
_suppliedNativeFee,
|
|
314
314
|
_required.lzTokenFee,
|
|
@@ -353,53 +353,17 @@ contract EndpointV2 is ILayerZeroEndpointV2, MessagingChannel, MessageLibManager
|
|
|
353
353
|
|
|
354
354
|
/// @dev assert the caller to either be the oapp or the delegate
|
|
355
355
|
function _assertAuthorized(address _oapp) internal view override(MessagingChannel, MessageLibManager) {
|
|
356
|
-
if (msg.sender != _oapp && msg.sender != delegates[_oapp]) revert Errors.
|
|
356
|
+
if (msg.sender != _oapp && msg.sender != delegates[_oapp]) revert Errors.LZ_Unauthorized();
|
|
357
357
|
}
|
|
358
358
|
|
|
359
359
|
// ========================= VIEW FUNCTIONS FOR OFFCHAIN ONLY =========================
|
|
360
360
|
// Not involved in any state transition function.
|
|
361
361
|
// ====================================================================================
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
function verifiable(
|
|
365
|
-
Origin calldata _origin,
|
|
366
|
-
address _receiver,
|
|
367
|
-
address _receiveLib,
|
|
368
|
-
bytes32 _payloadHash
|
|
369
|
-
) external view returns (bool) {
|
|
370
|
-
if (!isValidReceiveLibrary(_receiver, _origin.srcEid, _receiveLib)) return false;
|
|
371
|
-
|
|
372
|
-
uint64 lazyNonce = lazyInboundNonce[_receiver][_origin.srcEid][_origin.sender];
|
|
373
|
-
if (!_initializable(_origin, _receiver, lazyNonce)) return false;
|
|
374
|
-
if (!_verifiable(_origin, _receiver, lazyNonce)) return false;
|
|
375
|
-
|
|
376
|
-
// checked in _inbound for verify
|
|
377
|
-
if (_payloadHash == EMPTY_PAYLOAD_HASH) return false;
|
|
378
|
-
|
|
379
|
-
return true;
|
|
362
|
+
function initializable(Origin calldata _origin, address _receiver) external view returns (bool) {
|
|
363
|
+
return _initializable(_origin, _receiver, lazyInboundNonce[_receiver][_origin.srcEid][_origin.sender]);
|
|
380
364
|
}
|
|
381
365
|
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
function executable(Origin calldata _origin, address _receiver) external view returns (ExecutionState) {
|
|
385
|
-
bytes32 payloadHash = inboundPayloadHash[_receiver][_origin.srcEid][_origin.sender][_origin.nonce];
|
|
386
|
-
|
|
387
|
-
// executed if the payload hash has been cleared and the nonce is less than or equal to lazyInboundNonce
|
|
388
|
-
if (
|
|
389
|
-
payloadHash == EMPTY_PAYLOAD_HASH &&
|
|
390
|
-
_origin.nonce <= lazyInboundNonce[_receiver][_origin.srcEid][_origin.sender]
|
|
391
|
-
) {
|
|
392
|
-
return ExecutionState.Executed;
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
// executable if nonce has not been executed and is not nil and nonce is less than or equal to inboundNonce
|
|
396
|
-
if (
|
|
397
|
-
payloadHash != NIL_PAYLOAD_HASH && _origin.nonce <= inboundNonce(_receiver, _origin.srcEid, _origin.sender)
|
|
398
|
-
) {
|
|
399
|
-
return ExecutionState.Executable;
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
// return NotExecutable as a catch-all
|
|
403
|
-
return ExecutionState.NotExecutable;
|
|
366
|
+
function verifiable(Origin calldata _origin, address _receiver) external view returns (bool) {
|
|
367
|
+
return _verifiable(_origin, _receiver, lazyInboundNonce[_receiver][_origin.srcEid][_origin.sender]);
|
|
404
368
|
}
|
|
405
369
|
}
|
|
@@ -9,6 +9,8 @@ import { Errors } from "./libs/Errors.sol";
|
|
|
9
9
|
|
|
10
10
|
/// @notice this is the endpoint contract for layerzero v2 deployed on chains using ERC20 as native tokens
|
|
11
11
|
contract EndpointV2Alt is EndpointV2 {
|
|
12
|
+
error LZ_OnlyAltToken();
|
|
13
|
+
|
|
12
14
|
/// @dev the altFeeToken is used for fees when the native token has no value
|
|
13
15
|
/// @dev it is immutable for gas saving. only 1 endpoint for such chains
|
|
14
16
|
address internal immutable nativeErc20;
|
|
@@ -29,7 +31,7 @@ contract EndpointV2Alt is EndpointV2 {
|
|
|
29
31
|
address _receiver,
|
|
30
32
|
address _refundAddress
|
|
31
33
|
) internal override {
|
|
32
|
-
if (msg.value > 0) revert
|
|
34
|
+
if (msg.value > 0) revert LZ_OnlyAltToken();
|
|
33
35
|
_payToken(nativeErc20, _required, _supplied, _receiver, _refundAddress);
|
|
34
36
|
}
|
|
35
37
|
|
|
@@ -40,7 +42,7 @@ contract EndpointV2Alt is EndpointV2 {
|
|
|
40
42
|
|
|
41
43
|
/// @dev check if lzToken is set to the same address
|
|
42
44
|
function setLzToken(address _lzToken) public override onlyOwner {
|
|
43
|
-
if (_lzToken == nativeErc20) revert Errors.
|
|
45
|
+
if (_lzToken == nativeErc20) revert Errors.LZ_InvalidArgument();
|
|
44
46
|
super.setLzToken(_lzToken);
|
|
45
47
|
}
|
|
46
48
|
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LZBL-1.2
|
|
2
|
+
|
|
3
|
+
pragma solidity ^0.8.20;
|
|
4
|
+
|
|
5
|
+
import { Proxied } from "hardhat-deploy/solc_0.8/proxy/Proxied.sol";
|
|
6
|
+
import "./EndpointV2ViewUpgradeable.sol";
|
|
7
|
+
|
|
8
|
+
contract EndpointV2View is EndpointV2ViewUpgradeable, Proxied {
|
|
9
|
+
function initialize(address _endpoint) external proxied initializer {
|
|
10
|
+
__EndpointV2View_init(_endpoint);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LZBL-1.2
|
|
2
|
+
|
|
3
|
+
pragma solidity ^0.8.20;
|
|
4
|
+
|
|
5
|
+
import { Initializable } from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
6
|
+
|
|
7
|
+
import "./interfaces/ILayerZeroEndpointV2.sol";
|
|
8
|
+
|
|
9
|
+
enum ExecutionState {
|
|
10
|
+
NotExecutable,
|
|
11
|
+
VerifiedButNotExecutable,
|
|
12
|
+
Executable,
|
|
13
|
+
Executed
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
contract EndpointV2ViewUpgradeable is Initializable {
|
|
17
|
+
bytes32 public constant EMPTY_PAYLOAD_HASH = bytes32(0);
|
|
18
|
+
bytes32 public constant NIL_PAYLOAD_HASH = bytes32(type(uint256).max);
|
|
19
|
+
|
|
20
|
+
ILayerZeroEndpointV2 public endpoint;
|
|
21
|
+
|
|
22
|
+
function __EndpointV2View_init(address _endpoint) internal onlyInitializing {
|
|
23
|
+
__EndpointV2View_init_unchained(_endpoint);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function __EndpointV2View_init_unchained(address _endpoint) internal onlyInitializing {
|
|
27
|
+
endpoint = ILayerZeroEndpointV2(_endpoint);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function initializable(Origin memory _origin, address _receiver) public view returns (bool) {
|
|
31
|
+
return endpoint.initializable(_origin, _receiver);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/// @dev check if a message is verifiable.
|
|
35
|
+
function verifiable(
|
|
36
|
+
Origin memory _origin,
|
|
37
|
+
address _receiver,
|
|
38
|
+
address _receiveLib,
|
|
39
|
+
bytes32 _payloadHash
|
|
40
|
+
) public view returns (bool) {
|
|
41
|
+
if (!endpoint.isValidReceiveLibrary(_receiver, _origin.srcEid, _receiveLib)) return false;
|
|
42
|
+
|
|
43
|
+
if (!endpoint.verifiable(_origin, _receiver)) return false;
|
|
44
|
+
|
|
45
|
+
// checked in _inbound for verify
|
|
46
|
+
if (_payloadHash == EMPTY_PAYLOAD_HASH) return false;
|
|
47
|
+
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/// @dev check if a message is executable.
|
|
52
|
+
/// @return ExecutionState of Executed, Executable, or NotExecutable
|
|
53
|
+
function executable(Origin memory _origin, address _receiver) public view returns (ExecutionState) {
|
|
54
|
+
bytes32 payloadHash = endpoint.inboundPayloadHash(_receiver, _origin.srcEid, _origin.sender, _origin.nonce);
|
|
55
|
+
|
|
56
|
+
// executed if the payload hash has been cleared and the nonce is less than or equal to lazyInboundNonce
|
|
57
|
+
if (
|
|
58
|
+
payloadHash == EMPTY_PAYLOAD_HASH &&
|
|
59
|
+
_origin.nonce <= endpoint.lazyInboundNonce(_receiver, _origin.srcEid, _origin.sender)
|
|
60
|
+
) {
|
|
61
|
+
return ExecutionState.Executed;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// executable if nonce has not been executed and has not been nilified and nonce is less than or equal to inboundNonce
|
|
65
|
+
if (
|
|
66
|
+
payloadHash != NIL_PAYLOAD_HASH &&
|
|
67
|
+
_origin.nonce <= endpoint.inboundNonce(_receiver, _origin.srcEid, _origin.sender)
|
|
68
|
+
) {
|
|
69
|
+
return ExecutionState.Executable;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (payloadHash != EMPTY_PAYLOAD_HASH) {
|
|
73
|
+
return ExecutionState.VerifiedButNotExecutable;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// return NotExecutable as a catch-all
|
|
77
|
+
return ExecutionState.NotExecutable;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* @dev This empty reserved space is put in place to allow future versions to add new
|
|
82
|
+
* variables without shifting down storage in the inheritance chain.
|
|
83
|
+
* See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps
|
|
84
|
+
*/
|
|
85
|
+
uint256[49] private __gap;
|
|
86
|
+
}
|
|
@@ -37,26 +37,26 @@ abstract contract MessageLibManager is Ownable, IMessageLibManager {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
modifier onlyRegistered(address _lib) {
|
|
40
|
-
if (!isRegisteredLibrary[_lib]) revert Errors.
|
|
40
|
+
if (!isRegisteredLibrary[_lib]) revert Errors.LZ_OnlyRegisteredLib();
|
|
41
41
|
_;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
modifier isSendLib(address _lib) {
|
|
45
45
|
if (_lib != DEFAULT_LIB) {
|
|
46
|
-
if (IMessageLib(_lib).messageLibType() == MessageLibType.Receive) revert Errors.
|
|
46
|
+
if (IMessageLib(_lib).messageLibType() == MessageLibType.Receive) revert Errors.LZ_OnlySendLib();
|
|
47
47
|
}
|
|
48
48
|
_;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
modifier isReceiveLib(address _lib) {
|
|
52
52
|
if (_lib != DEFAULT_LIB) {
|
|
53
|
-
if (IMessageLib(_lib).messageLibType() == MessageLibType.Send) revert Errors.
|
|
53
|
+
if (IMessageLib(_lib).messageLibType() == MessageLibType.Send) revert Errors.LZ_OnlyReceiveLib();
|
|
54
54
|
}
|
|
55
55
|
_;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
modifier onlyRegisteredOrDefault(address _lib) {
|
|
59
|
-
if (!isRegisteredLibrary[_lib] && _lib != DEFAULT_LIB) revert Errors.
|
|
59
|
+
if (!isRegisteredLibrary[_lib] && _lib != DEFAULT_LIB) revert Errors.LZ_OnlyRegisteredOrDefaultLib();
|
|
60
60
|
_;
|
|
61
61
|
}
|
|
62
62
|
|
|
@@ -64,7 +64,7 @@ abstract contract MessageLibManager is Ownable, IMessageLibManager {
|
|
|
64
64
|
modifier onlySupportedEid(address _lib, uint32 _eid) {
|
|
65
65
|
/// @dev doesnt need to check for default lib, because when they are initially added they get passed through this modifier
|
|
66
66
|
if (_lib != DEFAULT_LIB) {
|
|
67
|
-
if (!IMessageLib(_lib).isSupportedEid(_eid)) revert Errors.
|
|
67
|
+
if (!IMessageLib(_lib).isSupportedEid(_eid)) revert Errors.LZ_UnsupportedEid();
|
|
68
68
|
}
|
|
69
69
|
_;
|
|
70
70
|
}
|
|
@@ -84,7 +84,7 @@ abstract contract MessageLibManager is Ownable, IMessageLibManager {
|
|
|
84
84
|
lib = sendLibrary[_sender][_dstEid];
|
|
85
85
|
if (lib == DEFAULT_LIB) {
|
|
86
86
|
lib = defaultSendLibrary[_dstEid];
|
|
87
|
-
if (lib == address(0x0)) revert Errors.
|
|
87
|
+
if (lib == address(0x0)) revert Errors.LZ_DefaultSendLibUnavailable();
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
|
|
@@ -97,7 +97,7 @@ abstract contract MessageLibManager is Ownable, IMessageLibManager {
|
|
|
97
97
|
lib = receiveLibrary[_receiver][_srcEid];
|
|
98
98
|
if (lib == DEFAULT_LIB) {
|
|
99
99
|
lib = defaultReceiveLibrary[_srcEid];
|
|
100
|
-
if (lib == address(0x0)) revert Errors.
|
|
100
|
+
if (lib == address(0x0)) revert Errors.LZ_DefaultReceiveLibUnavailable();
|
|
101
101
|
isDefault = true;
|
|
102
102
|
}
|
|
103
103
|
}
|
|
@@ -139,9 +139,9 @@ abstract contract MessageLibManager is Ownable, IMessageLibManager {
|
|
|
139
139
|
/// @dev only owner
|
|
140
140
|
function registerLibrary(address _lib) public onlyOwner {
|
|
141
141
|
// must have the right interface
|
|
142
|
-
if (!IERC165(_lib).supportsInterface(type(IMessageLib).interfaceId)) revert Errors.
|
|
142
|
+
if (!IERC165(_lib).supportsInterface(type(IMessageLib).interfaceId)) revert Errors.LZ_UnsupportedInterface();
|
|
143
143
|
// must have not been registered
|
|
144
|
-
if (isRegisteredLibrary[_lib]) revert Errors.
|
|
144
|
+
if (isRegisteredLibrary[_lib]) revert Errors.LZ_AlreadyRegistered();
|
|
145
145
|
|
|
146
146
|
// insert into both the map and the list
|
|
147
147
|
isRegisteredLibrary[_lib] = true;
|
|
@@ -159,7 +159,7 @@ abstract contract MessageLibManager is Ownable, IMessageLibManager {
|
|
|
159
159
|
address _newLib
|
|
160
160
|
) external onlyOwner onlyRegistered(_newLib) isSendLib(_newLib) onlySupportedEid(_newLib, _eid) {
|
|
161
161
|
// must provide a different value
|
|
162
|
-
if (defaultSendLibrary[_eid] == _newLib) revert Errors.
|
|
162
|
+
if (defaultSendLibrary[_eid] == _newLib) revert Errors.LZ_SameValue();
|
|
163
163
|
defaultSendLibrary[_eid] = _newLib;
|
|
164
164
|
emit DefaultSendLibrarySet(_eid, _newLib);
|
|
165
165
|
}
|
|
@@ -175,7 +175,7 @@ abstract contract MessageLibManager is Ownable, IMessageLibManager {
|
|
|
175
175
|
) external onlyOwner onlyRegistered(_newLib) isReceiveLib(_newLib) onlySupportedEid(_newLib, _eid) {
|
|
176
176
|
address oldLib = defaultReceiveLibrary[_eid];
|
|
177
177
|
// must provide a different value
|
|
178
|
-
if (oldLib == _newLib) revert Errors.
|
|
178
|
+
if (oldLib == _newLib) revert Errors.LZ_SameValue();
|
|
179
179
|
|
|
180
180
|
defaultReceiveLibrary[_eid] = _newLib;
|
|
181
181
|
emit DefaultReceiveLibrarySet(_eid, _newLib);
|
|
@@ -207,7 +207,7 @@ abstract contract MessageLibManager is Ownable, IMessageLibManager {
|
|
|
207
207
|
delete defaultReceiveLibraryTimeout[_eid];
|
|
208
208
|
} else {
|
|
209
209
|
// override it with new configuration
|
|
210
|
-
if (_expiry <= block.number) revert Errors.
|
|
210
|
+
if (_expiry <= block.number) revert Errors.LZ_InvalidExpiry();
|
|
211
211
|
Timeout storage timeout = defaultReceiveLibraryTimeout[_eid];
|
|
212
212
|
timeout.lib = _lib;
|
|
213
213
|
timeout.expiry = _expiry;
|
|
@@ -232,7 +232,7 @@ abstract contract MessageLibManager is Ownable, IMessageLibManager {
|
|
|
232
232
|
_assertAuthorized(_oapp);
|
|
233
233
|
|
|
234
234
|
// must provide a different value
|
|
235
|
-
if (sendLibrary[_oapp][_eid] == _newLib) revert Errors.
|
|
235
|
+
if (sendLibrary[_oapp][_eid] == _newLib) revert Errors.LZ_SameValue();
|
|
236
236
|
sendLibrary[_oapp][_eid] = _newLib;
|
|
237
237
|
emit SendLibrarySet(_oapp, _eid, _newLib);
|
|
238
238
|
}
|
|
@@ -252,7 +252,7 @@ abstract contract MessageLibManager is Ownable, IMessageLibManager {
|
|
|
252
252
|
|
|
253
253
|
address oldLib = receiveLibrary[_oapp][_eid];
|
|
254
254
|
// must provide new values
|
|
255
|
-
if (oldLib == _newLib) revert Errors.
|
|
255
|
+
if (oldLib == _newLib) revert Errors.LZ_SameValue();
|
|
256
256
|
receiveLibrary[_oapp][_eid] = _newLib;
|
|
257
257
|
emit ReceiveLibrarySet(_oapp, _eid, _newLib);
|
|
258
258
|
|
|
@@ -260,7 +260,7 @@ abstract contract MessageLibManager is Ownable, IMessageLibManager {
|
|
|
260
260
|
// to simplify the logic, we only allow to set timeout if neither the new lib nor old lib is DEFAULT_LIB, which would should read the default timeout configurations
|
|
261
261
|
// (1) if the Oapp wants to fall back to the DEFAULT, then set the newLib to DEFAULT with grace period == 0
|
|
262
262
|
// (2) if the Oapp wants to change to a non DEFAULT from DEFAULT, then set the newLib to 'non-default' with _gracePeriod == 0, then use setReceiveLibraryTimeout() interface
|
|
263
|
-
if (oldLib == DEFAULT_LIB || _newLib == DEFAULT_LIB) revert Errors.
|
|
263
|
+
if (oldLib == DEFAULT_LIB || _newLib == DEFAULT_LIB) revert Errors.LZ_OnlyNonDefaultLib();
|
|
264
264
|
|
|
265
265
|
// write to storage
|
|
266
266
|
Timeout memory timeout = Timeout({ lib: oldLib, expiry: block.number + _gracePeriod });
|
|
@@ -286,14 +286,14 @@ abstract contract MessageLibManager is Ownable, IMessageLibManager {
|
|
|
286
286
|
|
|
287
287
|
(, bool isDefault) = getReceiveLibrary(_oapp, _eid);
|
|
288
288
|
// if current library is DEFAULT, Oapp cant set the timeout
|
|
289
|
-
if (isDefault) revert Errors.
|
|
289
|
+
if (isDefault) revert Errors.LZ_OnlyNonDefaultLib();
|
|
290
290
|
|
|
291
291
|
if (_expiry == 0) {
|
|
292
292
|
// force remove the current configuration
|
|
293
293
|
delete receiveLibraryTimeout[_oapp][_eid];
|
|
294
294
|
} else {
|
|
295
295
|
// override it with new configuration
|
|
296
|
-
if (_expiry <= block.number) revert Errors.
|
|
296
|
+
if (_expiry <= block.number) revert Errors.LZ_InvalidExpiry();
|
|
297
297
|
Timeout storage timeout = receiveLibraryTimeout[_oapp][_eid];
|
|
298
298
|
timeout.lib = _lib;
|
|
299
299
|
timeout.expiry = _expiry;
|