@layerzerolabs/oapp-evm
Version:
LayerZero Labs reference EVM OmniChain Application (OApp) implementation
1 lines • 37.8 kB
JSON
{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAmountCanBeSent","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"currentAmountInFlight","type":"uint256","internalType":"uint256"},{"name":"amountCanBeSent","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"inflow","inputs":[{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"outflow","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rateLimits","inputs":[{"name":"dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"amountInFlight","type":"uint256","internalType":"uint256"},{"name":"lastUpdated","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"},{"name":"window","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setRateLimits","inputs":[{"name":"_rateLimitConfigs","type":"tuple[]","internalType":"struct RateLimiter.RateLimitConfig[]","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"limit","type":"uint256","internalType":"uint256"},{"name":"window","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"RateLimitsChanged","inputs":[{"name":"rateLimitConfigs","type":"tuple[]","indexed":false,"internalType":"struct RateLimiter.RateLimitConfig[]","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"limit","type":"uint256","internalType":"uint256"},{"name":"window","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"error","name":"RateLimitExceeded","inputs":[]}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506106768061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c806346f943e914610059578063ab99095d1461006e578063c272198d146100c7578063cd970842146100ef578063fe9f182314610102575b5f80fd5b61006c61006736600461043c565b610115565b005b6100a261007c366004610510565b5f6020819052908152604090208054600182015460028301546003909301549192909184565b6040805194855260208501939093529183015260608201526080015b60405180910390f35b6100da6100d5366004610510565b610121565b604080519283526020830191909152016100be565b61006c6100fd366004610530565b61017f565b61006c610110366004610530565b61018d565b61011e81610197565b50565b63ffffffff81165f9081526020818152604080832081516080810183528154808252600183015494820185905260028301549382018490526003909201546060820181905285949193610175939291610293565b9250925050915091565b610189828261030a565b5050565b610189828261037f565b5f5b8151811015610258575f805f8484815181106101b7576101b7610558565b60200260200101515f015163ffffffff1663ffffffff1681526020019081526020015f2090506102038383815181106101f2576101f2610558565b60200260200101515f01515f61030a565b82828151811061021557610215610558565b602002602001015160200151816002018190555082828151811061023b5761023b610558565b602090810291909101015160400151600390910155600101610199565b507fe888347665897e637801f36c5129f510657276178c89022bc5fa0246dbc19de181604051610288919061056c565b60405180910390a150565b5f80806102a086426105de565b90505f8085116102b15760016102b3565b845b6102bd83886105f7565b6102c7919061060e565b9050808811156102e0576102db81896105de565b6102e2565b5f5b9350838611156102fb576102f684876105de565b6102fd565b5f5b9250505094509492505050565b63ffffffff82165f908152602081905260408120805460018201546002830154600384015493949384936103419390929091610293565b91509150808411156103665760405163a74c1c5f60e01b815260040160405180910390fd5b610370848361062d565b83555050426001909101555050565b63ffffffff82165f90815260208190526040902080548210156103ae5780546103a99083906105de565b6103b0565b5f5b90555050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156103ed576103ed6103b6565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561041c5761041c6103b6565b604052919050565b803563ffffffff81168114610437575f80fd5b919050565b5f602080838503121561044d575f80fd5b823567ffffffffffffffff80821115610464575f80fd5b818501915085601f830112610477575f80fd5b813581811115610489576104896103b6565b610497848260051b016103f3565b818152848101925060609182028401850191888311156104b5575f80fd5b938501935b828510156105045780858a0312156104d0575f80fd5b6104d86103ca565b6104e186610424565b8152858701358782015260408087013590820152845293840193928501926104ba565b50979650505050505050565b5f60208284031215610520575f80fd5b61052982610424565b9392505050565b5f8060408385031215610541575f80fd5b61054a83610424565b946020939093013593505050565b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f919060409081850190868401855b828110156105bd578151805163ffffffff16855286810151878601528501518585015260609093019290850190600101610588565b5091979650505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156105f1576105f16105ca565b92915050565b80820281158282048414176105f1576105f16105ca565b5f8261062857634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156105f1576105f16105ca56fea26469706673582212200276e526c560d78dff8a68850da337818b17cee5949387b558ced3f1e04959ae64736f6c63430008160033","sourceMap":"158:410:130:-:0;;;204:16;;;;;;;;;;158:410;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610055575f3560e01c806346f943e914610059578063ab99095d1461006e578063c272198d146100c7578063cd970842146100ef578063fe9f182314610102575b5f80fd5b61006c61006736600461043c565b610115565b005b6100a261007c366004610510565b5f6020819052908152604090208054600182015460028301546003909301549192909184565b6040805194855260208501939093529183015260608201526080015b60405180910390f35b6100da6100d5366004610510565b610121565b604080519283526020830191909152016100be565b61006c6100fd366004610530565b61017f565b61006c610110366004610530565b61018d565b61011e81610197565b50565b63ffffffff81165f9081526020818152604080832081516080810183528154808252600183015494820185905260028301549382018490526003909201546060820181905285949193610175939291610293565b9250925050915091565b610189828261030a565b5050565b610189828261037f565b5f5b8151811015610258575f805f8484815181106101b7576101b7610558565b60200260200101515f015163ffffffff1663ffffffff1681526020019081526020015f2090506102038383815181106101f2576101f2610558565b60200260200101515f01515f61030a565b82828151811061021557610215610558565b602002602001015160200151816002018190555082828151811061023b5761023b610558565b602090810291909101015160400151600390910155600101610199565b507fe888347665897e637801f36c5129f510657276178c89022bc5fa0246dbc19de181604051610288919061056c565b60405180910390a150565b5f80806102a086426105de565b90505f8085116102b15760016102b3565b845b6102bd83886105f7565b6102c7919061060e565b9050808811156102e0576102db81896105de565b6102e2565b5f5b9350838611156102fb576102f684876105de565b6102fd565b5f5b9250505094509492505050565b63ffffffff82165f908152602081905260408120805460018201546002830154600384015493949384936103419390929091610293565b91509150808411156103665760405163a74c1c5f60e01b815260040160405180910390fd5b610370848361062d565b83555050426001909101555050565b63ffffffff82165f90815260208190526040902080548210156103ae5780546103a99083906105de565b6103b0565b5f5b90555050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156103ed576103ed6103b6565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561041c5761041c6103b6565b604052919050565b803563ffffffff81168114610437575f80fd5b919050565b5f602080838503121561044d575f80fd5b823567ffffffffffffffff80821115610464575f80fd5b818501915085601f830112610477575f80fd5b813581811115610489576104896103b6565b610497848260051b016103f3565b818152848101925060609182028401850191888311156104b5575f80fd5b938501935b828510156105045780858a0312156104d0575f80fd5b6104d86103ca565b6104e186610424565b8152858701358782015260408087013590820152845293840193928501926104ba565b50979650505050505050565b5f60208284031215610520575f80fd5b61052982610424565b9392505050565b5f8060408385031215610541575f80fd5b61054a83610424565b946020939093013593505050565b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f919060409081850190868401855b828110156105bd578151805163ffffffff16855286810151878601528501518585015260609093019290850190600101610588565b5091979650505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156105f1576105f16105ca565b92915050565b80820281158282048414176105f1576105f16105ca565b5f8261062857634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156105f1576105f16105ca56fea26469706673582212200276e526c560d78dff8a68850da337818b17cee5949387b558ced3f1e04959ae64736f6c63430008160033","sourceMap":"158:410:130:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;226:126;;;;;;:::i;:::-;;:::i;:::-;;5997:59:15;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2563:25:137;;;2619:2;2604:18;;2597:34;;;;2647:18;;;2640:34;2705:2;2690:18;;2683:34;2550:3;2535:19;5997:59:15;;;;;;;;6955:292;;;;;;:::i;:::-;;:::i;:::-;;;;2902:25:137;;;2958:2;2943:18;;2936:34;;;;2875:18;6955:292:15;2728:248:137;358:102:130;;;;;;:::i;:::-;;:::i;466:100::-;;;;;;:::i;:::-;;:::i;226:126::-;312:33;327:17;312:14;:33::i;:::-;226:126;:::o;6955:292:15:-;7132:19;;;7044:29;7132:19;;;;;;;;;;;7110:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7044:29;;7110:41;;7168:72;;7110:41;;7168:16;:72::i;:::-;7161:79;;;;;6955:292;;;:::o;358:102:130:-;427:26;436:7;445;427:8;:26::i;:::-;358:102;;:::o;466:100::-;534:25;542:7;551;534;:25::i;7608:724:15:-;7732:9;7727:538;7751:17;:24;7747:1;:28;7727:538;;;7800:20;7823:10;:39;7834:17;7852:1;7834:20;;;;;;;;:::i;:::-;;;;;;;:27;;;7823:39;;;;;;;;;;;;;;;7800:62;;8000:40;8009:17;8027:1;8009:20;;;;;;;;:::i;:::-;;;;;;;:27;;;8038:1;8000:8;:40::i;:::-;8167:17;8185:1;8167:20;;;;;;;;:::i;:::-;;;;;;;:26;;;8156:2;:8;;:37;;;;8223:17;8241:1;8223:20;;;;;;;;:::i;:::-;;;;;;;;;;;:27;;;8211:9;;;;:39;7777:3;;7727:538;;;;8289:36;8307:17;8289:36;;;;;;:::i;:::-;;;;;;;;7608:724;:::o;8917:763::-;9092:29;;;9189:30;9207:12;9189:15;:30;:::i;:::-;9158:61;;9268:13;9329:1;9319:7;:11;:25;;9343:1;9319:25;;;9333:7;9319:25;9285:29;9294:20;9285:6;:29;:::i;:::-;9284:61;;;;:::i;:::-;9268:77;;9426:5;9407:15;:24;;:54;;9438:23;9456:5;9438:15;:23;:::i;:::-;9407:54;;;9434:1;9407:54;9383:78;;9615:21;9605:6;:31;;:68;;9643:30;9652:21;9643:6;:30;:::i;:::-;9605:68;;;9639:1;9605:68;9587:86;;9148:532;;8917:763;;;;;;;:::o;10092:684::-;10295:19;;;10272:20;10295:19;;;;;;;;;;10414:17;;10445:14;;;;10473:8;;;;10495:9;;;;10295:19;;10272:20;;;10384:130;;10414:17;;10445:14;;10384:16;:130::i;:::-;10325:189;;;;10538:15;10528:7;:25;10524:57;;;10562:19;;-1:-1:-1;;;10562:19:15;;;;;;;;;;;10524:57;10696:31;10720:7;10696:21;:31;:::i;:::-;10676:51;;-1:-1:-1;;10754:15:15;10737:14;;;;:32;-1:-1:-1;;10092:684:15:o;11203:218::-;11303:19;;;11280:20;11303:19;;;;;;;;;;11363:17;;11352:28;;;:62;;11387:17;;:27;;11407:7;;11387:27;:::i;:::-;11352:62;;;11383:1;11352:62;11332:82;;-1:-1:-1;;11203:218:15:o;14:127:137:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:252;217:2;211:9;259:4;247:17;;294:18;279:34;;315:22;;;276:62;273:88;;;341:18;;:::i;:::-;377:2;370:22;146:252;:::o;403:275::-;474:2;468:9;539:2;520:13;;-1:-1:-1;;516:27:137;504:40;;574:18;559:34;;595:22;;;556:62;553:88;;;621:18;;:::i;:::-;657:2;650:22;403:275;;-1:-1:-1;403:275:137:o;683:163::-;750:20;;810:10;799:22;;789:33;;779:61;;836:1;833;826:12;779:61;683:163;;;:::o;851:1287::-;968:6;999:2;1042;1030:9;1021:7;1017:23;1013:32;1010:52;;;1058:1;1055;1048:12;1010:52;1098:9;1085:23;1127:18;1168:2;1160:6;1157:14;1154:34;;;1184:1;1181;1174:12;1154:34;1222:6;1211:9;1207:22;1197:32;;1267:7;1260:4;1256:2;1252:13;1248:27;1238:55;;1289:1;1286;1279:12;1238:55;1325:2;1312:16;1347:2;1343;1340:10;1337:36;;;1353:18;;:::i;:::-;1393:36;1425:2;1420;1417:1;1413:10;1409:19;1393:36;:::i;:::-;1463:15;;;1494:12;;;;-1:-1:-1;1525:4:137;1564:13;;;1556:22;;1552:31;;;1595:19;;;1592:39;;;1627:1;1624;1617:12;1592:39;1651:11;;;;1671:437;1687:6;1682:3;1679:15;1671:437;;;1767:2;1761:3;1752:7;1748:17;1744:26;1741:46;;;1783:1;1780;1773:12;1741:46;1813:21;;:::i;:::-;1861:22;1879:3;1861:22;:::i;:::-;1847:37;;1933:12;;;1920:26;1904:14;;;1897:50;1970:2;2021:12;;;2008:26;1992:14;;;1985:50;2048:18;;1704:12;;;;2086;;;;1671:437;;;-1:-1:-1;2127:5:137;851:1287;-1:-1:-1;;;;;;;851:1287:137:o;2143:184::-;2201:6;2254:2;2242:9;2233:7;2229:23;2225:32;2222:52;;;2270:1;2267;2260:12;2222:52;2293:28;2311:9;2293:28;:::i;:::-;2283:38;2143:184;-1:-1:-1;;;2143:184:137:o;2981:252::-;3048:6;3056;3109:2;3097:9;3088:7;3084:23;3080:32;3077:52;;;3125:1;3122;3115:12;3077:52;3148:28;3166:9;3148:28;:::i;:::-;3138:38;3223:2;3208:18;;;;3195:32;;-1:-1:-1;;;2981:252:137:o;3238:127::-;3299:10;3294:3;3290:20;3287:1;3280:31;3330:4;3327:1;3320:15;3354:4;3351:1;3344:15;3370:876;3607:2;3659:21;;;3729:13;;3632:18;;;3751:22;;;3578:4;;3607:2;3792;;3810:18;;;;3851:15;;;3578:4;3894:326;3908:6;3905:1;3902:13;3894:326;;;3967:13;;4009:9;;4020:10;4005:26;3993:39;;4072:11;;;4066:18;4052:12;;;4045:40;4125:11;;4119:18;4105:12;;;4098:40;4167:4;4158:14;;;;4195:15;;;;3930:1;3923:9;3894:326;;;-1:-1:-1;4237:3:137;;3370:876;-1:-1:-1;;;;;;;3370:876:137:o;4251:127::-;4312:10;4307:3;4303:20;4300:1;4293:31;4343:4;4340:1;4333:15;4367:4;4364:1;4357:15;4383:128;4450:9;;;4471:11;;;4468:37;;;4485:18;;:::i;:::-;4383:128;;;;:::o;4516:168::-;4589:9;;;4620;;4637:15;;;4631:22;;4617:37;4607:71;;4658:18;;:::i;4689:217::-;4729:1;4755;4745:132;;4799:10;4794:3;4790:20;4787:1;4780:31;4834:4;4831:1;4824:15;4862:4;4859:1;4852:15;4745:132;-1:-1:-1;4891:9:137;;4689:217::o;4911:125::-;4976:9;;;4997:10;;;4994:36;;;5010:18;;:::i","linkReferences":{}},"methodIdentifiers":{"getAmountCanBeSent(uint32)":"c272198d","inflow(uint32,uint256)":"fe9f1823","outflow(uint32,uint256)":"cd970842","rateLimits(uint32)":"ab99095d","setRateLimits((uint32,uint256,uint256)[])":"46f943e9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"RateLimitExceeded\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"window\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct RateLimiter.RateLimitConfig[]\",\"name\":\"rateLimitConfigs\",\"type\":\"tuple[]\"}],\"name\":\"RateLimitsChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"}],\"name\":\"getAmountCanBeSent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentAmountInFlight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountCanBeSent\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"inflow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"outflow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"}],\"name\":\"rateLimits\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountInFlight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastUpdated\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"window\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"window\",\"type\":\"uint256\"}],\"internalType\":\"struct RateLimiter.RateLimitConfig[]\",\"name\":\"_rateLimitConfigs\",\"type\":\"tuple[]\"}],\"name\":\"setRateLimits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"RateLimitsChanged((uint32,uint256,uint256)[])\":{\"params\":{\"rateLimitConfigs\":\"An array of `RateLimitConfig` structs representing the rate limit configurations set. - `dstEid`: The destination endpoint id. - `limit`: This represents the maximum allowed amount within a given window. - `window`: Defines the duration of the rate limiting window.\"}}},\"kind\":\"dev\",\"methods\":{\"getAmountCanBeSent(uint32)\":{\"params\":{\"_dstEid\":\"The destination endpoint id.\"},\"returns\":{\"amountCanBeSent\":\"The amount that can be sent.\",\"currentAmountInFlight\":\"The current amount that was sent.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"RateLimitExceeded()\":[{\"notice\":\"Error that is thrown when an amount exceeds the rate_limit.\"}]},\"events\":{\"RateLimitsChanged((uint32,uint256,uint256)[])\":{\"notice\":\"Emitted when _setRateLimits occurs.\"}},\"kind\":\"user\",\"methods\":{\"getAmountCanBeSent(uint32)\":{\"notice\":\"Get the current amount that can be sent to this destination endpoint id for the given rate limit window.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/RateLimiter.t.sol\":\"RateLimiterImpl\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/\"]},\"sources\":{\"contracts/oapp/utils/RateLimiter.sol\":{\"keccak256\":\"0xb6615d6ec32aa015099680e36f4a5a1001821f699b55c68e7e333dbddf514d5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f18549ef42d419b656ed0bfda4f1006e800a361c06b8c34ceabffd78d1d2dd86\",\"dweb:/ipfs/QmQMkkDg6nB4c1vYxJYdT4LnyMpdgsPYrMe8bX8L6XpEEn\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe\",\"dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x7dd11ac4db798fa196e00a0cfa288ce984acac881f1f34de03fe3187deed58de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c15fb03d5545e2d8d3948661596410edec5ec278a73988914b14a05d0d54557\",\"dweb:/ipfs/QmWGjkLgp4wSrTrFxF8cmhghaXQp5VyXYQvWE1DUTPL4rG\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x28473c688050ed5cfdf6a47bfd59cdc7209e6a3eab8b438eb92055ea4066a49b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d7e6391ced7256389f496fa35962d4ecdd6a066c5a54bdbef58abe6287c732b\",\"dweb:/ipfs/QmTuTqyapx9XraMX3mUjNjs3YHzBiQSfAQ38can96WWohM\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391\",\"dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974\",\"dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3\",\"dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfe4466244a3c783594443a2f96e4b2d14e62e3eca310260f1b4c9107e9aafb53\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3890f26c3e2c2d96f4b11f269e679c0a6f47ca995d761530a36c42382ddf7359\",\"dweb:/ipfs/QmWpcGEYqLxtfjouqwa3RP77uX2jnFGYnHjnzT4PPyRdbr\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87\",\"dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab\",\"dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3\"]},\"test/RateLimiter.t.sol\":{\"keccak256\":\"0x6a290d6e824868bd6e18274cc0a08c3797a5505f9ee9612d4b9aa7540c536c71\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4a1a3a42ab184ca8a4e964b15625d111c38cc356eb2b6062d522421b2e20b3ab\",\"dweb:/ipfs/QmVMLHckYgpMT5x2YptPDTQDNspVnqr9DaSFHNDqQ2kdFU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"RateLimitExceeded"},{"inputs":[{"internalType":"struct RateLimiter.RateLimitConfig[]","name":"rateLimitConfigs","type":"tuple[]","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"uint256","name":"limit","type":"uint256"},{"internalType":"uint256","name":"window","type":"uint256"}],"indexed":false}],"type":"event","name":"RateLimitsChanged","anonymous":false},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getAmountCanBeSent","outputs":[{"internalType":"uint256","name":"currentAmountInFlight","type":"uint256"},{"internalType":"uint256","name":"amountCanBeSent","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"inflow"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"outflow"},{"inputs":[{"internalType":"uint32","name":"dstEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"rateLimits","outputs":[{"internalType":"uint256","name":"amountInFlight","type":"uint256"},{"internalType":"uint256","name":"lastUpdated","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"},{"internalType":"uint256","name":"window","type":"uint256"}]},{"inputs":[{"internalType":"struct RateLimiter.RateLimitConfig[]","name":"_rateLimitConfigs","type":"tuple[]","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"uint256","name":"limit","type":"uint256"},{"internalType":"uint256","name":"window","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"setRateLimits"}],"devdoc":{"kind":"dev","methods":{"getAmountCanBeSent(uint32)":{"params":{"_dstEid":"The destination endpoint id."},"returns":{"amountCanBeSent":"The amount that can be sent.","currentAmountInFlight":"The current amount that was sent."}}},"version":1},"userdoc":{"kind":"user","methods":{"getAmountCanBeSent(uint32)":{"notice":"Get the current amount that can be sent to this destination endpoint id for the given rate limit window."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/RateLimiter.t.sol":"RateLimiterImpl"},"evmVersion":"shanghai","libraries":{}},"sources":{"contracts/oapp/utils/RateLimiter.sol":{"keccak256":"0xb6615d6ec32aa015099680e36f4a5a1001821f699b55c68e7e333dbddf514d5e","urls":["bzz-raw://f18549ef42d419b656ed0bfda4f1006e800a361c06b8c34ceabffd78d1d2dd86","dweb:/ipfs/QmQMkkDg6nB4c1vYxJYdT4LnyMpdgsPYrMe8bX8L6XpEEn"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol":{"keccak256":"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270","urls":["bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe","dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol":{"keccak256":"0x7dd11ac4db798fa196e00a0cfa288ce984acac881f1f34de03fe3187deed58de","urls":["bzz-raw://2c15fb03d5545e2d8d3948661596410edec5ec278a73988914b14a05d0d54557","dweb:/ipfs/QmWGjkLgp4wSrTrFxF8cmhghaXQp5VyXYQvWE1DUTPL4rG"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol":{"keccak256":"0x28473c688050ed5cfdf6a47bfd59cdc7209e6a3eab8b438eb92055ea4066a49b","urls":["bzz-raw://2d7e6391ced7256389f496fa35962d4ecdd6a066c5a54bdbef58abe6287c732b","dweb:/ipfs/QmTuTqyapx9XraMX3mUjNjs3YHzBiQSfAQ38can96WWohM"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol":{"keccak256":"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d","urls":["bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391","dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol":{"keccak256":"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500","urls":["bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974","dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdToml.sol":{"keccak256":"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861","urls":["bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3","dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0xfe4466244a3c783594443a2f96e4b2d14e62e3eca310260f1b4c9107e9aafb53","urls":["bzz-raw://3890f26c3e2c2d96f4b11f269e679c0a6f47ca995d761530a36c42382ddf7359","dweb:/ipfs/QmWpcGEYqLxtfjouqwa3RP77uX2jnFGYnHjnzT4PPyRdbr"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9","urls":["bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87","dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol":{"keccak256":"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11","urls":["bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab","dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3"],"license":"MIT"},"test/RateLimiter.t.sol":{"keccak256":"0x6a290d6e824868bd6e18274cc0a08c3797a5505f9ee9612d4b9aa7540c536c71","urls":["bzz-raw://4a1a3a42ab184ca8a4e964b15625d111c38cc356eb2b6062d522421b2e20b3ab","dweb:/ipfs/QmVMLHckYgpMT5x2YptPDTQDNspVnqr9DaSFHNDqQ2kdFU"],"license":"UNLICENSED"}},"version":1},"id":130}