@abacus-network/app
Advanced tools
Comparing version 0.1.0 to 0.1.1-alpha1
@@ -14,3 +14,3 @@ import type { TestRouter, TestRouterInterface } from "../TestRouter"; | ||
connect(signer: Signer): TestRouter__factory; | ||
static readonly bytecode = "0x608060405234801561001057600080fd5b50611996806100206000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063715018a61161008c5780639a35c359116100665780639a35c35914610210578063b49c53a71461022e578063c4d66de81461024a578063f2fde38b14610266576100cf565b8063715018a6146101cc5780638d8dff24146101d65780638da5cb5b146101f2576100cf565b806312b1d780146100d4578063133b79a9146100f057806319d2df84146101205780632e6a9e4b146101505780632ead72f61461018057806356d5d475146101b0575b600080fd5b6100ee60048036038101906100e99190610eb6565b610282565b005b61010a60048036038101906101059190610f1f565b61030a565b6040516101179190610f65565b60405180910390f35b61013a60048036038101906101359190610fe5565b61031c565b604051610147919061105e565b60405180910390f35b61016a600480360381019061016591906110a5565b610375565b6040516101779190611100565b60405180910390f35b61019a60048036038101906101959190610f1f565b610389565b6040516101a79190610f65565b60405180910390f35b6101ca60048036038101906101c5919061125c565b6103a1565b005b6101d4610446565b005b6101f060048036038101906101eb91906112f7565b6104ce565b005b6101fa610523565b604051610207919061137a565b60405180910390f35b61021861054d565b60405161022591906113f4565b60405180910390f35b610248600480360381019061024391906110a5565b610573565b005b610264600480360381019061025f9190610eb6565b6105fd565b005b610280600480360381019061027b9190610eb6565b6106eb565b005b61028a6107e2565b73ffffffffffffffffffffffffffffffffffffffff166102a8610523565b73ffffffffffffffffffffffffffffffffffffffff16146102fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f59061146c565b60405180910390fd5b610307816107ea565b50565b600061031582610871565b9050919050565b600061036c8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506108df565b90509392505050565b6000610381838361097d565b905092915050565b60976020528060005260406000206000915090505481565b6103aa336109a9565b6103e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e0906114d8565b60405180910390fd5b82826103f5828261097d565b610434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042b90611544565b60405180910390fd5b61043f858585610a4e565b5050505050565b61044e6107e2565b73ffffffffffffffffffffffffffffffffffffffff1661046c610523565b73ffffffffffffffffffffffffffffffffffffffff16146104c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b99061146c565b60405180910390fd5b6104cc6000610a53565b565b61051d8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505083610b19565b50505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61057b6107e2565b73ffffffffffffffffffffffffffffffffffffffff16610599610523565b73ffffffffffffffffffffffffffffffffffffffff16146105ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e69061146c565b60405180910390fd5b6105f98282610baa565b5050565b600060019054906101000a900460ff166106255760008054906101000a900460ff161561062e565b61062d610c06565b5b61066d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610664906115d6565b60405180910390fd5b60008060019054906101000a900460ff1615905080156106bd576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6106c682610c17565b80156106e75760008060016101000a81548160ff0219169083151502179055505b5050565b6106f36107e2565b73ffffffffffffffffffffffffffffffffffffffff16610711610523565b73ffffffffffffffffffffffffffffffffffffffff1614610767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075e9061146c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cd90611668565b60405180910390fd5b6107df81610a53565b50565b600033905090565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167ffd9d51f0a51aa62211445229fd1a1ef01bbe01347290d8e15249b8c33a89eea660405160405180910390a250565b6000609760008363ffffffff1663ffffffff1681526020019081526020016000205490506000801b81036108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d190611544565b60405180910390fd5b919050565b6000806108eb84610871565b90506108f5610c23565b73ffffffffffffffffffffffffffffffffffffffff1663fa31de018583866040518463ffffffff1660e01b81526004016109319392919061171f565b6020604051808303816000875af1158015610950573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109749190611772565b91505092915050565b600081609760008563ffffffff1663ffffffff1681526020019081526020016000205414905092915050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663282f51eb836040518263ffffffff1660e01b8152600401610a06919061137a565b602060405180830381865afa158015610a23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4791906117cb565b9050919050565b505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000610b2584846108df565b90506000821115610ba457610b38610cbb565b73ffffffffffffffffffffffffffffffffffffffff166331f1dd3383836040518363ffffffff1660e01b8152600401610b71919061105e565b6000604051808303818588803b158015610b8a57600080fd5b505af1158015610b9e573d6000803e3d6000fd5b50505050505b50505050565b80609760008463ffffffff1663ffffffff16815260200190815260200160002081905550808263ffffffff167f7a69b3d35edf59b97fd4d38d8ecf2b4ecd0a19d236e421d8c543ea234d66597460405160405180910390a35050565b6000610c1130610d53565b15905090565b610c2081610d76565b50565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce11e6ab6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb69190611836565b905090565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166339bb4ad96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4e91906118a1565b905090565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b610d7f816107ea565b610d87610d8a565b50565b600060019054906101000a900460ff16610dd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd090611940565b60405180910390fd5b610de1610de3565b565b600060019054906101000a900460ff16610e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2990611940565b60405180910390fd5b610e42610e3d6107e2565b610a53565b565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e8382610e58565b9050919050565b610e9381610e78565b8114610e9e57600080fd5b50565b600081359050610eb081610e8a565b92915050565b600060208284031215610ecc57610ecb610e4e565b5b6000610eda84828501610ea1565b91505092915050565b600063ffffffff82169050919050565b610efc81610ee3565b8114610f0757600080fd5b50565b600081359050610f1981610ef3565b92915050565b600060208284031215610f3557610f34610e4e565b5b6000610f4384828501610f0a565b91505092915050565b6000819050919050565b610f5f81610f4c565b82525050565b6000602082019050610f7a6000830184610f56565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610fa557610fa4610f80565b5b8235905067ffffffffffffffff811115610fc257610fc1610f85565b5b602083019150836001820283011115610fde57610fdd610f8a565b5b9250929050565b600080600060408486031215610ffe57610ffd610e4e565b5b600061100c86828701610f0a565b935050602084013567ffffffffffffffff81111561102d5761102c610e53565b5b61103986828701610f8f565b92509250509250925092565b6000819050919050565b61105881611045565b82525050565b6000602082019050611073600083018461104f565b92915050565b61108281610f4c565b811461108d57600080fd5b50565b60008135905061109f81611079565b92915050565b600080604083850312156110bc576110bb610e4e565b5b60006110ca85828601610f0a565b92505060206110db85828601611090565b9150509250929050565b60008115159050919050565b6110fa816110e5565b82525050565b600060208201905061111560008301846110f1565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61116982611120565b810181811067ffffffffffffffff8211171561118857611187611131565b5b80604052505050565b600061119b610e44565b90506111a78282611160565b919050565b600067ffffffffffffffff8211156111c7576111c6611131565b5b6111d082611120565b9050602081019050919050565b82818337600083830152505050565b60006111ff6111fa846111ac565b611191565b90508281526020810184848401111561121b5761121a61111b565b5b6112268482856111dd565b509392505050565b600082601f83011261124357611242610f80565b5b81356112538482602086016111ec565b91505092915050565b60008060006060848603121561127557611274610e4e565b5b600061128386828701610f0a565b935050602061129486828701611090565b925050604084013567ffffffffffffffff8111156112b5576112b4610e53565b5b6112c18682870161122e565b9150509250925092565b6112d481611045565b81146112df57600080fd5b50565b6000813590506112f1816112cb565b92915050565b6000806000806060858703121561131157611310610e4e565b5b600061131f87828801610f0a565b945050602085013567ffffffffffffffff8111156113405761133f610e53565b5b61134c87828801610f8f565b9350935050604061135f878288016112e2565b91505092959194509250565b61137481610e78565b82525050565b600060208201905061138f600083018461136b565b92915050565b6000819050919050565b60006113ba6113b56113b084610e58565b611395565b610e58565b9050919050565b60006113cc8261139f565b9050919050565b60006113de826113c1565b9050919050565b6113ee816113d3565b82525050565b600060208201905061140960008301846113e5565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061145660208361140f565b915061146182611420565b602082019050919050565b6000602082019050818103600083015261148581611449565b9050919050565b7f21696e626f780000000000000000000000000000000000000000000000000000600082015250565b60006114c260068361140f565b91506114cd8261148c565b602082019050919050565b600060208201905081810360008301526114f1816114b5565b9050919050565b7f21726f7574657200000000000000000000000000000000000000000000000000600082015250565b600061152e60078361140f565b9150611539826114f8565b602082019050919050565b6000602082019050818103600083015261155d81611521565b9050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006115c0602e8361140f565b91506115cb82611564565b604082019050919050565b600060208201905081810360008301526115ef816115b3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061165260268361140f565b915061165d826115f6565b604082019050919050565b6000602082019050818103600083015261168181611645565b9050919050565b61169181610ee3565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156116d15780820151818401526020810190506116b6565b838111156116e0576000848401525b50505050565b60006116f182611697565b6116fb81856116a2565b935061170b8185602086016116b3565b61171481611120565b840191505092915050565b60006060820190506117346000830186611688565b6117416020830185610f56565b818103604083015261175381846116e6565b9050949350505050565b60008151905061176c816112cb565b92915050565b60006020828403121561178857611787610e4e565b5b60006117968482850161175d565b91505092915050565b6117a8816110e5565b81146117b357600080fd5b50565b6000815190506117c58161179f565b92915050565b6000602082840312156117e1576117e0610e4e565b5b60006117ef848285016117b6565b91505092915050565b600061180382610e78565b9050919050565b611813816117f8565b811461181e57600080fd5b50565b6000815190506118308161180a565b92915050565b60006020828403121561184c5761184b610e4e565b5b600061185a84828501611821565b91505092915050565b600061186e82610e78565b9050919050565b61187e81611863565b811461188957600080fd5b50565b60008151905061189b81611875565b92915050565b6000602082840312156118b7576118b6610e4e565b5b60006118c58482850161188c565b91505092915050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b600061192a602b8361140f565b9150611935826118ce565b604082019050919050565b600060208201905081810360008301526119598161191d565b905091905056fea26469706673582212201a594bc05f469ac3093722fa4fb8aa39fab80db3986995155f21837627b7d96364736f6c634300080d0033"; | ||
static readonly bytecode = "0x608060405234801561001057600080fd5b50611cc0806100206000396000f3fe6080604052600436106100f35760003560e01c80637249609f1161008a578063c2c4c5c111610059578063c2c4c5c1146102f8578063c4d66de81461030f578063cf7a165914610338578063f2fde38b14610361576100f3565b80637249609f146102505780638da5cb5b146102795780639a35c359146102a4578063b49c53a7146102cf576100f3565b80632ead72f6116100c65780632ead72f6146101b757806356d5d475146101f4578063638263661461021d578063715018a614610239576100f3565b80630da27895146100f857806312b1d78014610114578063133b79a91461013d5780632e6a9e4b1461017a575b600080fd5b610112600480360381019061010d91906113a3565b61038a565b005b34801561012057600080fd5b5061013b60048036038101906101369190611470565b61039a565b005b34801561014957600080fd5b50610164600480360381019061015f919061149d565b610422565b60405161017191906114e3565b60405180910390f35b34801561018657600080fd5b506101a1600480360381019061019c919061152a565b610434565b6040516101ae9190611585565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d9919061149d565b610448565b6040516101eb91906114e3565b60405180910390f35b34801561020057600080fd5b5061021b600480360381019061021691906115a0565b610460565b005b610237600480360381019061023291906113a3565b610505565b005b34801561024557600080fd5b5061024e610515565b005b34801561025c57600080fd5b506102776004803603810190610272919061160f565b61059d565b005b34801561028557600080fd5b5061028e6105ac565b60405161029b919061167a565b60405180910390f35b3480156102b057600080fd5b506102b96105d6565b6040516102c691906116f4565b60405180910390f35b3480156102db57600080fd5b506102f660048036038101906102f1919061152a565b6105fc565b005b34801561030457600080fd5b5061030d610686565b005b34801561031b57600080fd5b5061033660048036038101906103319190611470565b610690565b005b34801561034457600080fd5b5061035f600480360381019061035a919061160f565b61077e565b005b34801561036d57600080fd5b5061038860048036038101906103839190611470565b61078c565b005b610395838383610883565b505050565b6103a2610999565b73ffffffffffffffffffffffffffffffffffffffff166103c06105ac565b73ffffffffffffffffffffffffffffffffffffffff1614610416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040d9061176c565b60405180910390fd5b61041f816109a1565b50565b600061042d82610a28565b9050919050565b60006104408383610a96565b905092915050565b60976020528060005260406000206000915090505481565b61046933610ac2565b6104a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049f906117d8565b60405180910390fd5b82826104b48282610a96565b6104f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ea90611844565b60405180910390fd5b6104fe858585610b67565b5050505050565b610510838383610b6c565b505050565b61051d610999565b73ffffffffffffffffffffffffffffffffffffffff1661053b6105ac565b73ffffffffffffffffffffffffffffffffffffffff1614610591576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105889061176c565b60405180910390fd5b61059b6000610ce8565b565b6105a78282610dae565b505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610604610999565b73ffffffffffffffffffffffffffffffffffffffff166106226105ac565b73ffffffffffffffffffffffffffffffffffffffff1614610678576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066f9061176c565b60405180910390fd5b6106828282610dca565b5050565b61068e610e26565b565b600060019054906101000a900460ff166106b85760008054906101000a900460ff16156106c1565b6106c0610e8f565b5b610700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f7906118d6565b60405180910390fd5b60008060019054906101000a900460ff161590508015610750576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61075982610ea0565b801561077a5760008060016101000a81548160ff0219169083151502179055505b5050565b6107888282610eac565b5050565b610794610999565b73ffffffffffffffffffffffffffffffffffffffff166107b26105ac565b73ffffffffffffffffffffffffffffffffffffffff1614610808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ff9061176c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086e90611968565b60405180910390fd5b61088081610ce8565b50565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506109938173ffffffffffffffffffffffffffffffffffffffff1663ce11e6ab6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091c91906119c6565b8273ffffffffffffffffffffffffffffffffffffffff166339bb4ad96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610967573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098b9190611a31565b868686610f29565b50505050565b600033905090565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167ffd9d51f0a51aa62211445229fd1a1ef01bbe01347290d8e15249b8c33a89eea660405160405180910390a250565b6000609760008363ffffffff1663ffffffff1681526020019081526020016000205490506000801b8103610a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8890611844565b60405180910390fd5b919050565b600081609760008563ffffffff1663ffffffff1681526020019081526020016000205414905092915050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663282f51eb836040518263ffffffff1660e01b8152600401610b1f919061167a565b602060405180830381865afa158015610b3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b609190611a8a565b9050919050565b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663ce11e6ab6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0491906119c6565b9050610c81818373ffffffffffffffffffffffffffffffffffffffff166339bb4ad96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c799190611a31565b878787610f29565b8073ffffffffffffffffffffffffffffffffffffffff1663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610cc957600080fd5b505af1158015610cdd573d6000803e3d6000fd5b505050505050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000610dc2610dbb610fb6565b848461104e565b905092915050565b80609760008463ffffffff1663ffffffff16815260200190815260200160002081905550808263ffffffff167f7a69b3d35edf59b97fd4d38d8ecf2b4ecd0a19d236e421d8c543ea234d66597460405160405180910390a35050565b610e2e610fb6565b73ffffffffffffffffffffffffffffffffffffffff1663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610e7557600080fd5b505af1158015610e89573d6000803e3d6000fd5b50505050565b6000610e9a306110e6565b15905090565b610ea981611109565b50565b6000610eb6610fb6565b9050610ec381848461104e565b508073ffffffffffffffffffffffffffffffffffffffff1663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610f0c57600080fd5b505af1158015610f20573d6000803e3d6000fd5b50505050505050565b6000610f3686858561104e565b90506000821115610fae578473ffffffffffffffffffffffffffffffffffffffff166331f1dd3383836040518363ffffffff1660e01b8152600401610f7b9190611ac6565b6000604051808303818588803b158015610f9457600080fd5b505af1158015610fa8573d6000803e3d6000fd5b50505050505b505050505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce11e6ab6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611025573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104991906119c6565b905090565b60008061105a84610a28565b90508473ffffffffffffffffffffffffffffffffffffffff1663fa31de018583866040518463ffffffff1660e01b815260040161109993929190611b78565b6020604051808303816000875af11580156110b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110dc9190611bcb565b9150509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b611112816109a1565b61111a61111d565b50565b600060019054906101000a900460ff1661116c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116390611c6a565b60405180910390fd5b611174611176565b565b600060019054906101000a900460ff166111c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bc90611c6a565b60405180910390fd5b6111d56111d0610999565b610ce8565b565b6000604051905090565b600080fd5b600080fd5b600063ffffffff82169050919050565b611204816111eb565b811461120f57600080fd5b50565b600081359050611221816111fb565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61127a82611231565b810181811067ffffffffffffffff8211171561129957611298611242565b5b80604052505050565b60006112ac6111d7565b90506112b88282611271565b919050565b600067ffffffffffffffff8211156112d8576112d7611242565b5b6112e182611231565b9050602081019050919050565b82818337600083830152505050565b600061131061130b846112bd565b6112a2565b90508281526020810184848401111561132c5761132b61122c565b5b6113378482856112ee565b509392505050565b600082601f83011261135457611353611227565b5b81356113648482602086016112fd565b91505092915050565b6000819050919050565b6113808161136d565b811461138b57600080fd5b50565b60008135905061139d81611377565b92915050565b6000806000606084860312156113bc576113bb6111e1565b5b60006113ca86828701611212565b935050602084013567ffffffffffffffff8111156113eb576113ea6111e6565b5b6113f78682870161133f565b92505060406114088682870161138e565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061143d82611412565b9050919050565b61144d81611432565b811461145857600080fd5b50565b60008135905061146a81611444565b92915050565b600060208284031215611486576114856111e1565b5b60006114948482850161145b565b91505092915050565b6000602082840312156114b3576114b26111e1565b5b60006114c184828501611212565b91505092915050565b6000819050919050565b6114dd816114ca565b82525050565b60006020820190506114f860008301846114d4565b92915050565b611507816114ca565b811461151257600080fd5b50565b600081359050611524816114fe565b92915050565b60008060408385031215611541576115406111e1565b5b600061154f85828601611212565b925050602061156085828601611515565b9150509250929050565b60008115159050919050565b61157f8161156a565b82525050565b600060208201905061159a6000830184611576565b92915050565b6000806000606084860312156115b9576115b86111e1565b5b60006115c786828701611212565b93505060206115d886828701611515565b925050604084013567ffffffffffffffff8111156115f9576115f86111e6565b5b6116058682870161133f565b9150509250925092565b60008060408385031215611626576116256111e1565b5b600061163485828601611212565b925050602083013567ffffffffffffffff811115611655576116546111e6565b5b6116618582860161133f565b9150509250929050565b61167481611432565b82525050565b600060208201905061168f600083018461166b565b92915050565b6000819050919050565b60006116ba6116b56116b084611412565b611695565b611412565b9050919050565b60006116cc8261169f565b9050919050565b60006116de826116c1565b9050919050565b6116ee816116d3565b82525050565b600060208201905061170960008301846116e5565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061175660208361170f565b915061176182611720565b602082019050919050565b6000602082019050818103600083015261178581611749565b9050919050565b7f21696e626f780000000000000000000000000000000000000000000000000000600082015250565b60006117c260068361170f565b91506117cd8261178c565b602082019050919050565b600060208201905081810360008301526117f1816117b5565b9050919050565b7f21726f7574657200000000000000000000000000000000000000000000000000600082015250565b600061182e60078361170f565b9150611839826117f8565b602082019050919050565b6000602082019050818103600083015261185d81611821565b9050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006118c0602e8361170f565b91506118cb82611864565b604082019050919050565b600060208201905081810360008301526118ef816118b3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061195260268361170f565b915061195d826118f6565b604082019050919050565b6000602082019050818103600083015261198181611945565b9050919050565b600061199382611432565b9050919050565b6119a381611988565b81146119ae57600080fd5b50565b6000815190506119c08161199a565b92915050565b6000602082840312156119dc576119db6111e1565b5b60006119ea848285016119b1565b91505092915050565b60006119fe82611432565b9050919050565b611a0e816119f3565b8114611a1957600080fd5b50565b600081519050611a2b81611a05565b92915050565b600060208284031215611a4757611a466111e1565b5b6000611a5584828501611a1c565b91505092915050565b611a678161156a565b8114611a7257600080fd5b50565b600081519050611a8481611a5e565b92915050565b600060208284031215611aa057611a9f6111e1565b5b6000611aae84828501611a75565b91505092915050565b611ac08161136d565b82525050565b6000602082019050611adb6000830184611ab7565b92915050565b611aea816111eb565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b2a578082015181840152602081019050611b0f565b83811115611b39576000848401525b50505050565b6000611b4a82611af0565b611b548185611afb565b9350611b64818560208601611b0c565b611b6d81611231565b840191505092915050565b6000606082019050611b8d6000830186611ae1565b611b9a60208301856114d4565b8181036040830152611bac8184611b3f565b9050949350505050565b600081519050611bc581611377565b92915050565b600060208284031215611be157611be06111e1565b5b6000611bef84828501611bb6565b91505092915050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000611c54602b8361170f565b9150611c5f82611bf8565b604082019050919050565b60006020820190508181036000830152611c8381611c47565b905091905056fea2646970667358221220507fb39efec103c780bf69593ec42eba2d295ee11d160c3431d19130dd50ba5964736f6c634300080d0033"; | ||
static readonly abi: ({ | ||
@@ -17,0 +17,0 @@ anonymous: boolean; |
@@ -72,2 +72,9 @@ "use strict"; | ||
{ | ||
inputs: [], | ||
name: "checkpoint", | ||
outputs: [], | ||
stateMutability: "nonpayable", | ||
type: "function", | ||
}, | ||
{ | ||
inputs: [ | ||
@@ -85,11 +92,46 @@ { | ||
], | ||
name: "dispatchToRemoteRouter", | ||
outputs: [ | ||
name: "dispatch", | ||
outputs: [], | ||
stateMutability: "nonpayable", | ||
type: "function", | ||
}, | ||
{ | ||
inputs: [ | ||
{ | ||
internalType: "uint32", | ||
name: "_destination", | ||
type: "uint32", | ||
}, | ||
{ | ||
internalType: "bytes", | ||
name: "_msg", | ||
type: "bytes", | ||
}, | ||
], | ||
name: "dispatchAndCheckpoint", | ||
outputs: [], | ||
stateMutability: "nonpayable", | ||
type: "function", | ||
}, | ||
{ | ||
inputs: [ | ||
{ | ||
internalType: "uint32", | ||
name: "_destination", | ||
type: "uint32", | ||
}, | ||
{ | ||
internalType: "bytes", | ||
name: "_msg", | ||
type: "bytes", | ||
}, | ||
{ | ||
internalType: "uint256", | ||
name: "", | ||
name: "_gasPayment", | ||
type: "uint256", | ||
}, | ||
], | ||
stateMutability: "nonpayable", | ||
name: "dispatchWithGas", | ||
outputs: [], | ||
stateMutability: "payable", | ||
type: "function", | ||
@@ -115,5 +157,5 @@ }, | ||
], | ||
name: "dispatchToRemoteRouterWithGas", | ||
name: "dispatchWithGasAndCheckpoint", | ||
outputs: [], | ||
stateMutability: "nonpayable", | ||
stateMutability: "payable", | ||
type: "function", | ||
@@ -284,3 +326,3 @@ }, | ||
]; | ||
const _bytecode = "0x608060405234801561001057600080fd5b50611996806100206000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063715018a61161008c5780639a35c359116100665780639a35c35914610210578063b49c53a71461022e578063c4d66de81461024a578063f2fde38b14610266576100cf565b8063715018a6146101cc5780638d8dff24146101d65780638da5cb5b146101f2576100cf565b806312b1d780146100d4578063133b79a9146100f057806319d2df84146101205780632e6a9e4b146101505780632ead72f61461018057806356d5d475146101b0575b600080fd5b6100ee60048036038101906100e99190610eb6565b610282565b005b61010a60048036038101906101059190610f1f565b61030a565b6040516101179190610f65565b60405180910390f35b61013a60048036038101906101359190610fe5565b61031c565b604051610147919061105e565b60405180910390f35b61016a600480360381019061016591906110a5565b610375565b6040516101779190611100565b60405180910390f35b61019a60048036038101906101959190610f1f565b610389565b6040516101a79190610f65565b60405180910390f35b6101ca60048036038101906101c5919061125c565b6103a1565b005b6101d4610446565b005b6101f060048036038101906101eb91906112f7565b6104ce565b005b6101fa610523565b604051610207919061137a565b60405180910390f35b61021861054d565b60405161022591906113f4565b60405180910390f35b610248600480360381019061024391906110a5565b610573565b005b610264600480360381019061025f9190610eb6565b6105fd565b005b610280600480360381019061027b9190610eb6565b6106eb565b005b61028a6107e2565b73ffffffffffffffffffffffffffffffffffffffff166102a8610523565b73ffffffffffffffffffffffffffffffffffffffff16146102fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f59061146c565b60405180910390fd5b610307816107ea565b50565b600061031582610871565b9050919050565b600061036c8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506108df565b90509392505050565b6000610381838361097d565b905092915050565b60976020528060005260406000206000915090505481565b6103aa336109a9565b6103e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e0906114d8565b60405180910390fd5b82826103f5828261097d565b610434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042b90611544565b60405180910390fd5b61043f858585610a4e565b5050505050565b61044e6107e2565b73ffffffffffffffffffffffffffffffffffffffff1661046c610523565b73ffffffffffffffffffffffffffffffffffffffff16146104c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b99061146c565b60405180910390fd5b6104cc6000610a53565b565b61051d8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505083610b19565b50505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61057b6107e2565b73ffffffffffffffffffffffffffffffffffffffff16610599610523565b73ffffffffffffffffffffffffffffffffffffffff16146105ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e69061146c565b60405180910390fd5b6105f98282610baa565b5050565b600060019054906101000a900460ff166106255760008054906101000a900460ff161561062e565b61062d610c06565b5b61066d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610664906115d6565b60405180910390fd5b60008060019054906101000a900460ff1615905080156106bd576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6106c682610c17565b80156106e75760008060016101000a81548160ff0219169083151502179055505b5050565b6106f36107e2565b73ffffffffffffffffffffffffffffffffffffffff16610711610523565b73ffffffffffffffffffffffffffffffffffffffff1614610767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075e9061146c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cd90611668565b60405180910390fd5b6107df81610a53565b50565b600033905090565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167ffd9d51f0a51aa62211445229fd1a1ef01bbe01347290d8e15249b8c33a89eea660405160405180910390a250565b6000609760008363ffffffff1663ffffffff1681526020019081526020016000205490506000801b81036108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d190611544565b60405180910390fd5b919050565b6000806108eb84610871565b90506108f5610c23565b73ffffffffffffffffffffffffffffffffffffffff1663fa31de018583866040518463ffffffff1660e01b81526004016109319392919061171f565b6020604051808303816000875af1158015610950573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109749190611772565b91505092915050565b600081609760008563ffffffff1663ffffffff1681526020019081526020016000205414905092915050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663282f51eb836040518263ffffffff1660e01b8152600401610a06919061137a565b602060405180830381865afa158015610a23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4791906117cb565b9050919050565b505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000610b2584846108df565b90506000821115610ba457610b38610cbb565b73ffffffffffffffffffffffffffffffffffffffff166331f1dd3383836040518363ffffffff1660e01b8152600401610b71919061105e565b6000604051808303818588803b158015610b8a57600080fd5b505af1158015610b9e573d6000803e3d6000fd5b50505050505b50505050565b80609760008463ffffffff1663ffffffff16815260200190815260200160002081905550808263ffffffff167f7a69b3d35edf59b97fd4d38d8ecf2b4ecd0a19d236e421d8c543ea234d66597460405160405180910390a35050565b6000610c1130610d53565b15905090565b610c2081610d76565b50565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce11e6ab6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb69190611836565b905090565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166339bb4ad96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4e91906118a1565b905090565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b610d7f816107ea565b610d87610d8a565b50565b600060019054906101000a900460ff16610dd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd090611940565b60405180910390fd5b610de1610de3565b565b600060019054906101000a900460ff16610e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2990611940565b60405180910390fd5b610e42610e3d6107e2565b610a53565b565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e8382610e58565b9050919050565b610e9381610e78565b8114610e9e57600080fd5b50565b600081359050610eb081610e8a565b92915050565b600060208284031215610ecc57610ecb610e4e565b5b6000610eda84828501610ea1565b91505092915050565b600063ffffffff82169050919050565b610efc81610ee3565b8114610f0757600080fd5b50565b600081359050610f1981610ef3565b92915050565b600060208284031215610f3557610f34610e4e565b5b6000610f4384828501610f0a565b91505092915050565b6000819050919050565b610f5f81610f4c565b82525050565b6000602082019050610f7a6000830184610f56565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610fa557610fa4610f80565b5b8235905067ffffffffffffffff811115610fc257610fc1610f85565b5b602083019150836001820283011115610fde57610fdd610f8a565b5b9250929050565b600080600060408486031215610ffe57610ffd610e4e565b5b600061100c86828701610f0a565b935050602084013567ffffffffffffffff81111561102d5761102c610e53565b5b61103986828701610f8f565b92509250509250925092565b6000819050919050565b61105881611045565b82525050565b6000602082019050611073600083018461104f565b92915050565b61108281610f4c565b811461108d57600080fd5b50565b60008135905061109f81611079565b92915050565b600080604083850312156110bc576110bb610e4e565b5b60006110ca85828601610f0a565b92505060206110db85828601611090565b9150509250929050565b60008115159050919050565b6110fa816110e5565b82525050565b600060208201905061111560008301846110f1565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61116982611120565b810181811067ffffffffffffffff8211171561118857611187611131565b5b80604052505050565b600061119b610e44565b90506111a78282611160565b919050565b600067ffffffffffffffff8211156111c7576111c6611131565b5b6111d082611120565b9050602081019050919050565b82818337600083830152505050565b60006111ff6111fa846111ac565b611191565b90508281526020810184848401111561121b5761121a61111b565b5b6112268482856111dd565b509392505050565b600082601f83011261124357611242610f80565b5b81356112538482602086016111ec565b91505092915050565b60008060006060848603121561127557611274610e4e565b5b600061128386828701610f0a565b935050602061129486828701611090565b925050604084013567ffffffffffffffff8111156112b5576112b4610e53565b5b6112c18682870161122e565b9150509250925092565b6112d481611045565b81146112df57600080fd5b50565b6000813590506112f1816112cb565b92915050565b6000806000806060858703121561131157611310610e4e565b5b600061131f87828801610f0a565b945050602085013567ffffffffffffffff8111156113405761133f610e53565b5b61134c87828801610f8f565b9350935050604061135f878288016112e2565b91505092959194509250565b61137481610e78565b82525050565b600060208201905061138f600083018461136b565b92915050565b6000819050919050565b60006113ba6113b56113b084610e58565b611395565b610e58565b9050919050565b60006113cc8261139f565b9050919050565b60006113de826113c1565b9050919050565b6113ee816113d3565b82525050565b600060208201905061140960008301846113e5565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061145660208361140f565b915061146182611420565b602082019050919050565b6000602082019050818103600083015261148581611449565b9050919050565b7f21696e626f780000000000000000000000000000000000000000000000000000600082015250565b60006114c260068361140f565b91506114cd8261148c565b602082019050919050565b600060208201905081810360008301526114f1816114b5565b9050919050565b7f21726f7574657200000000000000000000000000000000000000000000000000600082015250565b600061152e60078361140f565b9150611539826114f8565b602082019050919050565b6000602082019050818103600083015261155d81611521565b9050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006115c0602e8361140f565b91506115cb82611564565b604082019050919050565b600060208201905081810360008301526115ef816115b3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061165260268361140f565b915061165d826115f6565b604082019050919050565b6000602082019050818103600083015261168181611645565b9050919050565b61169181610ee3565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156116d15780820151818401526020810190506116b6565b838111156116e0576000848401525b50505050565b60006116f182611697565b6116fb81856116a2565b935061170b8185602086016116b3565b61171481611120565b840191505092915050565b60006060820190506117346000830186611688565b6117416020830185610f56565b818103604083015261175381846116e6565b9050949350505050565b60008151905061176c816112cb565b92915050565b60006020828403121561178857611787610e4e565b5b60006117968482850161175d565b91505092915050565b6117a8816110e5565b81146117b357600080fd5b50565b6000815190506117c58161179f565b92915050565b6000602082840312156117e1576117e0610e4e565b5b60006117ef848285016117b6565b91505092915050565b600061180382610e78565b9050919050565b611813816117f8565b811461181e57600080fd5b50565b6000815190506118308161180a565b92915050565b60006020828403121561184c5761184b610e4e565b5b600061185a84828501611821565b91505092915050565b600061186e82610e78565b9050919050565b61187e81611863565b811461188957600080fd5b50565b60008151905061189b81611875565b92915050565b6000602082840312156118b7576118b6610e4e565b5b60006118c58482850161188c565b91505092915050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b600061192a602b8361140f565b9150611935826118ce565b604082019050919050565b600060208201905081810360008301526119598161191d565b905091905056fea26469706673582212201a594bc05f469ac3093722fa4fb8aa39fab80db3986995155f21837627b7d96364736f6c634300080d0033"; | ||
const _bytecode = "0x608060405234801561001057600080fd5b50611cc0806100206000396000f3fe6080604052600436106100f35760003560e01c80637249609f1161008a578063c2c4c5c111610059578063c2c4c5c1146102f8578063c4d66de81461030f578063cf7a165914610338578063f2fde38b14610361576100f3565b80637249609f146102505780638da5cb5b146102795780639a35c359146102a4578063b49c53a7146102cf576100f3565b80632ead72f6116100c65780632ead72f6146101b757806356d5d475146101f4578063638263661461021d578063715018a614610239576100f3565b80630da27895146100f857806312b1d78014610114578063133b79a91461013d5780632e6a9e4b1461017a575b600080fd5b610112600480360381019061010d91906113a3565b61038a565b005b34801561012057600080fd5b5061013b60048036038101906101369190611470565b61039a565b005b34801561014957600080fd5b50610164600480360381019061015f919061149d565b610422565b60405161017191906114e3565b60405180910390f35b34801561018657600080fd5b506101a1600480360381019061019c919061152a565b610434565b6040516101ae9190611585565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d9919061149d565b610448565b6040516101eb91906114e3565b60405180910390f35b34801561020057600080fd5b5061021b600480360381019061021691906115a0565b610460565b005b610237600480360381019061023291906113a3565b610505565b005b34801561024557600080fd5b5061024e610515565b005b34801561025c57600080fd5b506102776004803603810190610272919061160f565b61059d565b005b34801561028557600080fd5b5061028e6105ac565b60405161029b919061167a565b60405180910390f35b3480156102b057600080fd5b506102b96105d6565b6040516102c691906116f4565b60405180910390f35b3480156102db57600080fd5b506102f660048036038101906102f1919061152a565b6105fc565b005b34801561030457600080fd5b5061030d610686565b005b34801561031b57600080fd5b5061033660048036038101906103319190611470565b610690565b005b34801561034457600080fd5b5061035f600480360381019061035a919061160f565b61077e565b005b34801561036d57600080fd5b5061038860048036038101906103839190611470565b61078c565b005b610395838383610883565b505050565b6103a2610999565b73ffffffffffffffffffffffffffffffffffffffff166103c06105ac565b73ffffffffffffffffffffffffffffffffffffffff1614610416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040d9061176c565b60405180910390fd5b61041f816109a1565b50565b600061042d82610a28565b9050919050565b60006104408383610a96565b905092915050565b60976020528060005260406000206000915090505481565b61046933610ac2565b6104a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049f906117d8565b60405180910390fd5b82826104b48282610a96565b6104f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ea90611844565b60405180910390fd5b6104fe858585610b67565b5050505050565b610510838383610b6c565b505050565b61051d610999565b73ffffffffffffffffffffffffffffffffffffffff1661053b6105ac565b73ffffffffffffffffffffffffffffffffffffffff1614610591576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105889061176c565b60405180910390fd5b61059b6000610ce8565b565b6105a78282610dae565b505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610604610999565b73ffffffffffffffffffffffffffffffffffffffff166106226105ac565b73ffffffffffffffffffffffffffffffffffffffff1614610678576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066f9061176c565b60405180910390fd5b6106828282610dca565b5050565b61068e610e26565b565b600060019054906101000a900460ff166106b85760008054906101000a900460ff16156106c1565b6106c0610e8f565b5b610700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f7906118d6565b60405180910390fd5b60008060019054906101000a900460ff161590508015610750576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61075982610ea0565b801561077a5760008060016101000a81548160ff0219169083151502179055505b5050565b6107888282610eac565b5050565b610794610999565b73ffffffffffffffffffffffffffffffffffffffff166107b26105ac565b73ffffffffffffffffffffffffffffffffffffffff1614610808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ff9061176c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086e90611968565b60405180910390fd5b61088081610ce8565b50565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506109938173ffffffffffffffffffffffffffffffffffffffff1663ce11e6ab6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091c91906119c6565b8273ffffffffffffffffffffffffffffffffffffffff166339bb4ad96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610967573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098b9190611a31565b868686610f29565b50505050565b600033905090565b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167ffd9d51f0a51aa62211445229fd1a1ef01bbe01347290d8e15249b8c33a89eea660405160405180910390a250565b6000609760008363ffffffff1663ffffffff1681526020019081526020016000205490506000801b8103610a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8890611844565b60405180910390fd5b919050565b600081609760008563ffffffff1663ffffffff1681526020019081526020016000205414905092915050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663282f51eb836040518263ffffffff1660e01b8152600401610b1f919061167a565b602060405180830381865afa158015610b3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b609190611a8a565b9050919050565b505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663ce11e6ab6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0491906119c6565b9050610c81818373ffffffffffffffffffffffffffffffffffffffff166339bb4ad96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c799190611a31565b878787610f29565b8073ffffffffffffffffffffffffffffffffffffffff1663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610cc957600080fd5b505af1158015610cdd573d6000803e3d6000fd5b505050505050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000610dc2610dbb610fb6565b848461104e565b905092915050565b80609760008463ffffffff1663ffffffff16815260200190815260200160002081905550808263ffffffff167f7a69b3d35edf59b97fd4d38d8ecf2b4ecd0a19d236e421d8c543ea234d66597460405160405180910390a35050565b610e2e610fb6565b73ffffffffffffffffffffffffffffffffffffffff1663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610e7557600080fd5b505af1158015610e89573d6000803e3d6000fd5b50505050565b6000610e9a306110e6565b15905090565b610ea981611109565b50565b6000610eb6610fb6565b9050610ec381848461104e565b508073ffffffffffffffffffffffffffffffffffffffff1663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610f0c57600080fd5b505af1158015610f20573d6000803e3d6000fd5b50505050505050565b6000610f3686858561104e565b90506000821115610fae578473ffffffffffffffffffffffffffffffffffffffff166331f1dd3383836040518363ffffffff1660e01b8152600401610f7b9190611ac6565b6000604051808303818588803b158015610f9457600080fd5b505af1158015610fa8573d6000803e3d6000fd5b50505050505b505050505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce11e6ab6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611025573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104991906119c6565b905090565b60008061105a84610a28565b90508473ffffffffffffffffffffffffffffffffffffffff1663fa31de018583866040518463ffffffff1660e01b815260040161109993929190611b78565b6020604051808303816000875af11580156110b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110dc9190611bcb565b9150509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b611112816109a1565b61111a61111d565b50565b600060019054906101000a900460ff1661116c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116390611c6a565b60405180910390fd5b611174611176565b565b600060019054906101000a900460ff166111c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bc90611c6a565b60405180910390fd5b6111d56111d0610999565b610ce8565b565b6000604051905090565b600080fd5b600080fd5b600063ffffffff82169050919050565b611204816111eb565b811461120f57600080fd5b50565b600081359050611221816111fb565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61127a82611231565b810181811067ffffffffffffffff8211171561129957611298611242565b5b80604052505050565b60006112ac6111d7565b90506112b88282611271565b919050565b600067ffffffffffffffff8211156112d8576112d7611242565b5b6112e182611231565b9050602081019050919050565b82818337600083830152505050565b600061131061130b846112bd565b6112a2565b90508281526020810184848401111561132c5761132b61122c565b5b6113378482856112ee565b509392505050565b600082601f83011261135457611353611227565b5b81356113648482602086016112fd565b91505092915050565b6000819050919050565b6113808161136d565b811461138b57600080fd5b50565b60008135905061139d81611377565b92915050565b6000806000606084860312156113bc576113bb6111e1565b5b60006113ca86828701611212565b935050602084013567ffffffffffffffff8111156113eb576113ea6111e6565b5b6113f78682870161133f565b92505060406114088682870161138e565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061143d82611412565b9050919050565b61144d81611432565b811461145857600080fd5b50565b60008135905061146a81611444565b92915050565b600060208284031215611486576114856111e1565b5b60006114948482850161145b565b91505092915050565b6000602082840312156114b3576114b26111e1565b5b60006114c184828501611212565b91505092915050565b6000819050919050565b6114dd816114ca565b82525050565b60006020820190506114f860008301846114d4565b92915050565b611507816114ca565b811461151257600080fd5b50565b600081359050611524816114fe565b92915050565b60008060408385031215611541576115406111e1565b5b600061154f85828601611212565b925050602061156085828601611515565b9150509250929050565b60008115159050919050565b61157f8161156a565b82525050565b600060208201905061159a6000830184611576565b92915050565b6000806000606084860312156115b9576115b86111e1565b5b60006115c786828701611212565b93505060206115d886828701611515565b925050604084013567ffffffffffffffff8111156115f9576115f86111e6565b5b6116058682870161133f565b9150509250925092565b60008060408385031215611626576116256111e1565b5b600061163485828601611212565b925050602083013567ffffffffffffffff811115611655576116546111e6565b5b6116618582860161133f565b9150509250929050565b61167481611432565b82525050565b600060208201905061168f600083018461166b565b92915050565b6000819050919050565b60006116ba6116b56116b084611412565b611695565b611412565b9050919050565b60006116cc8261169f565b9050919050565b60006116de826116c1565b9050919050565b6116ee816116d3565b82525050565b600060208201905061170960008301846116e5565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061175660208361170f565b915061176182611720565b602082019050919050565b6000602082019050818103600083015261178581611749565b9050919050565b7f21696e626f780000000000000000000000000000000000000000000000000000600082015250565b60006117c260068361170f565b91506117cd8261178c565b602082019050919050565b600060208201905081810360008301526117f1816117b5565b9050919050565b7f21726f7574657200000000000000000000000000000000000000000000000000600082015250565b600061182e60078361170f565b9150611839826117f8565b602082019050919050565b6000602082019050818103600083015261185d81611821565b9050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006118c0602e8361170f565b91506118cb82611864565b604082019050919050565b600060208201905081810360008301526118ef816118b3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061195260268361170f565b915061195d826118f6565b604082019050919050565b6000602082019050818103600083015261198181611945565b9050919050565b600061199382611432565b9050919050565b6119a381611988565b81146119ae57600080fd5b50565b6000815190506119c08161199a565b92915050565b6000602082840312156119dc576119db6111e1565b5b60006119ea848285016119b1565b91505092915050565b60006119fe82611432565b9050919050565b611a0e816119f3565b8114611a1957600080fd5b50565b600081519050611a2b81611a05565b92915050565b600060208284031215611a4757611a466111e1565b5b6000611a5584828501611a1c565b91505092915050565b611a678161156a565b8114611a7257600080fd5b50565b600081519050611a8481611a5e565b92915050565b600060208284031215611aa057611a9f6111e1565b5b6000611aae84828501611a75565b91505092915050565b611ac08161136d565b82525050565b6000602082019050611adb6000830184611ab7565b92915050565b611aea816111eb565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b2a578082015181840152602081019050611b0f565b83811115611b39576000848401525b50505050565b6000611b4a82611af0565b611b548185611afb565b9350611b64818560208601611b0c565b611b6d81611231565b840191505092915050565b6000606082019050611b8d6000830186611ae1565b611b9a60208301856114d4565b8181036040830152611bac8184611b3f565b9050949350505050565b600081519050611bc581611377565b92915050565b600060208284031215611be157611be06111e1565b5b6000611bef84828501611bb6565b91505092915050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000611c54602b8361170f565b9150611c5f82611bf8565b604082019050919050565b60006020820190508181036000830152611c8381611c47565b905091905056fea2646970667358221220507fb39efec103c780bf69593ec42eba2d295ee11d160c3431d19130dd50ba5964736f6c634300080d0033"; | ||
class TestRouter__factory extends ethers_1.ContractFactory { | ||
@@ -287,0 +329,0 @@ constructor(signer) { |
@@ -20,2 +20,3 @@ /* Autogenerated file. Do not edit manually. */ | ||
Overrides, | ||
PayableOverrides, | ||
CallOverrides, | ||
@@ -27,4 +28,7 @@ } from "ethers"; | ||
"abacusConnectionManager()": FunctionFragment; | ||
"dispatchToRemoteRouter(uint32,bytes)": FunctionFragment; | ||
"dispatchToRemoteRouterWithGas(uint32,bytes,uint256)": FunctionFragment; | ||
"checkpoint()": FunctionFragment; | ||
"dispatch(uint32,bytes)": FunctionFragment; | ||
"dispatchAndCheckpoint(uint32,bytes)": FunctionFragment; | ||
"dispatchWithGas(uint32,bytes,uint256)": FunctionFragment; | ||
"dispatchWithGasAndCheckpoint(uint32,bytes,uint256)": FunctionFragment; | ||
"enrollRemoteRouter(uint32,bytes32)": FunctionFragment; | ||
@@ -47,10 +51,22 @@ "handle(uint32,bytes32,bytes)": FunctionFragment; | ||
encodeFunctionData( | ||
functionFragment: "dispatchToRemoteRouter", | ||
functionFragment: "checkpoint", | ||
values?: undefined | ||
): string; | ||
encodeFunctionData( | ||
functionFragment: "dispatch", | ||
values: [BigNumberish, BytesLike] | ||
): string; | ||
encodeFunctionData( | ||
functionFragment: "dispatchToRemoteRouterWithGas", | ||
functionFragment: "dispatchAndCheckpoint", | ||
values: [BigNumberish, BytesLike] | ||
): string; | ||
encodeFunctionData( | ||
functionFragment: "dispatchWithGas", | ||
values: [BigNumberish, BytesLike, BigNumberish] | ||
): string; | ||
encodeFunctionData( | ||
functionFragment: "dispatchWithGasAndCheckpoint", | ||
values: [BigNumberish, BytesLike, BigNumberish] | ||
): string; | ||
encodeFunctionData( | ||
functionFragment: "enrollRemoteRouter", | ||
@@ -94,11 +110,17 @@ values: [BigNumberish, BytesLike] | ||
): Result; | ||
decodeFunctionResult(functionFragment: "checkpoint", data: BytesLike): Result; | ||
decodeFunctionResult(functionFragment: "dispatch", data: BytesLike): Result; | ||
decodeFunctionResult( | ||
functionFragment: "dispatchToRemoteRouter", | ||
functionFragment: "dispatchAndCheckpoint", | ||
data: BytesLike | ||
): Result; | ||
decodeFunctionResult( | ||
functionFragment: "dispatchToRemoteRouterWithGas", | ||
functionFragment: "dispatchWithGas", | ||
data: BytesLike | ||
): Result; | ||
decodeFunctionResult( | ||
functionFragment: "dispatchWithGasAndCheckpoint", | ||
data: BytesLike | ||
): Result; | ||
decodeFunctionResult( | ||
functionFragment: "enrollRemoteRouter", | ||
@@ -189,3 +211,7 @@ data: BytesLike | ||
dispatchToRemoteRouter( | ||
checkpoint( | ||
overrides?: Overrides & { from?: string | Promise<string> } | ||
): Promise<ContractTransaction>; | ||
dispatch( | ||
_destination: BigNumberish, | ||
@@ -196,9 +222,22 @@ _msg: BytesLike, | ||
dispatchToRemoteRouterWithGas( | ||
dispatchAndCheckpoint( | ||
_destination: BigNumberish, | ||
_msg: BytesLike, | ||
_gasPayment: BigNumberish, | ||
overrides?: Overrides & { from?: string | Promise<string> } | ||
): Promise<ContractTransaction>; | ||
dispatchWithGas( | ||
_destination: BigNumberish, | ||
_msg: BytesLike, | ||
_gasPayment: BigNumberish, | ||
overrides?: PayableOverrides & { from?: string | Promise<string> } | ||
): Promise<ContractTransaction>; | ||
dispatchWithGasAndCheckpoint( | ||
_destination: BigNumberish, | ||
_msg: BytesLike, | ||
_gasPayment: BigNumberish, | ||
overrides?: PayableOverrides & { from?: string | Promise<string> } | ||
): Promise<ContractTransaction>; | ||
enrollRemoteRouter( | ||
@@ -254,3 +293,7 @@ _domain: BigNumberish, | ||
dispatchToRemoteRouter( | ||
checkpoint( | ||
overrides?: Overrides & { from?: string | Promise<string> } | ||
): Promise<ContractTransaction>; | ||
dispatch( | ||
_destination: BigNumberish, | ||
@@ -261,9 +304,22 @@ _msg: BytesLike, | ||
dispatchToRemoteRouterWithGas( | ||
dispatchAndCheckpoint( | ||
_destination: BigNumberish, | ||
_msg: BytesLike, | ||
_gasPayment: BigNumberish, | ||
overrides?: Overrides & { from?: string | Promise<string> } | ||
): Promise<ContractTransaction>; | ||
dispatchWithGas( | ||
_destination: BigNumberish, | ||
_msg: BytesLike, | ||
_gasPayment: BigNumberish, | ||
overrides?: PayableOverrides & { from?: string | Promise<string> } | ||
): Promise<ContractTransaction>; | ||
dispatchWithGasAndCheckpoint( | ||
_destination: BigNumberish, | ||
_msg: BytesLike, | ||
_gasPayment: BigNumberish, | ||
overrides?: PayableOverrides & { from?: string | Promise<string> } | ||
): Promise<ContractTransaction>; | ||
enrollRemoteRouter( | ||
@@ -319,11 +375,19 @@ _domain: BigNumberish, | ||
dispatchToRemoteRouter( | ||
checkpoint(overrides?: CallOverrides): Promise<void>; | ||
dispatch( | ||
_destination: BigNumberish, | ||
_msg: BytesLike, | ||
overrides?: CallOverrides | ||
): Promise<BigNumber>; | ||
): Promise<void>; | ||
dispatchToRemoteRouterWithGas( | ||
dispatchAndCheckpoint( | ||
_destination: BigNumberish, | ||
_msg: BytesLike, | ||
overrides?: CallOverrides | ||
): Promise<void>; | ||
dispatchWithGas( | ||
_destination: BigNumberish, | ||
_msg: BytesLike, | ||
_gasPayment: BigNumberish, | ||
@@ -333,2 +397,9 @@ overrides?: CallOverrides | ||
dispatchWithGasAndCheckpoint( | ||
_destination: BigNumberish, | ||
_msg: BytesLike, | ||
_gasPayment: BigNumberish, | ||
overrides?: CallOverrides | ||
): Promise<void>; | ||
enrollRemoteRouter( | ||
@@ -402,3 +473,7 @@ _domain: BigNumberish, | ||
dispatchToRemoteRouter( | ||
checkpoint( | ||
overrides?: Overrides & { from?: string | Promise<string> } | ||
): Promise<BigNumber>; | ||
dispatch( | ||
_destination: BigNumberish, | ||
@@ -409,9 +484,22 @@ _msg: BytesLike, | ||
dispatchToRemoteRouterWithGas( | ||
dispatchAndCheckpoint( | ||
_destination: BigNumberish, | ||
_msg: BytesLike, | ||
_gasPayment: BigNumberish, | ||
overrides?: Overrides & { from?: string | Promise<string> } | ||
): Promise<BigNumber>; | ||
dispatchWithGas( | ||
_destination: BigNumberish, | ||
_msg: BytesLike, | ||
_gasPayment: BigNumberish, | ||
overrides?: PayableOverrides & { from?: string | Promise<string> } | ||
): Promise<BigNumber>; | ||
dispatchWithGasAndCheckpoint( | ||
_destination: BigNumberish, | ||
_msg: BytesLike, | ||
_gasPayment: BigNumberish, | ||
overrides?: PayableOverrides & { from?: string | Promise<string> } | ||
): Promise<BigNumber>; | ||
enrollRemoteRouter( | ||
@@ -470,3 +558,7 @@ _domain: BigNumberish, | ||
dispatchToRemoteRouter( | ||
checkpoint( | ||
overrides?: Overrides & { from?: string | Promise<string> } | ||
): Promise<PopulatedTransaction>; | ||
dispatch( | ||
_destination: BigNumberish, | ||
@@ -477,9 +569,22 @@ _msg: BytesLike, | ||
dispatchToRemoteRouterWithGas( | ||
dispatchAndCheckpoint( | ||
_destination: BigNumberish, | ||
_msg: BytesLike, | ||
_gasPayment: BigNumberish, | ||
overrides?: Overrides & { from?: string | Promise<string> } | ||
): Promise<PopulatedTransaction>; | ||
dispatchWithGas( | ||
_destination: BigNumberish, | ||
_msg: BytesLike, | ||
_gasPayment: BigNumberish, | ||
overrides?: PayableOverrides & { from?: string | Promise<string> } | ||
): Promise<PopulatedTransaction>; | ||
dispatchWithGasAndCheckpoint( | ||
_destination: BigNumberish, | ||
_msg: BytesLike, | ||
_gasPayment: BigNumberish, | ||
overrides?: PayableOverrides & { from?: string | Promise<string> } | ||
): Promise<PopulatedTransaction>; | ||
enrollRemoteRouter( | ||
@@ -486,0 +591,0 @@ _domain: BigNumberish, |
@@ -24,3 +24,3 @@ { | ||
}, | ||
"version": "0.1.0", | ||
"version": "0.1.1-alpha1", | ||
"main": "dist/index.js", | ||
@@ -40,6 +40,6 @@ "types": "dist/index.d.ts", | ||
"dependencies": { | ||
"@abacus-network/core": "^0.1.0", | ||
"@abacus-network/utils": "^0.1.0", | ||
"@abacus-network/core": "^0.1.1-alpha1", | ||
"@abacus-network/utils": "^0.1.1-alpha1", | ||
"@openzeppelin/contracts-upgradeable": "^4.5.0" | ||
} | ||
} |
import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers'; | ||
import { expect } from 'chai'; | ||
import { ContractTransaction } from 'ethers'; | ||
import { ethers } from 'hardhat'; | ||
@@ -8,2 +9,5 @@ | ||
AbacusConnectionManager__factory, | ||
InterchainGasPaymaster, | ||
InterchainGasPaymaster__factory, | ||
Outbox, | ||
Outbox__factory, | ||
@@ -18,2 +22,3 @@ } from '@abacus-network/core'; | ||
const destination = 2; | ||
const destinationWithoutRouter = 3; | ||
const message = '0xdeadbeef'; | ||
@@ -23,2 +28,3 @@ | ||
let router: TestRouter, | ||
outbox: Outbox, | ||
connectionManager: AbacusConnectionManager, | ||
@@ -38,2 +44,12 @@ signer: SignerWithAddress, | ||
const outboxFactory = new Outbox__factory(signer); | ||
outbox = await outboxFactory.deploy(origin); | ||
// dispatch dummy message | ||
await outbox.dispatch( | ||
destination, | ||
utils.addressToBytes32(outbox.address), | ||
'0x', | ||
); | ||
await connectionManager.setOutbox(outbox.address); | ||
const routerFactory = new TestRouter__factory(signer); | ||
@@ -91,23 +107,132 @@ router = await routerFactory.deploy(); | ||
it('dispatches message to enrolled remote router', async () => { | ||
const outboxFactory = new Outbox__factory(signer); | ||
const outbox = await outboxFactory.deploy(origin); | ||
await connectionManager.setOutbox(outbox.address); | ||
describe('dispatch functions', () => { | ||
let interchainGasPaymaster: InterchainGasPaymaster; | ||
beforeEach(async () => { | ||
const interchainGasPaymasterFactory = new InterchainGasPaymaster__factory( | ||
signer, | ||
); | ||
interchainGasPaymaster = await interchainGasPaymasterFactory.deploy(); | ||
await connectionManager.setInterchainGasPaymaster( | ||
interchainGasPaymaster.address, | ||
); | ||
const remote = nonOwner.address; | ||
await router.enrollRemoteRouter( | ||
destination, | ||
utils.addressToBytes32(remote), | ||
); | ||
await expect(router.dispatchToRemoteRouter(destination, message)).to.emit( | ||
outbox, | ||
'Dispatch', | ||
); | ||
// Enroll a remote router on the destination domain. | ||
// The address is arbitrary because no messages will actually be processed. | ||
await router.enrollRemoteRouter( | ||
destination, | ||
utils.addressToBytes32(nonOwner.address), | ||
); | ||
}); | ||
// Helper for testing different variations of dispatch functions | ||
const runDispatchFunctionTests = async ( | ||
dispatchFunction: ( | ||
destinationDomain: number, | ||
interchainGasPayment?: number, | ||
) => Promise<ContractTransaction>, | ||
expectCheckpoint: boolean, | ||
expectGasPayment: boolean, | ||
) => { | ||
// Allows a Chai Assertion to be programmatically negated | ||
const expectAssertion = ( | ||
assertion: Chai.Assertion, | ||
expected: boolean, | ||
) => { | ||
return expected ? assertion : assertion.not; | ||
}; | ||
it('dispatches a message', async () => { | ||
await expect(dispatchFunction(destination)).to.emit(outbox, 'Dispatch'); | ||
}); | ||
it(`${ | ||
expectGasPayment ? 'pays' : 'does not pay' | ||
} interchain gas`, async () => { | ||
const testInterchainGasPayment = 1234; | ||
const leafIndex = await outbox.count(); | ||
const assertion = expectAssertion( | ||
expect(dispatchFunction(destination, testInterchainGasPayment)).to, | ||
expectGasPayment, | ||
); | ||
await assertion | ||
.emit(interchainGasPaymaster, 'GasPayment') | ||
.withArgs(leafIndex, testInterchainGasPayment); | ||
}); | ||
it(`${ | ||
expectCheckpoint ? 'creates' : 'does not create' | ||
} a checkpoint`, async () => { | ||
const assertion = expectAssertion( | ||
expect(dispatchFunction(destination)).to, | ||
expectCheckpoint, | ||
); | ||
await assertion.emit(outbox, 'Checkpoint'); | ||
}); | ||
it('reverts when dispatching a message to an unenrolled remote router', async () => { | ||
await expect( | ||
dispatchFunction(destinationWithoutRouter), | ||
).to.be.revertedWith('!router'); | ||
}); | ||
}; | ||
describe('#dispatch', () => { | ||
runDispatchFunctionTests( | ||
(destinationDomain) => router.dispatch(destinationDomain, '0x'), | ||
false, | ||
false, | ||
); | ||
}); | ||
describe('#dispatchAndCheckpoint', () => { | ||
runDispatchFunctionTests( | ||
(destinationDomain) => | ||
router.dispatchAndCheckpoint(destinationDomain, '0x'), | ||
true, | ||
false, | ||
); | ||
}); | ||
describe('#dispatchWithGas', () => { | ||
runDispatchFunctionTests( | ||
(destinationDomain, interchainGasPayment = 0) => | ||
router.dispatchWithGas( | ||
destinationDomain, | ||
'0x', | ||
interchainGasPayment, | ||
{ | ||
value: interchainGasPayment, | ||
}, | ||
), | ||
false, | ||
true, | ||
); | ||
}); | ||
describe('#dispatchWithGasAndCheckpoint', () => { | ||
runDispatchFunctionTests( | ||
(destinationDomain, interchainGasPayment = 0) => | ||
router.dispatchWithGasAndCheckpoint( | ||
destinationDomain, | ||
'0x', | ||
interchainGasPayment, | ||
{ value: interchainGasPayment }, | ||
), | ||
true, | ||
true, | ||
); | ||
}); | ||
}); | ||
it('reverts when dispatching message to unenrolled remote router', async () => { | ||
await expect( | ||
router.dispatchToRemoteRouter(destination, message), | ||
).to.be.revertedWith('!router'); | ||
describe('#checkpoint', () => { | ||
it('creates a checkpoint', async () => { | ||
// dispatch dummy message | ||
await outbox.dispatch( | ||
destination, | ||
utils.addressToBytes32(outbox.address), | ||
'0x', | ||
); | ||
await expect(router.checkpoint()).to.emit(outbox, 'Checkpoint'); | ||
}); | ||
}); | ||
}); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
231647
4260