@sentrix-labs/canonical-contracts 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,70 @@
1
+ # Deployments
2
+
3
+ Per-network deployed-address registry. Source-of-truth for SDK consumers, integrators, and tooling.
4
+
5
+ ## Files
6
+
7
+ | File | Network |
8
+ |---|---|
9
+ | `7119.json` | Sentrix Mainnet |
10
+ | `7120.json` | Sentrix Testnet |
11
+ | `abi/*.json` | Compiled ABI artifacts (one per contract) |
12
+
13
+ ## Format
14
+
15
+ Each per-network JSON file has this shape:
16
+
17
+ ```json
18
+ {
19
+ "_chainId": 7119,
20
+ "_network": "Sentrix Mainnet",
21
+ "WSRX": {
22
+ "address": "0x...",
23
+ "tx": "0x...",
24
+ "block": 692500,
25
+ "deployer": "0x...",
26
+ "deployed_at": "2026-04-28"
27
+ },
28
+ "Multicall3": { ... },
29
+ "SentrixSafe": { ... },
30
+ "TokenFactory": { ... }
31
+ }
32
+ ```
33
+
34
+ Keys starting with `_` are metadata (not contracts). Each contract entry contains:
35
+
36
+ | Field | Type | Meaning |
37
+ |---|---|---|
38
+ | `address` | `0x` + 40 hex | Deployed contract address |
39
+ | `tx` | `0x` + 64 hex | Deploy transaction hash |
40
+ | `block` | `u64` | Block height at which the deploy was mined |
41
+ | `deployer` | `0x` + 40 hex | EOA that signed the deploy tx |
42
+ | `deployed_at` | `YYYY-MM-DD` | Calendar date of the deploy |
43
+
44
+ ## Reading from JS / TS
45
+
46
+ ```ts
47
+ import mainnet from "./deployments/7119.json";
48
+ import testnet from "./deployments/7120.json";
49
+
50
+ const wsrx = (chainId: number) => (chainId === 7119 ? mainnet : testnet).WSRX.address;
51
+ ```
52
+
53
+ ## Updating after a deploy
54
+
55
+ 1. After `forge script Deploy*.s.sol --broadcast`, capture the address from the broadcast log
56
+ 2. Edit the per-network JSON file
57
+ 3. Add the contract entry per the format above
58
+ 4. Commit on the same release branch as the deploy tag
59
+
60
+ See `docs/DEPLOYMENT.md` for the full release flow.
61
+
62
+ ## ABI files
63
+
64
+ `abi/<Contract>.json` files are the **compiled artifact** outputs from `forge build`. Refresh them after every deploy by running:
65
+
66
+ ```bash
67
+ ./script/copy-abi.sh
68
+ ```
69
+
70
+ This script copies `out/<Contract>.sol/<Contract>.json` to `deployments/abi/<Contract>.json`. The ABI is part of the public surface — SDK consumers depend on it.
@@ -0,0 +1 @@
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_initialSupply","type":"uint256","internalType":"uint256"},{"name":"_owner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801562000010575f80fd5b50604051620009b0380380620009b083398101604081905262000033916200016c565b5f62000040858262000285565b5060016200004f848262000285565b5060028290556001600160a01b0381165f818152600360209081526040808320869055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505062000351565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112620000cf575f80fd5b81516001600160401b0380821115620000ec57620000ec620000ab565b604051601f8301601f19908116603f01168101908282118183101715620001175762000117620000ab565b816040528381526020925086602085880101111562000134575f80fd5b5f91505b8382101562000157578582018301518183018401529082019062000138565b5f602085830101528094505050505092915050565b5f805f806080858703121562000180575f80fd5b84516001600160401b038082111562000197575f80fd5b620001a588838901620000bf565b95506020870151915080821115620001bb575f80fd5b50620001ca87828801620000bf565b60408701516060880151919550935090506001600160a01b0381168114620001f0575f80fd5b939692955090935050565b600181811c908216806200021057607f821691505b6020821081036200022f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200028057805f5260205f20601f840160051c810160208510156200025c5750805b601f840160051c820191505b818110156200027d575f815560010162000268565b50505b505050565b81516001600160401b03811115620002a157620002a1620000ab565b620002b981620002b28454620001fb565b8462000235565b602080601f831160018114620002ef575f8415620002d75750858301515b5f19600386901b1c1916600185901b17855562000349565b5f85815260208120601f198616915b828110156200031f57888601518255948401946001909101908401620002fe565b50858210156200033d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b610651806200035f5f395ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c8063313ce56711610063578063313ce567146100ff57806370a082311461011957806395d89b4114610138578063a9059cbb14610140578063dd62ed3e14610153575f80fd5b806306fdde0314610094578063095ea7b3146100b257806318160ddd146100d557806323b872dd146100ec575b5f80fd5b61009c61017d565b6040516100a99190610497565b60405180910390f35b6100c56100c03660046104fe565b610208565b60405190151581526020016100a9565b6100de60025481565b6040519081526020016100a9565b6100c56100fa366004610526565b610274565b610107601281565b60405160ff90911681526020016100a9565b6100de61012736600461055f565b60036020525f908152604090205481565b61009c610354565b6100c561014e3660046104fe565b610361565b6100de610161366004610578565b600460209081525f928352604080842090915290825290205481565b5f8054610189906105a9565b80601f01602080910402602001604051908101604052809291908181526020018280546101b5906105a9565b80156102005780601f106101d757610100808354040283529160200191610200565b820191905f5260205f20905b8154815290600101906020018083116101e357829003601f168201915b505050505081565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102629086815260200190565b60405180910390a35060015b92915050565b5f6001600160a01b0384163314610341576001600160a01b0384165f9081526004602090815260408083203384529091529020545f19811461033f57828110156103115760405162461bcd60e51b8152602060048201526024808201527f466163746f7279546f6b656e3a20696e73756666696369656e7420616c6c6f77604482015263616e636560e01b60648201526084015b60405180910390fd5b61031b83826105f5565b6001600160a01b0386165f9081526004602090815260408083203384529091529020555b505b61034c848484610374565b949350505050565b60018054610189906105a9565b5f61036d338484610374565b9392505050565b6001600160a01b0383165f908152600360205260408120548211156103e65760405162461bcd60e51b815260206004820152602260248201527f466163746f7279546f6b656e3a20696e73756666696369656e742062616c616e604482015261636560f01b6064820152608401610308565b6001600160a01b0384165f908152600360205260408120805484929061040d9084906105f5565b90915550506001600160a01b0383165f9081526003602052604081208054849290610439908490610608565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161048591815260200190565b60405180910390a35060019392505050565b5f602080835283518060208501525f5b818110156104c3578581018301518582016040015282016104a7565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146104f9575f80fd5b919050565b5f806040838503121561050f575f80fd5b610518836104e3565b946020939093013593505050565b5f805f60608486031215610538575f80fd5b610541846104e3565b925061054f602085016104e3565b9150604084013590509250925092565b5f6020828403121561056f575f80fd5b61036d826104e3565b5f8060408385031215610589575f80fd5b610592836104e3565b91506105a0602084016104e3565b90509250929050565b600181811c908216806105bd57607f821691505b6020821081036105db57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561026e5761026e6105e1565b8082018082111561026e5761026e6105e156fea2646970667358221220fd28826e2f0835e63436764caa00ac6b1785b4ddf423bc78431a8c4d60e1587b64736f6c63430008180033","sourceMap":"1276:1838:0:-:0;;;1710:292;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1816:4;:12;1823:5;1816:4;:12;:::i;:::-;-1:-1:-1;1838:6:0;:16;1847:7;1838:6;:16;:::i;:::-;-1:-1:-1;1864:11:0;:28;;;-1:-1:-1;;;;;1902:17:0;;;;;;:9;:17;;;;;;;;:34;;;1951:44;4492:25:1;;;1951:44:0;;4465:18:1;1951:44:0;;;;;;;1710:292;;;;1276:1838;;14:127:1;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:844;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:1;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:1;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;732:3;725:4;720:2;712:6;708:15;704:26;701:35;698:55;;;749:1;746;739:12;698:55;771:1;762:10;;781:133;795:2;792:1;789:9;781:133;;;883:14;;;879:23;;873:30;852:14;;;848:23;;841:63;806:10;;;;781:133;;;958:1;951:4;946:2;938:6;934:15;930:26;923:37;978:6;969:15;;;;;;146:844;;;;:::o;995:791::-;1112:6;1120;1128;1136;1189:3;1177:9;1168:7;1164:23;1160:33;1157:53;;;1206:1;1203;1196:12;1157:53;1233:16;;-1:-1:-1;;;;;1298:14:1;;;1295:34;;;1325:1;1322;1315:12;1295:34;1348:61;1401:7;1392:6;1381:9;1377:22;1348:61;:::i;:::-;1338:71;;1455:2;1444:9;1440:18;1434:25;1418:41;;1484:2;1474:8;1471:16;1468:36;;;1500:1;1497;1490:12;1468:36;;1523:63;1578:7;1567:8;1556:9;1552:24;1523:63;:::i;:::-;1626:2;1611:18;;1605:25;1673:2;1658:18;;1652:25;1513:73;;-1:-1:-1;1605:25:1;-1:-1:-1;1652:25:1;-1:-1:-1;;;;;;1706:31:1;;1696:42;;1686:70;;1752:1;1749;1742:12;1686:70;995:791;;;;-1:-1:-1;995:791:1;;-1:-1:-1;;995:791:1:o;1791:380::-;1870:1;1866:12;;;;1913;;;1934:61;;1988:4;1980:6;1976:17;1966:27;;1934:61;2041:2;2033:6;2030:14;2010:18;2007:38;2004:161;;2087:10;2082:3;2078:20;2075:1;2068:31;2122:4;2119:1;2112:15;2150:4;2147:1;2140:15;2004:161;;1791:380;;;:::o;2302:518::-;2404:2;2399:3;2396:11;2393:421;;;2440:5;2437:1;2430:16;2484:4;2481:1;2471:18;2554:2;2542:10;2538:19;2535:1;2531:27;2525:4;2521:38;2590:4;2578:10;2575:20;2572:47;;;-1:-1:-1;2613:4:1;2572:47;2668:2;2663:3;2659:12;2656:1;2652:20;2646:4;2642:31;2632:41;;2723:81;2741:2;2734:5;2731:13;2723:81;;;2800:1;2786:16;;2767:1;2756:13;2723:81;;;2727:3;;2393:421;2302:518;;;:::o;2996:1345::-;3116:10;;-1:-1:-1;;;;;3138:30:1;;3135:56;;;3171:18;;:::i;:::-;3200:97;3290:6;3250:38;3282:4;3276:11;3250:38;:::i;:::-;3244:4;3200:97;:::i;:::-;3352:4;;3409:2;3398:14;;3426:1;3421:663;;;;4128:1;4145:6;4142:89;;;-1:-1:-1;4197:19:1;;;4191:26;4142:89;-1:-1:-1;;2953:1:1;2949:11;;;2945:24;2941:29;2931:40;2977:1;2973:11;;;2928:57;4244:81;;3391:944;;3421:663;2249:1;2242:14;;;2286:4;2273:18;;-1:-1:-1;;3457:20:1;;;3575:236;3589:7;3586:1;3583:14;3575:236;;;3678:19;;;3672:26;3657:42;;3770:27;;;;3738:1;3726:14;;;;3605:19;;3575:236;;;3579:3;3839:6;3830:7;3827:19;3824:201;;;3900:19;;;3894:26;-1:-1:-1;;3983:1:1;3979:14;;;3995:3;3975:24;3971:37;3967:42;3952:58;3937:74;;3824:201;;;4071:1;4062:6;4059:1;4055:14;4051:22;4045:4;4038:36;3391:944;;;;;2996:1345;;:::o;4346:177::-;1276:1838:0;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610090575f3560e01c8063313ce56711610063578063313ce567146100ff57806370a082311461011957806395d89b4114610138578063a9059cbb14610140578063dd62ed3e14610153575f80fd5b806306fdde0314610094578063095ea7b3146100b257806318160ddd146100d557806323b872dd146100ec575b5f80fd5b61009c61017d565b6040516100a99190610497565b60405180910390f35b6100c56100c03660046104fe565b610208565b60405190151581526020016100a9565b6100de60025481565b6040519081526020016100a9565b6100c56100fa366004610526565b610274565b610107601281565b60405160ff90911681526020016100a9565b6100de61012736600461055f565b60036020525f908152604090205481565b61009c610354565b6100c561014e3660046104fe565b610361565b6100de610161366004610578565b600460209081525f928352604080842090915290825290205481565b5f8054610189906105a9565b80601f01602080910402602001604051908101604052809291908181526020018280546101b5906105a9565b80156102005780601f106101d757610100808354040283529160200191610200565b820191905f5260205f20905b8154815290600101906020018083116101e357829003601f168201915b505050505081565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102629086815260200190565b60405180910390a35060015b92915050565b5f6001600160a01b0384163314610341576001600160a01b0384165f9081526004602090815260408083203384529091529020545f19811461033f57828110156103115760405162461bcd60e51b8152602060048201526024808201527f466163746f7279546f6b656e3a20696e73756666696369656e7420616c6c6f77604482015263616e636560e01b60648201526084015b60405180910390fd5b61031b83826105f5565b6001600160a01b0386165f9081526004602090815260408083203384529091529020555b505b61034c848484610374565b949350505050565b60018054610189906105a9565b5f61036d338484610374565b9392505050565b6001600160a01b0383165f908152600360205260408120548211156103e65760405162461bcd60e51b815260206004820152602260248201527f466163746f7279546f6b656e3a20696e73756666696369656e742062616c616e604482015261636560f01b6064820152608401610308565b6001600160a01b0384165f908152600360205260408120805484929061040d9084906105f5565b90915550506001600160a01b0383165f9081526003602052604081208054849290610439908490610608565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161048591815260200190565b60405180910390a35060019392505050565b5f602080835283518060208501525f5b818110156104c3578581018301518582016040015282016104a7565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146104f9575f80fd5b919050565b5f806040838503121561050f575f80fd5b610518836104e3565b946020939093013593505050565b5f805f60608486031215610538575f80fd5b610541846104e3565b925061054f602085016104e3565b9150604084013590509250925092565b5f6020828403121561056f575f80fd5b61036d826104e3565b5f8060408385031215610589575f80fd5b610592836104e3565b91506105a0602084016104e3565b90509250929050565b600181811c908216806105bd57607f821691505b6020821081036105db57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561026e5761026e6105e1565b8082018082111561026e5761026e6105e156fea2646970667358221220fd28826e2f0835e63436764caa00ac6b1785b4ddf423bc78431a8c4d60e1587b64736f6c63430008180033","sourceMap":"1276:1838:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1304:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2141:203;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;2141:203:0;1004:187:1;1395:26:0;;;;;;;;;1342:25:1;;;1330:2;1315:18;1395:26:0;1196:177:1;2350:452:0;;;;;;:::i;:::-;;:::i;1354:35::-;;1387:2;1354:35;;;;;1883:4:1;1871:17;;;1853:36;;1841:2;1826:18;1354:35:0;1711:184:1;1428:44:0;;;;;;:::i;:::-;;;;;;;;;;;;;;1328:20;;;:::i;2008:127::-;;;;;;:::i;:::-;;:::i;1478:64::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1304:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2141:203::-;2235:10;2209:4;2225:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2225:30:0;;;;;;;;;;:39;;;2279:37;2209:4;;2225:30;;2279:37;;;;2258:6;1342:25:1;;1330:2;1315:18;;1196:177;2279:37:0;;;;;;;;-1:-1:-1;2333:4:0;2141:203;;;;;:::o;2350:452::-;2432:4;-1:-1:-1;;;;;2452:18:0;;2460:10;2452:18;2448:304;;-1:-1:-1;;;;;2504:15:0;;2486;2504;;;:9;:15;;;;;;;;2520:10;2504:27;;;;;;;;-1:-1:-1;;2549:28:0;;2545:197;;2616:6;2605:7;:17;;2597:66;;;;-1:-1:-1;;;2597:66:0;;2943:2:1;2597:66:0;;;2925:21:1;2982:2;2962:18;;;2955:30;3021:34;3001:18;;;2994:62;-1:-1:-1;;;3072:18:1;;;3065:34;3116:19;;2597:66:0;;;;;;;;;2711:16;2721:6;2711:7;:16;:::i;:::-;-1:-1:-1;;;;;2681:15:0;;;;;;:9;:15;;;;;;;;2697:10;2681:27;;;;;;;:46;2545:197;2472:280;2448:304;2768:27;2778:4;2784:2;2788:6;2768:9;:27::i;:::-;2761:34;2350:452;-1:-1:-1;;;;2350:452:0:o;1328:20::-;;;;;;;:::i;2008:127::-;2072:4;2095:33;2105:10;2117:2;2121:6;2095:9;:33::i;:::-;2088:40;2008:127;-1:-1:-1;;;2008:127:0:o;2808:304::-;-1:-1:-1;;;;;2911:15:0;;2887:4;2911:15;;;:9;:15;;;;;;:25;-1:-1:-1;2911:25:0;2903:72;;;;-1:-1:-1;;;2903:72:0;;3613:2:1;2903:72:0;;;3595:21:1;3652:2;3632:18;;;3625:30;3691:34;3671:18;;;3664:62;-1:-1:-1;;;3742:18:1;;;3735:32;3784:19;;2903:72:0;3411:398:1;2903:72:0;-1:-1:-1;;;;;2985:15:0;;;;;;:9;:15;;;;;:25;;3004:6;;2985:15;:25;;3004:6;;2985:25;:::i;:::-;;;;-1:-1:-1;;;;;;;3020:13:0;;;;;;:9;:13;;;;;:23;;3037:6;;3020:13;:23;;3037:6;;3020:23;:::i;:::-;;;;;;;;3073:2;-1:-1:-1;;;;;3058:26:0;3067:4;-1:-1:-1;;;;;3058:26:0;;3077:6;3058:26;;;;1342:25:1;;1330:2;1315:18;;1196:177;3058:26:0;;;;;;;;-1:-1:-1;3101:4:0;2808:304;;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:186::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;2051:29;2070:9;2051:29;:::i;2091:260::-;2159:6;2167;2220:2;2208:9;2199:7;2195:23;2191:32;2188:52;;;2236:1;2233;2226:12;2188:52;2259:29;2278:9;2259:29;:::i;:::-;2249:39;;2307:38;2341:2;2330:9;2326:18;2307:38;:::i;:::-;2297:48;;2091:260;;;;;:::o;2356:380::-;2435:1;2431:12;;;;2478;;;2499:61;;2553:4;2545:6;2541:17;2531:27;;2499:61;2606:2;2598:6;2595:14;2575:18;2572:38;2569:161;;2652:10;2647:3;2643:20;2640:1;2633:31;2687:4;2684:1;2677:15;2715:4;2712:1;2705:15;2569:161;;2356:380;;;:::o;3146:127::-;3207:10;3202:3;3198:20;3195:1;3188:31;3238:4;3235:1;3228:15;3262:4;3259:1;3252:15;3278:128;3345:9;;;3366:11;;;3363:37;;;3380:18;;:::i;3814:125::-;3879:9;;;3900:10;;;3897:36;;;3913:18;;:::i","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_initialSupply\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Minimal ERC-20 deployed by the factory.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/TokenFactory.sol\":\"FactoryToken\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/openzeppelin-contracts/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"contracts/TokenFactory.sol\":{\"keccak256\":\"0x9e264e93512eaf09e7733e184907511f15768828c44de0808dfa1ec1155761e7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://262fd230bddd0ec20fb3bb0e7a6dc476984ca4ace9490d039d0f0f2c4c1e81de\",\"dweb:/ipfs/QmUos4CU2N4Xzr38qhuKYBfDiNy6LFXbZsuB1n5kxHSHDf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_initialSupply","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/openzeppelin-contracts/","forge-std/=lib/forge-std/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/TokenFactory.sol":"FactoryToken"},"evmVersion":"cancun","libraries":{}},"sources":{"contracts/TokenFactory.sol":{"keccak256":"0x9e264e93512eaf09e7733e184907511f15768828c44de0808dfa1ec1155761e7","urls":["bzz-raw://262fd230bddd0ec20fb3bb0e7a6dc476984ca4ace9490d039d0f0f2c4c1e81de","dweb:/ipfs/QmUos4CU2N4Xzr38qhuKYBfDiNy6LFXbZsuB1n5kxHSHDf"],"license":"BUSL-1.1"}},"version":1},"storageLayout":{"storage":[{"astId":98,"contract":"contracts/TokenFactory.sol:FactoryToken","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":100,"contract":"contracts/TokenFactory.sol:FactoryToken","label":"symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":105,"contract":"contracts/TokenFactory.sol:FactoryToken","label":"totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":109,"contract":"contracts/TokenFactory.sol:FactoryToken","label":"balanceOf","offset":0,"slot":"3","type":"t_mapping(t_address,t_uint256)"},{"astId":115,"contract":"contracts/TokenFactory.sol:FactoryToken","label":"allowance","offset":0,"slot":"4","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"id":0}
@@ -0,0 +1 @@
1
+ {"abi":[{"type":"function","name":"aggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct Multicall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"returnData","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"payable"},{"type":"function","name":"aggregate3","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct Multicall3.Call3[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct Multicall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"aggregate3Value","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct Multicall3.Call3Value[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct Multicall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"blockAndAggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct Multicall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct Multicall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"getBasefee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockHash","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockCoinbase","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockGasLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockTimestamp","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEthBalance","inputs":[{"name":"addr","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLastBlockHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"tryBlockAndAggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct Multicall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct Multicall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b50610bac8061001d5f395ff3fe6080604052600436106100d9575f3560e01c80634d2301cc1161007c57806386d516e81161005757806386d516e8146101e5578063a8b0574e146101f7578063c3077fa914610211578063ee82ac5e14610224575f80fd5b80634d2301cc14610189578063696e8cc9146101b057806382ad56cb146101d2575f80fd5b806327e86d6e116100b757806327e86d6e1461013f5780633408e470146101535780633e64a6961461016557806342cbb15c14610177575f80fd5b80630f28c97d146100dd578063174dea71146100fe578063252dba421461011e575b5f80fd5b3480156100e8575f80fd5b50425b6040519081526020015b60405180910390f35b61011161010c3660046108bc565b610242565b6040516100f591906109aa565b61013161012c3660046108bc565b610421565b6040516100f59291906109c3565b34801561014a575f80fd5b506100eb61058f565b34801561015e575f80fd5b50466100eb565b348015610170575f80fd5b50486100eb565b348015610182575f80fd5b50436100eb565b348015610194575f80fd5b506100eb6101a3366004610a2d565b6001600160a01b03163190565b6101c36101be3660046108bc565b6105a1565b6040516100f593929190610a53565b6101116101e03660046108bc565b6106e1565b3480156101f0575f80fd5b50456100eb565b348015610202575f80fd5b506040514181526020016100f5565b6101c361021f3660046108bc565b610858565b34801561022f575f80fd5b506100eb61023e366004610a7a565b4090565b60605f828067ffffffffffffffff81111561025f5761025f610a91565b6040519080825280602002602001820160405280156102a457816020015b604080518082019091525f81526060602082015281526020019060019003908161027d5790505b509250365f5b828110156103c3575f8582815181106102c5576102c5610aa5565b602002602001015190508787838181106102e1576102e1610aa5565b90506020028101906102f39190610ab9565b60408101359586019590935061030c6020850185610a2d565b6001600160a01b0316816103236060870187610ad7565b604051610331929190610b1a565b5f6040518083038185875af1925050503d805f811461036b576040519150601f19603f3d011682016040523d82523d5f602084013e610370565b606091505b50602084015215158083526040850135176103b9576308c379a05f5260208052601760405276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b6060526064601cfd5b50506001016102aa565b508234146104185760405162461bcd60e51b815260206004820152601a60248201527f4d756c746963616c6c333a2076616c7565206d69736d6174636800000000000060448201526064015b60405180910390fd5b50505092915050565b436060828067ffffffffffffffff81111561043e5761043e610a91565b60405190808252806020026020018201604052801561047157816020015b606081526020019060019003908161045c5790505b509150365f5b82811015610585575f87878381811061049257610492610aa5565b90506020028101906104a49190610b29565b92506104b36020840184610a2d565b6001600160a01b03166104c96020850185610ad7565b6040516104d7929190610b1a565b5f604051808303815f865af19150503d805f8114610510576040519150601f19603f3d011682016040523d82523d5f602084013e610515565b606091505b5086848151811061052857610528610aa5565b602090810291909101015290508061057c5760405162461bcd60e51b8152602060048201526017602482015276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b604482015260640161040f565b50600101610477565b5050509250929050565b5f61059b600143610b3d565b40905090565b4380406060838067ffffffffffffffff8111156105c0576105c0610a91565b60405190808252806020026020018201604052801561060557816020015b604080518082019091525f8152606060208201528152602001906001900390816105de5790505b509150365f5b828110156106d7575f84828151811061062657610626610aa5565b6020026020010151905088888381811061064257610642610aa5565b90506020028101906106549190610b29565b92506106636020840184610a2d565b6001600160a01b03166106796020850185610ad7565b604051610687929190610b1a565b5f604051808303815f865af19150503d805f81146106c0576040519150601f19603f3d011682016040523d82523d5f602084013e6106c5565b606091505b5060208301521515905260010161060b565b5050509250925092565b6060818067ffffffffffffffff8111156106fd576106fd610a91565b60405190808252806020026020018201604052801561074257816020015b604080518082019091525f81526060602082015281526020019060019003908161071b5790505b509150365f5b82811015610418575f84828151811061076357610763610aa5565b6020026020010151905086868381811061077f5761077f610aa5565b90506020028101906107919190610b62565b92506107a06020840184610a2d565b6001600160a01b03166107b66040850185610ad7565b6040516107c4929190610b1a565b5f604051808303815f865af19150503d805f81146107fd576040519150601f19603f3d011682016040523d82523d5f602084013e610802565b606091505b50602080840191909152901515808352908401351761084f576308c379a05f5260208052601760405276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b6060526064601cfd5b50600101610748565b5f80606061086685856105a1565b919790965090945092505050565b5f8083601f840112610884575f80fd5b50813567ffffffffffffffff81111561089b575f80fd5b6020830191508360208260051b85010111156108b5575f80fd5b9250929050565b5f80602083850312156108cd575f80fd5b823567ffffffffffffffff8111156108e3575f80fd5b6108ef85828601610874565b90969095509350505050565b5f81518084525f5b8181101561091f57602081850181015186830182015201610903565b505f602082860101526020601f19601f83011685010191505092915050565b5f82825180855260208086019550808260051b8401018186015f5b8481101561099d57858303601f1901895281518051151584528401516040858501819052610989818601836108fb565b9a86019a9450505090830190600101610959565b5090979650505050505050565b602081525f6109bc602083018461093e565b9392505050565b5f6040820184835260206040602085015281855180845260608601915060608160051b8701019350602087015f5b82811015610a1f57605f19888703018452610a0d8683516108fb565b955092840192908401906001016109f1565b509398975050505050505050565b5f60208284031215610a3d575f80fd5b81356001600160a01b03811681146109bc575f80fd5b838152826020820152606060408201525f610a71606083018461093e565b95945050505050565b5f60208284031215610a8a575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235607e19833603018112610acd575f80fd5b9190910192915050565b5f808335601e19843603018112610aec575f80fd5b83018035915067ffffffffffffffff821115610b06575f80fd5b6020019150368190038213156108b5575f80fd5b818382375f9101908152919050565b5f8235603e19833603018112610acd575f80fd5b81810381811115610b5c57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f8235605e19833603018112610acd575f80fdfea2646970667358221220bb11e950c879af03026e9485e60fd0f26ebc9b2d8a795a7bef9b04a85975460e64736f6c63430008180033","sourceMap":"497:4826:0:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100d9575f3560e01c80634d2301cc1161007c57806386d516e81161005757806386d516e8146101e5578063a8b0574e146101f7578063c3077fa914610211578063ee82ac5e14610224575f80fd5b80634d2301cc14610189578063696e8cc9146101b057806382ad56cb146101d2575f80fd5b806327e86d6e116100b757806327e86d6e1461013f5780633408e470146101535780633e64a6961461016557806342cbb15c14610177575f80fd5b80630f28c97d146100dd578063174dea71146100fe578063252dba421461011e575b5f80fd5b3480156100e8575f80fd5b50425b6040519081526020015b60405180910390f35b61011161010c3660046108bc565b610242565b6040516100f591906109aa565b61013161012c3660046108bc565b610421565b6040516100f59291906109c3565b34801561014a575f80fd5b506100eb61058f565b34801561015e575f80fd5b50466100eb565b348015610170575f80fd5b50486100eb565b348015610182575f80fd5b50436100eb565b348015610194575f80fd5b506100eb6101a3366004610a2d565b6001600160a01b03163190565b6101c36101be3660046108bc565b6105a1565b6040516100f593929190610a53565b6101116101e03660046108bc565b6106e1565b3480156101f0575f80fd5b50456100eb565b348015610202575f80fd5b506040514181526020016100f5565b6101c361021f3660046108bc565b610858565b34801561022f575f80fd5b506100eb61023e366004610a7a565b4090565b60605f828067ffffffffffffffff81111561025f5761025f610a91565b6040519080825280602002602001820160405280156102a457816020015b604080518082019091525f81526060602082015281526020019060019003908161027d5790505b509250365f5b828110156103c3575f8582815181106102c5576102c5610aa5565b602002602001015190508787838181106102e1576102e1610aa5565b90506020028101906102f39190610ab9565b60408101359586019590935061030c6020850185610a2d565b6001600160a01b0316816103236060870187610ad7565b604051610331929190610b1a565b5f6040518083038185875af1925050503d805f811461036b576040519150601f19603f3d011682016040523d82523d5f602084013e610370565b606091505b50602084015215158083526040850135176103b9576308c379a05f5260208052601760405276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b6060526064601cfd5b50506001016102aa565b508234146104185760405162461bcd60e51b815260206004820152601a60248201527f4d756c746963616c6c333a2076616c7565206d69736d6174636800000000000060448201526064015b60405180910390fd5b50505092915050565b436060828067ffffffffffffffff81111561043e5761043e610a91565b60405190808252806020026020018201604052801561047157816020015b606081526020019060019003908161045c5790505b509150365f5b82811015610585575f87878381811061049257610492610aa5565b90506020028101906104a49190610b29565b92506104b36020840184610a2d565b6001600160a01b03166104c96020850185610ad7565b6040516104d7929190610b1a565b5f604051808303815f865af19150503d805f8114610510576040519150601f19603f3d011682016040523d82523d5f602084013e610515565b606091505b5086848151811061052857610528610aa5565b602090810291909101015290508061057c5760405162461bcd60e51b8152602060048201526017602482015276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b604482015260640161040f565b50600101610477565b5050509250929050565b5f61059b600143610b3d565b40905090565b4380406060838067ffffffffffffffff8111156105c0576105c0610a91565b60405190808252806020026020018201604052801561060557816020015b604080518082019091525f8152606060208201528152602001906001900390816105de5790505b509150365f5b828110156106d7575f84828151811061062657610626610aa5565b6020026020010151905088888381811061064257610642610aa5565b90506020028101906106549190610b29565b92506106636020840184610a2d565b6001600160a01b03166106796020850185610ad7565b604051610687929190610b1a565b5f604051808303815f865af19150503d805f81146106c0576040519150601f19603f3d011682016040523d82523d5f602084013e6106c5565b606091505b5060208301521515905260010161060b565b5050509250925092565b6060818067ffffffffffffffff8111156106fd576106fd610a91565b60405190808252806020026020018201604052801561074257816020015b604080518082019091525f81526060602082015281526020019060019003908161071b5790505b509150365f5b82811015610418575f84828151811061076357610763610aa5565b6020026020010151905086868381811061077f5761077f610aa5565b90506020028101906107919190610b62565b92506107a06020840184610a2d565b6001600160a01b03166107b66040850185610ad7565b6040516107c4929190610b1a565b5f604051808303815f865af19150503d805f81146107fd576040519150601f19603f3d011682016040523d82523d5f602084013e610802565b606091505b50602080840191909152901515808352908401351761084f576308c379a05f5260208052601760405276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b6060526064601cfd5b50600101610748565b5f80606061086685856105a1565b919790965090945092505050565b5f8083601f840112610884575f80fd5b50813567ffffffffffffffff81111561089b575f80fd5b6020830191508360208260051b85010111156108b5575f80fd5b9250929050565b5f80602083850312156108cd575f80fd5b823567ffffffffffffffff8111156108e3575f80fd5b6108ef85828601610874565b90969095509350505050565b5f81518084525f5b8181101561091f57602081850181015186830182015201610903565b505f602082860101526020601f19601f83011685010191505092915050565b5f82825180855260208086019550808260051b8401018186015f5b8481101561099d57858303601f1901895281518051151584528401516040858501819052610989818601836108fb565b9a86019a9450505090830190600101610959565b5090979650505050505050565b602081525f6109bc602083018461093e565b9392505050565b5f6040820184835260206040602085015281855180845260608601915060608160051b8701019350602087015f5b82811015610a1f57605f19888703018452610a0d8683516108fb565b955092840192908401906001016109f1565b509398975050505050505050565b5f60208284031215610a3d575f80fd5b81356001600160a01b03811681146109bc575f80fd5b838152826020820152606060408201525f610a71606083018461093e565b95945050505050565b5f60208284031215610a8a575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235607e19833603018112610acd575f80fd5b9190910192915050565b5f808335601e19843603018112610aec575f80fd5b83018035915067ffffffffffffffff821115610b06575f80fd5b6020019150368190038213156108b5575f80fd5b818382375f9101908152919050565b5f8235603e19833603018112610acd575f80fd5b81810381811115610b5c57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f8235605e19833603018112610acd575f80fdfea2646970667358221220bb11e950c879af03026e9485e60fd0f26ebc9b2d8a795a7bef9b04a85975460e64736f6c63430008180033","sourceMap":"497:4826:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4660:95;;;;;;;;;;-1:-1:-1;4737:15:0;4660:95;;;160:25:1;;;148:2;133:18;4660:95:0;;;;;;;;2537:1087;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;974:537::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;5054:99::-;;;;;;;;;;;;;:::i;5158:79::-;;;;;;;;;;-1:-1:-1;5221:13:0;5158:79;;5242;;;;;;;;;;-1:-1:-1;5305:13:0;5242:79;;4459:82;;;;;;;;;;-1:-1:-1;4526:12:0;4459:82;;4956:93;;;;;;;;;;-1:-1:-1;4956:93:0;;;;;:::i;:::-;-1:-1:-1;;;;;5034:12:0;;;4956:93;3863:590;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;1586:864::-;;;;;;:::i;:::-;;:::i;4760:93::-;;;;;;;;;;-1:-1:-1;4836:14:0;4760:93;;4858;;;;;;;;;;-1:-1:-1;4858:93:0;;4934:14;5553:51:1;;5541:2;5526:18;4858:93:0;5407:203:1;3630:227:0;;;;;;:::i;:::-;;:::i;4546:109::-;;;;;;;;;;-1:-1:-1;4546:109:0;;;;;:::i;:::-;4630:22;;4546:109;2537:1087;2617:26;2655:22;2704:5;;2739:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;2739:20:0;;;;;;;;;;;;;;;;2726:33;;2769:25;2809:9;2804:738;2828:6;2824:1;:10;2804:738;;;2852:20;2875:10;2886:1;2875:13;;;;;;;;:::i;:::-;;;;;;;2852:36;;2910:5;;2916:1;2910:8;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;2946:11;;;;2983:21;;;;2902:16;;-1:-1:-1;3058:12:0;;;;2902:16;3058:12;:::i;:::-;-1:-1:-1;;;;;3058:17:0;3083:3;3088:14;;;;:5;:14;:::i;:::-;3058:45;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3037:17:0;;;3020:83;;;;;;3181:4;3170:16;;3157:30;3154:49;3144:343;;3240:10;3234:4;3227:24;3285:4;3279;3272:18;3324:4;3318;3311:18;-1:-1:-1;;;3357:4:0;3350:80;3464:4;3458;3451:18;3144:343;-1:-1:-1;;3526:3:0;;2804:738;;;;3572:14;3559:9;:27;3551:66;;;;-1:-1:-1;;;3551:66:0;;7399:2:1;3551:66:0;;;7381:21:1;7438:2;7418:18;;;7411:30;7477:28;7457:18;;;7450:56;7523:18;;3551:66:0;;;;;;;;;2645:979;;;2537:1087;;;;:::o;974:537::-;1114:12;1063:25;1153:5;;1188:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1175:32;;1217:18;1250:9;1245:260;1269:6;1265:1;:10;1245:260;;;1293:12;1326:5;;1332:1;1326:8;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1319:15;-1:-1:-1;1375:11:0;;;;1319:15;1375:11;:::i;:::-;-1:-1:-1;;;;;1375:16:0;1392:13;;;;:4;:13;:::i;:::-;1375:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1358:10;1369:1;1358:13;;;;;;;;:::i;:::-;;;;;;;;;;1348:58;;-1:-1:-1;1348:58:0;1420:43;;;;-1:-1:-1;;;1420:43:0;;8077:2:1;1420:43:0;;;8059:21:1;8116:2;8096:18;;;8089:30;-1:-1:-1;;;8135:18:1;;;8128:53;8198:18;;1420:43:0;7875:347:1;1420:43:0;-1:-1:-1;1489:3:0;;1245:260;;;;1090:421;;974:537;;;;;:::o;5054:99::-;5105:7;5133:16;5148:1;5133:12;:16;:::i;:::-;5123:27;5116:34;;5054:99;:::o;3863:590::-;4032:12;4066:23;;3980:26;4116:5;;4151:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;4151:20:0;;;;;;;;;;;;;;;;4138:33;;4181:18;4214:9;4209:238;4233:6;4229:1;:10;4209:238;;;4257:20;4280:10;4291:1;4280:13;;;;;;;;:::i;:::-;;;;;;;4257:36;;4314:5;;4320:1;4314:8;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;4307:15;-1:-1:-1;4374:11:0;;;;4307:15;4374:11;:::i;:::-;-1:-1:-1;;;;;4374:16:0;4391:13;;;;:4;:13;:::i;:::-;4374:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4353:17:0;;;4336:69;;;;;4431:3;;4209:238;;;;4008:445;;3863:590;;;;;:::o;1586:864::-;1656:26;1711:5;;1746:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;1746:20:0;;;;;;;;;;;;;;;;1733:33;;1776:20;1811:9;1806:638;1830:6;1826:1;:10;1806:638;;;1854:20;1877:10;1888:1;1877:13;;;;;;;;:::i;:::-;;;;;;;1854:36;;1912:5;;1918:1;1912:8;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1904:16;-1:-1:-1;1972:12:0;;;;1904:16;1972:12;:::i;:::-;-1:-1:-1;;;;;1972:17:0;1990:14;;;;:5;:14;:::i;:::-;1972:33;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1951:17:0;;;;1934:71;;;;;;;;;;2072:16;;;2059:30;2056:49;2046:343;;2142:10;2136:4;2129:24;2187:4;2181;2174:18;2226:4;2220;2213:18;-1:-1:-1;;;2259:4:0;2252:80;2366:4;2360;2353:18;2046:343;-1:-1:-1;2428:3:0;;1806:638;;3630:227;3706:19;3727:17;3746:26;3823:27;3844:5;;3823:20;:27::i;:::-;3784:66;;;;-1:-1:-1;3784:66:0;;-1:-1:-1;3630:227:0;-1:-1:-1;;;3630:227:0:o;196:386:1:-;278:8;288:6;342:3;335:4;327:6;323:17;319:27;309:55;;360:1;357;350:12;309:55;-1:-1:-1;383:20:1;;426:18;415:30;;412:50;;;458:1;455;448:12;412:50;495:4;487:6;483:17;471:29;;555:3;548:4;538:6;535:1;531:14;523:6;519:27;515:38;512:47;509:67;;;572:1;569;562:12;509:67;196:386;;;;;:::o;587:484::-;701:6;709;762:2;750:9;741:7;737:23;733:32;730:52;;;778:1;775;768:12;730:52;818:9;805:23;851:18;843:6;840:30;837:50;;;883:1;880;873:12;837:50;922:89;1003:7;994:6;983:9;979:22;922:89;:::i;:::-;1030:8;;896:115;;-1:-1:-1;587:484:1;-1:-1:-1;;;;587:484:1:o;1076:422::-;1117:3;1155:5;1149:12;1182:6;1177:3;1170:19;1207:1;1217:162;1231:6;1228:1;1225:13;1217:162;;;1293:4;1349:13;;;1345:22;;1339:29;1321:11;;;1317:20;;1310:59;1246:12;1217:162;;;1221:3;1424:1;1417:4;1408:6;1403:3;1399:16;1395:27;1388:38;1487:4;1480:2;1476:7;1471:2;1463:6;1459:15;1455:29;1450:3;1446:39;1442:50;1435:57;;;1076:422;;;;:::o;1503:810::-;1562:3;1593;1625:5;1619:12;1652:6;1647:3;1640:19;1678:4;1707:2;1702:3;1698:12;1691:19;;1763:2;1753:6;1750:1;1746:14;1739:5;1735:26;1731:35;1800:2;1793:5;1789:14;1821:1;1831:456;1845:6;1842:1;1839:13;1831:456;;;1910:16;;;-1:-1:-1;;1906:30:1;1894:43;;1960:13;;2040:9;;2033:17;2026:25;2013:39;;2091:11;;2085:18;1996:4;2123:13;;;2116:25;;;2162:45;2193:13;;;2085:18;2162:45;:::i;:::-;2265:12;;;;2154:53;-1:-1:-1;;;2230:15:1;;;;1867:1;1860:9;1831:456;;;-1:-1:-1;2303:4:1;;1503:810;-1:-1:-1;;;;;;;1503:810:1:o;2318:311::-;2541:2;2530:9;2523:21;2504:4;2561:62;2619:2;2608:9;2604:18;2596:6;2561:62;:::i;:::-;2553:70;2318:311;-1:-1:-1;;;2318:311:1:o;3116:871::-;3304:4;3352:2;3341:9;3337:18;3382:6;3371:9;3364:25;3408:2;3446;3441;3430:9;3426:18;3419:30;3469:6;3504;3498:13;3535:6;3527;3520:22;3573:2;3562:9;3558:18;3551:25;;3635:2;3625:6;3622:1;3618:14;3607:9;3603:30;3599:39;3585:53;;3673:2;3665:6;3661:15;3694:1;3704:254;3718:6;3715:1;3712:13;3704:254;;;3811:2;3807:7;3795:9;3787:6;3783:22;3779:36;3774:3;3767:49;3839:39;3871:6;3862;3856:13;3839:39;:::i;:::-;3829:49;-1:-1:-1;3936:12:1;;;;3901:15;;;;3740:1;3733:9;3704:254;;;-1:-1:-1;3975:6:1;;3116:871;-1:-1:-1;;;;;;;;3116:871:1:o;4174:286::-;4233:6;4286:2;4274:9;4265:7;4261:23;4257:32;4254:52;;;4302:1;4299;4292:12;4254:52;4328:23;;-1:-1:-1;;;;;4380:31:1;;4370:42;;4360:70;;4426:1;4423;4416:12;4465:453;4744:6;4733:9;4726:25;4787:6;4782:2;4771:9;4767:18;4760:34;4830:2;4825;4814:9;4810:18;4803:30;4707:4;4850:62;4908:2;4897:9;4893:18;4885:6;4850:62;:::i;:::-;4842:70;4465:453;-1:-1:-1;;;;;4465:453:1:o;5615:180::-;5674:6;5727:2;5715:9;5706:7;5702:23;5698:32;5695:52;;;5743:1;5740;5733:12;5695:52;-1:-1:-1;5766:23:1;;5615:180;-1:-1:-1;5615:180:1:o;5800:127::-;5861:10;5856:3;5852:20;5849:1;5842:31;5892:4;5889:1;5882:15;5916:4;5913:1;5906:15;5932:127;5993:10;5988:3;5984:20;5981:1;5974:31;6024:4;6021:1;6014:15;6048:4;6045:1;6038:15;6064:326;6158:4;6216:11;6203:25;6310:3;6306:8;6295;6279:14;6275:29;6271:44;6251:18;6247:69;6237:97;;6330:1;6327;6320:12;6237:97;6351:33;;;;;6064:326;-1:-1:-1;;6064:326:1:o;6395:521::-;6472:4;6478:6;6538:11;6525:25;6632:2;6628:7;6617:8;6601:14;6597:29;6593:43;6573:18;6569:68;6559:96;;6651:1;6648;6641:12;6559:96;6678:33;;6730:20;;;-1:-1:-1;6773:18:1;6762:30;;6759:50;;;6805:1;6802;6795:12;6759:50;6838:4;6826:17;;-1:-1:-1;6869:14:1;6865:27;;;6855:38;;6852:58;;;6906:1;6903;6896:12;6921:271;7104:6;7096;7091:3;7078:33;7060:3;7130:16;;7155:13;;;7130:16;6921:271;-1:-1:-1;6921:271:1:o;7552:318::-;7639:4;7697:11;7684:25;7791:2;7787:7;7776:8;7760:14;7756:29;7752:43;7732:18;7728:68;7718:96;;7810:1;7807;7800:12;8227:225;8294:9;;;8315:11;;;8312:134;;;8368:10;8363:3;8359:20;8356:1;8349:31;8403:4;8400:1;8393:15;8431:4;8428:1;8421:15;8312:134;8227:225;;;;:::o;8457:320::-;8546:4;8604:11;8591:25;8698:2;8694:7;8683:8;8667:14;8663:29;8659:43;8639:18;8635:68;8625:96;;8717:1;8714;8707:12","linkReferences":{}},"methodIdentifiers":{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getLastBlockHash()":"27e86d6e","tryBlockAndAggregate((address,bytes)[])":"696e8cc9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"returnData\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Call3[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Call3Value[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3Value\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"blockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBasefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockCoinbase\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getEthBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryBlockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Matt Solomon (upstream) - vendored verbatim by Sentrix Labs\",\"details\":\"Mirror of github.com/mds1/multicall (canonical address 0xcA11bde05977b3631167028862bE2a173976CA11 across most chains). Reproduced here verbatim to keep the canonical-contracts repo self-contained. License preserved (MIT - owner: Matt Solomon).\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Multicall3\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"aggregate((address,bytes)[])\":{\"notice\":\"Backwards-compatible aggregate (reverts on any failure).\"},\"aggregate3((address,bool,bytes)[])\":{\"notice\":\"Aggregate calls; per-call failure mode controllable.\"},\"aggregate3Value((address,bool,uint256,bytes)[])\":{\"notice\":\"Aggregate calls with values; per-call failure mode controllable.\"}},\"notice\":\"Aggregate read/write contract calls into a single tx.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Multicall3.sol\":\"Multicall3\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/openzeppelin-contracts/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"contracts/Multicall3.sol\":{\"keccak256\":\"0x5b1e6762717d8c4f48bcca83a344d6ca2904255b9c165027ad5087b8029d3f8a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://995a0180233f3900f4ac18b40820f923e6c110963c66b75194b28a7045b53cd3\",\"dweb:/ipfs/QmWupN7d78uAJoRyCYuMJZtA8TuSxZSusSntUyp2N6mCgE\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Multicall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}]},{"inputs":[{"internalType":"struct Multicall3.Call3[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3","outputs":[{"internalType":"struct Multicall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct Multicall3.Call3Value[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3Value","outputs":[{"internalType":"struct Multicall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct Multicall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"blockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct Multicall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBasefee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockCoinbase","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockGasLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"view","type":"function","name":"getEthBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastBlockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Multicall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryBlockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct Multicall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"aggregate((address,bytes)[])":{"notice":"Backwards-compatible aggregate (reverts on any failure)."},"aggregate3((address,bool,bytes)[])":{"notice":"Aggregate calls; per-call failure mode controllable."},"aggregate3Value((address,bool,uint256,bytes)[])":{"notice":"Aggregate calls with values; per-call failure mode controllable."}},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/openzeppelin-contracts/","forge-std/=lib/forge-std/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/Multicall3.sol":"Multicall3"},"evmVersion":"cancun","libraries":{}},"sources":{"contracts/Multicall3.sol":{"keccak256":"0x5b1e6762717d8c4f48bcca83a344d6ca2904255b9c165027ad5087b8029d3f8a","urls":["bzz-raw://995a0180233f3900f4ac18b40820f923e6c110963c66b75194b28a7045b53cd3","dweb:/ipfs/QmWupN7d78uAJoRyCYuMJZtA8TuSxZSusSntUyp2N6mCgE"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"id":0}
@@ -0,0 +1 @@
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"_owners","type":"address[]","internalType":"address[]"},{"name":"_threshold","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"addOwner","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"_threshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"checkSignatures","inputs":[{"name":"dataHash","type":"bytes32","internalType":"bytes32"},{"name":"signatures","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"view"},{"type":"function","name":"execTransaction","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint256","internalType":"uint256"},{"name":"signatures","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOwners","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getTransactionHash","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint256","internalType":"uint256"},{"name":"_nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isOwner","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owners","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeOwner","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"_threshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"threshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AddedOwner","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ChangedThreshold","inputs":[{"name":"threshold","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ExecutionFailure","inputs":[{"name":"txHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ExecutionSuccess","inputs":[{"name":"txHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RemovedOwner","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x60a060405234801562000010575f80fd5b50604051620012a1380380620012a1833981016040819052620000339162000343565b5f8251116200007b5760405162461bcd60e51b815260206004820152600f60248201526e536166653a206e6f206f776e65727360881b60448201526064015b60405180910390fd5b5f811180156200008c575081518111155b620000da5760405162461bcd60e51b815260206004820152601760248201527f536166653a20696e76616c6964207468726573686f6c64000000000000000000604482015260640162000072565b5f5b82518110156200027b575f838281518110620000fc57620000fc62000418565b602002602001015190505f6001600160a01b0316816001600160a01b0316141580156200013257506001600160a01b0381163014155b620001805760405162461bcd60e51b815260206004820152601360248201527f536166653a20696e76616c6964206f776e657200000000000000000000000000604482015260640162000072565b6001600160a01b0381165f9081526001602052604090205460ff1615620001ea5760405162461bcd60e51b815260206004820152601560248201527f536166653a206475706c6963617465206f776e65720000000000000000000000604482015260640162000072565b6001600160a01b0381165f818152600160208190526040808320805460ff191683179055825491820183558280527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390910180546001600160a01b03191684179055517f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea269190a250600101620000dc565b5060028190556040518181527f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c939060200160405180910390a1604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692186020820152469181019190915230606082015260800160408051601f198184030181529190528051602090910120608052506200042c9050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b03811681146200033e575f80fd5b919050565b5f806040838503121562000355575f80fd5b82516001600160401b03808211156200036c575f80fd5b818501915085601f83011262000380575f80fd5b815160208282111562000397576200039762000313565b8160051b604051601f19603f83011681018181108682111715620003bf57620003bf62000313565b604052928352818301935084810182019289841115620003dd575f80fd5b948201945b838610156200040657620003f68662000327565b85529482019493820193620003e2565b97909101519698969750505050505050565b634e487b7160e01b5f52603260045260245ffd5b608051610e556200044c5f395f8181610133015261055c0152610e555ff3fe60806040526004361061009d575f3560e01c8063a0e67e2b11610062578063a0e67e2b14610199578063acb5d878146101ba578063affed0e0146101d9578063b9a70800146101ee578063bfd2b3a31461020d578063ed516d511461022c575f80fd5b8063025e7c27146100a85780632f54bf6e146100e45780633644e515146101225780633cc38f5c1461016357806342cde4e814610184575f80fd5b366100a457005b5f80fd5b3480156100b3575f80fd5b506100c76100c2366004610b45565b61024b565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ef575f80fd5b506101126100fe366004610b77565b60016020525f908152604090205460ff1681565b60405190151581526020016100db565b34801561012d575f80fd5b506101557f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100db565b34801561016e575f80fd5b5061018261017d366004610b97565b610272565b005b34801561018f575f80fd5b5061015560025481565b3480156101a4575f80fd5b506101ad61045c565b6040516100db9190610bbf565b3480156101c5575f80fd5b506101556101d4366004610c50565b6104bb565b3480156101e4575f80fd5b5061015560035481565b3480156101f9575f80fd5b50610112610208366004610cb7565b6105ac565b348015610218575f80fd5b50610182610227366004610b97565b6106f3565b348015610237575f80fd5b50610182610246366004610d44565b610980565b5f8181548110610259575f80fd5b5f918252602090912001546001600160a01b0316905081565b3330146102bd5760405162461bcd60e51b8152602060048201526014602482015273536166653a2073656c662d63616c6c206f6e6c7960601b60448201526064015b60405180910390fd5b6001600160a01b038216158015906102ed57506001600160a01b0382165f9081526001602052604090205460ff16155b6103395760405162461bcd60e51b815260206004820152601f60248201527f536166653a20696e76616c6964206f72206578697374696e67206f776e65720060448201526064016102b4565b6001600160a01b0382165f818152600160208190526040808320805460ff191683179055825491820183558280527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390910180546001600160a01b03191684179055517f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea269190a26002548114610458575f811180156103d957505f548111155b61041f5760405162461bcd60e51b815260206004820152601760248201527614d859994e881a5b9d985b1a59081d1a1c995cda1bdb19604a1b60448201526064016102b4565b60028190556040518181527f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c939060200160405180910390a15b5050565b60605f8054806020026020016040519081016040528092919081815260200182805480156104b157602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610493575b5050505050905090565b5f807f5553e4367bafa92a78ae01cd18badacf31df5f9d2b60b8a635fda8a3d2e5afb8888888886040516104f0929190610d8c565b60405190819003812061053894939291899089906020019586526001600160a01b0394909416602086015260408501929092526060840152608083015260a082015260c00190565b60408051808303601f19018152828252805160209182012061190160f01b828501527f00000000000000000000000000000000000000000000000000000000000000006022850152604280850191909152825180850390910181526062909301909152815191012098975050505050505050565b5f806105be89898989896003546104bb565b90506105cb818585610980565b60038054905f6105da83610daf565b9190505550846001036105f757865f8088838d5af4925050610657565b886001600160a01b0316888888604051610612929190610d8c565b5f6040518083038185875af1925050503d805f811461064c576040519150601f19603f3d011682016040523d82523d5f602084013e610651565b606091505b50909250505b81156106a457807f442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e600160035461068e9190610dc7565b60405190815260200160405180910390a26106e7565b807f23428b18acfb3ea64b08dc0c1d296ea9c09702c09083ca5272e64d115b687d2360016003546106d59190610dc7565b60405190815260200160405180910390a25b50979650505050505050565b3330146107395760405162461bcd60e51b8152602060048201526014602482015273536166653a2073656c662d63616c6c206f6e6c7960601b60448201526064016102b4565b6001600160a01b0382165f9081526001602052604090205460ff166107925760405162461bcd60e51b815260206004820152600f60248201526e29b0b3329d103737ba1037bbb732b960891b60448201526064016102b4565b5f5481906107a290600190610dc7565b10156107f05760405162461bcd60e51b815260206004820152601860248201527f536166653a207468726573686f6c6420746f6f2068696768000000000000000060448201526064016102b4565b6001600160a01b0382165f908152600160205260408120805460ff191690555b5f548110156108fa57826001600160a01b03165f828154811061083557610835610de0565b5f918252602090912001546001600160a01b0316036108f2575f805461085d90600190610dc7565b8154811061086d5761086d610de0565b5f91825260208220015481546001600160a01b0390911691908390811061089657610896610de0565b5f918252602082200180546001600160a01b0319166001600160a01b0393909316929092179091558054806108cd576108cd610df4565b5f8281526020902081015f1990810180546001600160a01b03191690550190556108fa565b600101610810565b506040516001600160a01b038316907ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf905f90a26002548114610458575f811161041f5760405162461bcd60e51b815260206004820152601760248201527614d859994e881a5b9d985b1a59081d1a1c995cda1bdb19604a1b60448201526064016102b4565b60025461098e816041610e08565b8210156109dd5760405162461bcd60e51b815260206004820152601a60248201527f536166653a207369676e61747572657320746f6f2073686f727400000000000060448201526064016102b4565b5f805b82811015610ac2575f6109f587878785610aca565b9050826001600160a01b0316816001600160a01b031611610a585760405162461bcd60e51b815260206004820152601b60248201527f536166653a207369676e617475726573206e6f7420736f72746564000000000060448201526064016102b4565b6001600160a01b0381165f9081526001602052604090205460ff16610ab85760405162461bcd60e51b815260206004820152601660248201527529b0b3329d1039b4b3b732b9103737ba1037bbb732b960511b60448201526064016102b4565b91506001016109e0565b505050505050565b604080515f808252602080830180855288905260418502870180850135831a9484018590528035606085018190529101356080840181905291939290919060019060a0016020604051602081039080840390855afa158015610b2e573d5f803e3d5ffd5b5050604051601f1901519998505050505050505050565b5f60208284031215610b55575f80fd5b5035919050565b80356001600160a01b0381168114610b72575f80fd5b919050565b5f60208284031215610b87575f80fd5b610b9082610b5c565b9392505050565b5f8060408385031215610ba8575f80fd5b610bb183610b5c565b946020939093013593505050565b602080825282518282018190525f9190848201906040850190845b81811015610bff5783516001600160a01b031683529284019291840191600101610bda565b50909695505050505050565b5f8083601f840112610c1b575f80fd5b50813567ffffffffffffffff811115610c32575f80fd5b602083019150836020828501011115610c49575f80fd5b9250929050565b5f805f805f8060a08789031215610c65575f80fd5b610c6e87610b5c565b955060208701359450604087013567ffffffffffffffff811115610c90575f80fd5b610c9c89828a01610c0b565b979a9699509760608101359660809091013595509350505050565b5f805f805f805f60a0888a031215610ccd575f80fd5b610cd688610b5c565b965060208801359550604088013567ffffffffffffffff80821115610cf9575f80fd5b610d058b838c01610c0b565b909750955060608a0135945060808a0135915080821115610d24575f80fd5b50610d318a828b01610c0b565b989b979a50959850939692959293505050565b5f805f60408486031215610d56575f80fd5b83359250602084013567ffffffffffffffff811115610d73575f80fd5b610d7f86828701610c0b565b9497909650939450505050565b818382375f9101908152919050565b634e487b7160e01b5f52601160045260245ffd5b5f60018201610dc057610dc0610d9b565b5060010190565b81810381811115610dda57610dda610d9b565b92915050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b8082028115828204841417610dda57610dda610d9b56fea2646970667358221220d47ff8950f7c047900c5e1554c931623ddebaf8e8974fc20ac15dccb442b998064736f6c63430008180033","sourceMap":"515:6567:0:-:0;;;1651:886;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1744:1;1727:7;:14;:18;1719:46;;;;-1:-1:-1;;;1719:46:0;;1727:2:1;1719:46:0;;;1709:21:1;1766:2;1746:18;;;1739:30;-1:-1:-1;;;1785:18:1;;;1778:45;1840:18;;1719:46:0;;;;;;;;;1796:1;1783:10;:14;:46;;;;;1815:7;:14;1801:10;:28;;1783:46;1775:82;;;;-1:-1:-1;;;1775:82:0;;2071:2:1;1775:82:0;;;2053:21:1;2110:2;2090:18;;;2083:30;2149:25;2129:18;;;2122:53;2192:18;;1775:82:0;1869:347:1;1775:82:0;1873:9;1868:353;1892:7;:14;1888:1;:18;1868:353;;;1927:13;1943:7;1951:1;1943:10;;;;;;;;:::i;:::-;;;;;;;1927:26;;1992:1;-1:-1:-1;;;;;1975:19:0;:5;-1:-1:-1;;;;;1975:19:0;;;:45;;;;-1:-1:-1;;;;;;1998:22:0;;2015:4;1998:22;;1975:45;1967:77;;;;-1:-1:-1;;;1967:77:0;;2555:2:1;1967:77:0;;;2537:21:1;2594:2;2574:18;;;2567:30;2633:21;2613:18;;;2606:49;2672:18;;1967:77:0;2353:343:1;1967:77:0;-1:-1:-1;;;;;2067:14:0;;;;;;:7;:14;;;;;;;;2066:15;2058:49;;;;-1:-1:-1;;;2058:49:0;;2903:2:1;2058:49:0;;;2885:21:1;2942:2;2922:18;;;2915:30;2981:23;2961:18;;;2954:51;3022:18;;2058:49:0;2701:345:1;2058:49:0;-1:-1:-1;;;;;2121:14:0;;;;;;2138:4;2121:14;;;;;;;;:21;;-1:-1:-1;;2121:21:0;;;;;2156:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2156:18:0;;;;;2193:17;;;2121:14;2193:17;-1:-1:-1;1908:3:0;;1868:353;;;-1:-1:-1;2230:9:0;:22;;;2267:28;;3197:25:1;;;2267:28:0;;3185:2:1;3170:18;2267:28:0;;;;;;;2348:172;;;2376:68;2348:172;;;3435:25:1;2462:13:0;3476:18:1;;;3469:34;;;;2501:4:0;3519:18:1;;;3512:60;3408:18;;2348:172:0;;;-1:-1:-1;;2348:172:0;;;;;;;;;2325:205;;2348:172;2325:205;;;;2306:224;;-1:-1:-1;515:6567:0;;-1:-1:-1;515:6567:0;14:127:1;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:177;225:13;;-1:-1:-1;;;;;267:31:1;;257:42;;247:70;;313:1;310;303:12;247:70;146:177;;;:::o;328:1192::-;432:6;440;493:2;481:9;472:7;468:23;464:32;461:52;;;509:1;506;499:12;461:52;536:16;;-1:-1:-1;;;;;601:14:1;;;598:34;;;628:1;625;618:12;598:34;666:6;655:9;651:22;641:32;;711:7;704:4;700:2;696:13;692:27;682:55;;733:1;730;723:12;682:55;762:2;756:9;784:4;807:2;803;800:10;797:36;;;813:18;;:::i;:::-;859:2;856:1;852:10;891:2;885:9;954:2;950:7;945:2;941;937:11;933:25;925:6;921:38;1009:6;997:10;994:22;989:2;977:10;974:18;971:46;968:72;;;1020:18;;:::i;:::-;1056:2;1049:22;1106:18;;;1140:15;;;;-1:-1:-1;1182:11:1;;;1178:20;;;1210:19;;;1207:39;;;1242:1;1239;1232:12;1207:39;1266:11;;;;1286:159;1302:6;1297:3;1294:15;1286:159;;;1368:34;1398:3;1368:34;:::i;:::-;1356:47;;1319:12;;;;1423;;;;1286:159;;;1495:18;;;;1489:25;1464:6;;1489:25;;-1:-1:-1;;;;;;;328:1192:1:o;2221:127::-;2282:10;2277:3;2273:20;2270:1;2263:31;2313:4;2310:1;2303:15;2337:4;2334:1;2327:15;3233:345;515:6567:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061009d575f3560e01c8063a0e67e2b11610062578063a0e67e2b14610199578063acb5d878146101ba578063affed0e0146101d9578063b9a70800146101ee578063bfd2b3a31461020d578063ed516d511461022c575f80fd5b8063025e7c27146100a85780632f54bf6e146100e45780633644e515146101225780633cc38f5c1461016357806342cde4e814610184575f80fd5b366100a457005b5f80fd5b3480156100b3575f80fd5b506100c76100c2366004610b45565b61024b565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ef575f80fd5b506101126100fe366004610b77565b60016020525f908152604090205460ff1681565b60405190151581526020016100db565b34801561012d575f80fd5b506101557f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100db565b34801561016e575f80fd5b5061018261017d366004610b97565b610272565b005b34801561018f575f80fd5b5061015560025481565b3480156101a4575f80fd5b506101ad61045c565b6040516100db9190610bbf565b3480156101c5575f80fd5b506101556101d4366004610c50565b6104bb565b3480156101e4575f80fd5b5061015560035481565b3480156101f9575f80fd5b50610112610208366004610cb7565b6105ac565b348015610218575f80fd5b50610182610227366004610b97565b6106f3565b348015610237575f80fd5b50610182610246366004610d44565b610980565b5f8181548110610259575f80fd5b5f918252602090912001546001600160a01b0316905081565b3330146102bd5760405162461bcd60e51b8152602060048201526014602482015273536166653a2073656c662d63616c6c206f6e6c7960601b60448201526064015b60405180910390fd5b6001600160a01b038216158015906102ed57506001600160a01b0382165f9081526001602052604090205460ff16155b6103395760405162461bcd60e51b815260206004820152601f60248201527f536166653a20696e76616c6964206f72206578697374696e67206f776e65720060448201526064016102b4565b6001600160a01b0382165f818152600160208190526040808320805460ff191683179055825491820183558280527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390910180546001600160a01b03191684179055517f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea269190a26002548114610458575f811180156103d957505f548111155b61041f5760405162461bcd60e51b815260206004820152601760248201527614d859994e881a5b9d985b1a59081d1a1c995cda1bdb19604a1b60448201526064016102b4565b60028190556040518181527f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c939060200160405180910390a15b5050565b60605f8054806020026020016040519081016040528092919081815260200182805480156104b157602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610493575b5050505050905090565b5f807f5553e4367bafa92a78ae01cd18badacf31df5f9d2b60b8a635fda8a3d2e5afb8888888886040516104f0929190610d8c565b60405190819003812061053894939291899089906020019586526001600160a01b0394909416602086015260408501929092526060840152608083015260a082015260c00190565b60408051808303601f19018152828252805160209182012061190160f01b828501527f00000000000000000000000000000000000000000000000000000000000000006022850152604280850191909152825180850390910181526062909301909152815191012098975050505050505050565b5f806105be89898989896003546104bb565b90506105cb818585610980565b60038054905f6105da83610daf565b9190505550846001036105f757865f8088838d5af4925050610657565b886001600160a01b0316888888604051610612929190610d8c565b5f6040518083038185875af1925050503d805f811461064c576040519150601f19603f3d011682016040523d82523d5f602084013e610651565b606091505b50909250505b81156106a457807f442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e600160035461068e9190610dc7565b60405190815260200160405180910390a26106e7565b807f23428b18acfb3ea64b08dc0c1d296ea9c09702c09083ca5272e64d115b687d2360016003546106d59190610dc7565b60405190815260200160405180910390a25b50979650505050505050565b3330146107395760405162461bcd60e51b8152602060048201526014602482015273536166653a2073656c662d63616c6c206f6e6c7960601b60448201526064016102b4565b6001600160a01b0382165f9081526001602052604090205460ff166107925760405162461bcd60e51b815260206004820152600f60248201526e29b0b3329d103737ba1037bbb732b960891b60448201526064016102b4565b5f5481906107a290600190610dc7565b10156107f05760405162461bcd60e51b815260206004820152601860248201527f536166653a207468726573686f6c6420746f6f2068696768000000000000000060448201526064016102b4565b6001600160a01b0382165f908152600160205260408120805460ff191690555b5f548110156108fa57826001600160a01b03165f828154811061083557610835610de0565b5f918252602090912001546001600160a01b0316036108f2575f805461085d90600190610dc7565b8154811061086d5761086d610de0565b5f91825260208220015481546001600160a01b0390911691908390811061089657610896610de0565b5f918252602082200180546001600160a01b0319166001600160a01b0393909316929092179091558054806108cd576108cd610df4565b5f8281526020902081015f1990810180546001600160a01b03191690550190556108fa565b600101610810565b506040516001600160a01b038316907ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf905f90a26002548114610458575f811161041f5760405162461bcd60e51b815260206004820152601760248201527614d859994e881a5b9d985b1a59081d1a1c995cda1bdb19604a1b60448201526064016102b4565b60025461098e816041610e08565b8210156109dd5760405162461bcd60e51b815260206004820152601a60248201527f536166653a207369676e61747572657320746f6f2073686f727400000000000060448201526064016102b4565b5f805b82811015610ac2575f6109f587878785610aca565b9050826001600160a01b0316816001600160a01b031611610a585760405162461bcd60e51b815260206004820152601b60248201527f536166653a207369676e617475726573206e6f7420736f72746564000000000060448201526064016102b4565b6001600160a01b0381165f9081526001602052604090205460ff16610ab85760405162461bcd60e51b815260206004820152601660248201527529b0b3329d1039b4b3b732b9103737ba1037bbb732b960511b60448201526064016102b4565b91506001016109e0565b505050505050565b604080515f808252602080830180855288905260418502870180850135831a9484018590528035606085018190529101356080840181905291939290919060019060a0016020604051602081039080840390855afa158015610b2e573d5f803e3d5ffd5b5050604051601f1901519998505050505050505050565b5f60208284031215610b55575f80fd5b5035919050565b80356001600160a01b0381168114610b72575f80fd5b919050565b5f60208284031215610b87575f80fd5b610b9082610b5c565b9392505050565b5f8060408385031215610ba8575f80fd5b610bb183610b5c565b946020939093013593505050565b602080825282518282018190525f9190848201906040850190845b81811015610bff5783516001600160a01b031683529284019291840191600101610bda565b50909695505050505050565b5f8083601f840112610c1b575f80fd5b50813567ffffffffffffffff811115610c32575f80fd5b602083019150836020828501011115610c49575f80fd5b9250929050565b5f805f805f8060a08789031215610c65575f80fd5b610c6e87610b5c565b955060208701359450604087013567ffffffffffffffff811115610c90575f80fd5b610c9c89828a01610c0b565b979a9699509760608101359660809091013595509350505050565b5f805f805f805f60a0888a031215610ccd575f80fd5b610cd688610b5c565b965060208801359550604088013567ffffffffffffffff80821115610cf9575f80fd5b610d058b838c01610c0b565b909750955060608a0135945060808a0135915080821115610d24575f80fd5b50610d318a828b01610c0b565b989b979a50959850939692959293505050565b5f805f60408486031215610d56575f80fd5b83359250602084013567ffffffffffffffff811115610d73575f80fd5b610d7f86828701610c0b565b9497909650939450505050565b818382375f9101908152919050565b634e487b7160e01b5f52601160045260245ffd5b5f60018201610dc057610dc0610d9b565b5060010190565b81810381811115610dda57610dda610d9b565b92915050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b8082028115828204841417610dda57610dda610d9b56fea2646970667358221220d47ff8950f7c047900c5e1554c931623ddebaf8e8974fc20ac15dccb442b998064736f6c63430008180033","sourceMap":"515:6567:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;703:23;;;;;;;;;;-1:-1:-1;703:23:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;363:32:1;;;345:51;;333:2;318:18;703:23:0;;;;;;;;732:39;;;;;;;;;;-1:-1:-1;732:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;941:14:1;;934:22;916:41;;904:2;889:18;732:39:0;776:187:1;866:41:0;;;;;;;;;;;;;;;;;;1114:25:1;;;1102:2;1087:18;866:41:0;968:177:1;5667:549:0;;;;;;;;;;-1:-1:-1;5667:549:0;;;;;:::i;:::-;;:::i;:::-;;777:24;;;;;;;;;;;;;;;;6988:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4944:474::-;;;;;;;;;;-1:-1:-1;4944:474:0;;;;;:::i;:::-;;:::i;807:20::-;;;;;;;;;;;;;;;;2980:785;;;;;;;;;;-1:-1:-1;2980:785:0;;;;;:::i;:::-;;:::i;6222:760::-;;;;;;;;;;-1:-1:-1;6222:760:0;;;;;:::i;:::-;;:::i;3902:577::-;;;;;;;;;;-1:-1:-1;3902:577:0;;;;;:::i;:::-;;:::i;703:23::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;703:23:0;;-1:-1:-1;703:23:0;:::o;5667:549::-;5747:10;5769:4;5747:27;5739:60;;;;-1:-1:-1;;;5739:60:0;;4918:2:1;5739:60:0;;;4900:21:1;4957:2;4937:18;;;4930:30;-1:-1:-1;;;4976:18:1;;;4969:50;5036:18;;5739:60:0;;;;;;;;;-1:-1:-1;;;;;5817:19:0;;;;;;:38;;-1:-1:-1;;;;;;5841:14:0;;;;;;:7;:14;;;;;;;;5840:15;5817:38;5809:82;;;;-1:-1:-1;;;5809:82:0;;5267:2:1;5809:82:0;;;5249:21:1;5306:2;5286:18;;;5279:30;5345:33;5325:18;;;5318:61;5396:18;;5809:82:0;5065:355:1;5809:82:0;-1:-1:-1;;;;;5901:14:0;;;;;;5918:4;5901:14;;;;;;;;:21;;-1:-1:-1;;5901:21:0;;;;;5932:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5932:18:0;;;;;5965:17;;;5901:14;5965:17;6010:9;;5996:10;:23;5992:218;;6056:1;6043:10;:14;:45;;;;-1:-1:-1;6075:6:0;:13;6061:27;;;6043:45;6035:81;;;;-1:-1:-1;;;6035:81:0;;5627:2:1;6035:81:0;;;5609:21:1;5666:2;5646:18;;;5639:30;-1:-1:-1;;;5685:18:1;;;5678:53;5748:18;;6035:81:0;5425:347:1;6035:81:0;6130:9;:22;;;6171:28;;1114:25:1;;;6171:28:0;;1102:2:1;1087:18;6171:28:0;;;;;;;5992:218;5667:549;;:::o;6988:92::-;7032:16;7067:6;7060:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7060:13:0;;;;;;;;;;;;;;;;;;;;;;;6988:92;:::o;4944:474::-;5122:7;5141:18;952:102;5221:2;5237:5;5266:4;;5256:15;;;;;;;:::i;:::-;;;;;;;;;5172:152;;;;;5285:9;;5308:6;;5172:152;;6340:25:1;;;-1:-1:-1;;;;;6401:32:1;;;;6396:2;6381:18;;6374:60;6465:2;6450:18;;6443:34;;;;6508:2;6493:18;;6486:34;6551:3;6536:19;;6529:35;6421:3;6580:19;;6573:35;6327:3;6312:19;;6053:561;5172:152:0;;;;;;;-1:-1:-1;;5172:152:0;;;;;;5162:163;;5172:152;5162:163;;;;-1:-1:-1;;;5352:58:0;;;6877:27:1;5381:16:0;6920:11:1;;;6913:27;6956:12;;;;6949:28;;;;5352:58:0;;;;;;;;;;6993:12:1;;;;5352:58:0;;;5342:69;;;;;;4944:474;-1:-1:-1;;;;;;;;4944:474:0:o;2980:785::-;3163:12;3187:14;3204:53;3223:2;3227:5;3234:4;;3240:9;3251:5;;3204:18;:53::i;:::-;3187:70;;3267:35;3283:6;3291:10;;3267:15;:35::i;:::-;3312:5;:7;;;:5;:7;;;:::i;:::-;;;;;;3334:9;3347:1;3334:14;3330:270;;3410:11;3423:1;;3486:11;3410;3473:2;3466:5;3453:51;3442:62;;;3330:270;;;3562:2;-1:-1:-1;;;;;3562:7:0;3577:5;3584:4;;3562:27;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3548:41:0;;-1:-1:-1;;3330:270:0;3614:7;3610:149;;;3659:6;3642:35;3675:1;3667:5;;:9;;;;:::i;:::-;3642:35;;1114:25:1;;;1102:2;1087:18;3642:35:0;;;;;;;3610:149;;;3730:6;3713:35;3746:1;3738:5;;:9;;;;:::i;:::-;3713:35;;1114:25:1;;;1102:2;1087:18;3713:35:0;;;;;;;3610:149;3177:588;2980:785;;;;;;;;;:::o;6222:760::-;6305:10;6327:4;6305:27;6297:60;;;;-1:-1:-1;;;6297:60:0;;4918:2:1;6297:60:0;;;4900:21:1;4957:2;4937:18;;;4930:30;-1:-1:-1;;;4976:18:1;;;4969:50;5036:18;;6297:60:0;4716:344:1;6297:60:0;-1:-1:-1;;;;;6375:14:0;;;;;;:7;:14;;;;;;;;6367:42;;;;-1:-1:-1;;;6367:42:0;;7623:2:1;6367:42:0;;;7605:21:1;7662:2;7642:18;;;7635:30;-1:-1:-1;;;7681:18:1;;;7674:45;7736:18;;6367:42:0;7421:339:1;6367:42:0;6427:6;:13;6448:10;;6427:17;;6443:1;;6427:17;:::i;:::-;:31;;6419:68;;;;-1:-1:-1;;;6419:68:0;;7967:2:1;6419:68:0;;;7949:21:1;8006:2;7986:18;;;7979:30;8045:26;8025:18;;;8018:54;8089:18;;6419:68:0;7765:348:1;6419:68:0;-1:-1:-1;;;;;6498:14:0;;6515:5;6498:14;;;:7;:14;;;;;:22;;-1:-1:-1;;6498:22:0;;;6530:215;6554:6;:13;6550:17;;6530:215;;;6605:5;-1:-1:-1;;;;;6592:18:0;:6;6599:1;6592:9;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;6592:9:0;:18;6588:147;;6642:6;6649:13;;:17;;6665:1;;6649:17;:::i;:::-;6642:25;;;;;;;;:::i;:::-;;;;;;;;;;6630:9;;-1:-1:-1;;;;;6642:25:0;;;;;6637:1;;6630:9;;;;;;:::i;:::-;;;;;;;;;:37;;-1:-1:-1;;;;;;6630:37:0;-1:-1:-1;;;;;6630:37:0;;;;;;;;;;;6685:12;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;6685:12:0;;;;;-1:-1:-1;;;;;;6685:12:0;;;;;;6715:5;;6588:147;6569:3;;6530:215;;;-1:-1:-1;6759:19:0;;-1:-1:-1;;;;;6759:19:0;;;;;;;;6807:9;;6793:10;:23;6789:187;;6853:1;6840:10;:14;6832:50;;;;-1:-1:-1;;;6832:50:0;;5627:2:1;6832:50:0;;;5609:21:1;5666:2;5646:18;;;5639:30;-1:-1:-1;;;5685:18:1;;;5678:53;5748:18;;6832:50:0;5425:347:1;3902:577:0;4015:9;;4063:15;4015:9;4076:2;4063:15;:::i;:::-;4042:36;;;4034:75;;;;-1:-1:-1;;;4034:75:0;;8757:2:1;4034:75:0;;;8739:21:1;8796:2;8776:18;;;8769:30;8835:28;8815:18;;;8808:56;8881:18;;4034:75:0;8555:350:1;4034:75:0;4120:17;4165:9;4160:313;4184:10;4180:1;:14;4160:313;;;4215:20;4238:38;4252:8;4262:10;;4274:1;4238:13;:38::i;:::-;4215:61;;4313:9;-1:-1:-1;;;;;4298:24:0;:12;-1:-1:-1;;;;;4298:24:0;;4290:64;;;;-1:-1:-1;;;4290:64:0;;9112:2:1;4290:64:0;;;9094:21:1;9151:2;9131:18;;;9124:30;9190:29;9170:18;;;9163:57;9237:18;;4290:64:0;8910:351:1;4290:64:0;-1:-1:-1;;;;;4376:21:0;;;;;;:7;:21;;;;;;;;4368:56;;;;-1:-1:-1;;;4368:56:0;;9468:2:1;4368:56:0;;;9450:21:1;9507:2;9487:18;;;9480:30;-1:-1:-1;;;9526:18:1;;;9519:52;9588:18;;4368:56:0;9266:346:1;4368:56:0;4450:12;-1:-1:-1;4196:3:0;;4160:313;;;;3984:495;;3902:577;;;:::o;4485:453::-;4872:2;4903:28;;4589:7;4903:28;;;4817:2;4903:28;;;;;;9844:25:1;;;4732:2:0;4723:12;;4700:36;;4860:15;;;4847:29;4839:38;;9885:18:1;;;9878:45;;;4754:20:0;;9939:18:1;;;9932:34;;;4805:15:0;;4792:29;9982:18:1;;;9975:34;;;4589:7:0;;4839:38;4754:20;;4792:29;4903:28;;9816:19:1;;4903:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4903:28:0;;-1:-1:-1;;4903:28:0;;;4485:453;-1:-1:-1;;;;;;;;;4485:453:0:o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;407:173::-;475:20;;-1:-1:-1;;;;;524:31:1;;514:42;;504:70;;570:1;567;560:12;504:70;407:173;;;:::o;585:186::-;644:6;697:2;685:9;676:7;672:23;668:32;665:52;;;713:1;710;703:12;665:52;736:29;755:9;736:29;:::i;:::-;726:39;585:186;-1:-1:-1;;;585:186:1:o;1150:254::-;1218:6;1226;1279:2;1267:9;1258:7;1254:23;1250:32;1247:52;;;1295:1;1292;1285:12;1247:52;1318:29;1337:9;1318:29;:::i;:::-;1308:39;1394:2;1379:18;;;;1366:32;;-1:-1:-1;;;1150:254:1:o;1591:658::-;1762:2;1814:21;;;1884:13;;1787:18;;;1906:22;;;1733:4;;1762:2;1985:15;;;;1959:2;1944:18;;;1733:4;2028:195;2042:6;2039:1;2036:13;2028:195;;;2107:13;;-1:-1:-1;;;;;2103:39:1;2091:52;;2198:15;;;;2163:12;;;;2139:1;2057:9;2028:195;;;-1:-1:-1;2240:3:1;;1591:658;-1:-1:-1;;;;;;1591:658:1:o;2254:347::-;2305:8;2315:6;2369:3;2362:4;2354:6;2350:17;2346:27;2336:55;;2387:1;2384;2377:12;2336:55;-1:-1:-1;2410:20:1;;2453:18;2442:30;;2439:50;;;2485:1;2482;2475:12;2439:50;2522:4;2514:6;2510:17;2498:29;;2574:3;2567:4;2558:6;2550;2546:19;2542:30;2539:39;2536:59;;;2591:1;2588;2581:12;2536:59;2254:347;;;;;:::o;2606:689::-;2712:6;2720;2728;2736;2744;2752;2805:3;2793:9;2784:7;2780:23;2776:33;2773:53;;;2822:1;2819;2812:12;2773:53;2845:29;2864:9;2845:29;:::i;:::-;2835:39;;2921:2;2910:9;2906:18;2893:32;2883:42;;2976:2;2965:9;2961:18;2948:32;3003:18;2995:6;2992:30;2989:50;;;3035:1;3032;3025:12;2989:50;3074:58;3124:7;3115:6;3104:9;3100:22;3074:58;:::i;:::-;2606:689;;;;-1:-1:-1;3151:8:1;3233:2;3218:18;;3205:32;;3284:3;3269:19;;;3256:33;;-1:-1:-1;2606:689:1;-1:-1:-1;;;;2606:689:1:o;3300:929::-;3417:6;3425;3433;3441;3449;3457;3465;3518:3;3506:9;3497:7;3493:23;3489:33;3486:53;;;3535:1;3532;3525:12;3486:53;3558:29;3577:9;3558:29;:::i;:::-;3548:39;;3634:2;3623:9;3619:18;3606:32;3596:42;;3689:2;3678:9;3674:18;3661:32;3712:18;3753:2;3745:6;3742:14;3739:34;;;3769:1;3766;3759:12;3739:34;3808:58;3858:7;3849:6;3838:9;3834:22;3808:58;:::i;:::-;3885:8;;-1:-1:-1;3782:84:1;-1:-1:-1;3967:2:1;3952:18;;3939:32;;-1:-1:-1;4024:3:1;4009:19;;3996:33;;-1:-1:-1;4041:16:1;;;4038:36;;;4070:1;4067;4060:12;4038:36;;4109:60;4161:7;4150:8;4139:9;4135:24;4109:60;:::i;:::-;3300:929;;;;-1:-1:-1;3300:929:1;;-1:-1:-1;3300:929:1;;;;4083:86;;-1:-1:-1;;;3300:929:1:o;4234:477::-;4313:6;4321;4329;4382:2;4370:9;4361:7;4357:23;4353:32;4350:52;;;4398:1;4395;4388:12;4350:52;4434:9;4421:23;4411:33;;4495:2;4484:9;4480:18;4467:32;4522:18;4514:6;4511:30;4508:50;;;4554:1;4551;4544:12;4508:50;4593:58;4643:7;4634:6;4623:9;4619:22;4593:58;:::i;:::-;4234:477;;4670:8;;-1:-1:-1;4567:84:1;;-1:-1:-1;;;;4234:477:1:o;5777:271::-;5960:6;5952;5947:3;5934:33;5916:3;5986:16;;6011:13;;;5986:16;5777:271;-1:-1:-1;5777:271:1:o;7016:127::-;7077:10;7072:3;7068:20;7065:1;7058:31;7108:4;7105:1;7098:15;7132:4;7129:1;7122:15;7148:135;7187:3;7208:17;;;7205:43;;7228:18;;:::i;:::-;-1:-1:-1;7275:1:1;7264:13;;7148:135::o;7288:128::-;7355:9;;;7376:11;;;7373:37;;;7390:18;;:::i;:::-;7288:128;;;;:::o;8118:127::-;8179:10;8174:3;8170:20;8167:1;8160:31;8210:4;8207:1;8200:15;8234:4;8231:1;8224:15;8250:127;8311:10;8306:3;8302:20;8299:1;8292:31;8342:4;8339:1;8332:15;8366:4;8363:1;8356:15;8382:168;8455:9;;;8486;;8503:15;;;8497:22;;8483:37;8473:71;;8524:18;;:::i","linkReferences":{},"immutableReferences":{"15":[{"start":307,"length":32},{"start":1372,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","addOwner(address,uint256)":"3cc38f5c","checkSignatures(bytes32,bytes)":"ed516d51","execTransaction(address,uint256,bytes,uint256,bytes)":"b9a70800","getOwners()":"a0e67e2b","getTransactionHash(address,uint256,bytes,uint256,uint256)":"acb5d878","isOwner(address)":"2f54bf6e","nonce()":"affed0e0","owners(uint256)":"025e7c27","removeOwner(address,uint256)":"bfd2b3a3","threshold()":"42cde4e8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_owners\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"AddedOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"name\":\"ChangedThreshold\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"ExecutionFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"ExecutionSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"RemovedOwner\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"}],\"name\":\"addOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"dataHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"}],\"name\":\"checkSignatures\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"operation\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"}],\"name\":\"execTransaction\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"operation\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"getTransactionHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"owners\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"}],\"name\":\"removeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"threshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"Sentrix Labs\",\"details\":\"Inspired by Gnosis Safe v1.4.1 but trimmed to the execute-from-N-of-M-owners core. No modules, no guards, no fallback handlers - those are out of scope for canonical treasury use. Owners sign tx hashes off-chain (EIP-712 typed hashing); on-chain `execTransaction` verifies threshold + nonce.\",\"kind\":\"dev\",\"methods\":{\"execTransaction(address,uint256,bytes,uint256,bytes)\":{\"params\":{\"data\":\"Calldata.\",\"operation\":\"0 = call, 1 = delegatecall.\",\"signatures\":\"Concatenated 65-byte ECDSA signatures, sorted by signer address ascending.\",\"to\":\"Target address.\",\"value\":\"Native value (wei) to send.\"}}},\"title\":\"SentrixSafe\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"execTransaction(address,uint256,bytes,uint256,bytes)\":{\"notice\":\"Execute a transaction with `threshold` signatures.\"}},\"notice\":\"Minimal multi-signature wallet for treasury management.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/SentrixSafe.sol\":\"SentrixSafe\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/openzeppelin-contracts/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"contracts/SentrixSafe.sol\":{\"keccak256\":\"0xd4a949530bfe5b8502a05a078c41d8c6fbe777951a0f33dab9d63264755f42f4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1acd7a8282a3048236e86cbb4c276f38f42d8172a10e4a6512ef177853273695\",\"dweb:/ipfs/QmSV217Ra56QRLXJA1RKuxzN8f5pUYTwTe288cKydkrve7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address[]","name":"_owners","type":"address[]"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true}],"type":"event","name":"AddedOwner","anonymous":false},{"inputs":[{"internalType":"uint256","name":"threshold","type":"uint256","indexed":false}],"type":"event","name":"ChangedThreshold","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false}],"type":"event","name":"ExecutionFailure","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false}],"type":"event","name":"ExecutionSuccess","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true}],"type":"event","name":"RemovedOwner","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addOwner"},{"inputs":[{"internalType":"bytes32","name":"dataHash","type":"bytes32"},{"internalType":"bytes","name":"signatures","type":"bytes"}],"stateMutability":"view","type":"function","name":"checkSignatures"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"operation","type":"uint256"},{"internalType":"bytes","name":"signatures","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"execTransaction","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getOwners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"operation","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"}],"stateMutability":"view","type":"function","name":"getTransactionHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"owners","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeOwner"},{"inputs":[],"stateMutability":"view","type":"function","name":"threshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"execTransaction(address,uint256,bytes,uint256,bytes)":{"params":{"data":"Calldata.","operation":"0 = call, 1 = delegatecall.","signatures":"Concatenated 65-byte ECDSA signatures, sorted by signer address ascending.","to":"Target address.","value":"Native value (wei) to send."}}},"version":1},"userdoc":{"kind":"user","methods":{"execTransaction(address,uint256,bytes,uint256,bytes)":{"notice":"Execute a transaction with `threshold` signatures."}},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/openzeppelin-contracts/","forge-std/=lib/forge-std/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/SentrixSafe.sol":"SentrixSafe"},"evmVersion":"cancun","libraries":{}},"sources":{"contracts/SentrixSafe.sol":{"keccak256":"0xd4a949530bfe5b8502a05a078c41d8c6fbe777951a0f33dab9d63264755f42f4","urls":["bzz-raw://1acd7a8282a3048236e86cbb4c276f38f42d8172a10e4a6512ef177853273695","dweb:/ipfs/QmSV217Ra56QRLXJA1RKuxzN8f5pUYTwTe288cKydkrve7"],"license":"BUSL-1.1"}},"version":1},"storageLayout":{"storage":[{"astId":5,"contract":"contracts/SentrixSafe.sol:SentrixSafe","label":"owners","offset":0,"slot":"0","type":"t_array(t_address)dyn_storage"},{"astId":9,"contract":"contracts/SentrixSafe.sol:SentrixSafe","label":"isOwner","offset":0,"slot":"1","type":"t_mapping(t_address,t_bool)"},{"astId":11,"contract":"contracts/SentrixSafe.sol:SentrixSafe","label":"threshold","offset":0,"slot":"2","type":"t_uint256"},{"astId":13,"contract":"contracts/SentrixSafe.sol:SentrixSafe","label":"nonce","offset":0,"slot":"3","type":"t_uint256"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"id":0}
@@ -0,0 +1 @@
1
+ {"abi":[{"type":"function","name":"deployToken","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"initialSupply","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"token","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deployedTokens","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"tokenCount","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokensOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"TokenDeployed","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"name","type":"string","indexed":false,"internalType":"string"},{"name":"symbol","type":"string","indexed":false,"internalType":"string"},{"name":"initialSupply","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b50610e548061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80633a93babb1461004e57806356225a091461007e5780635a3f2672146100b45780637785cec6146100d4575b5f80fd5b61006161005c3660046102a6565b6100e7565b6040516001600160a01b0390911681526020015b60405180910390f35b6100a661008c36600461032f565b6001600160a01b03165f9081526020819052604090205490565b604051908152602001610075565b6100c76100c236600461032f565b6101b0565b604051610075919061034f565b6100616100e236600461039b565b610221565b5f808686868686336040516100fb90610254565b61010a969594939291906103eb565b604051809103905ff080158015610123573d5f803e3d5ffd5b50335f818152602081815260408083208054600181018255908452919092200180546001600160a01b0319166001600160a01b038516908117909155905192945084935090917fafab02be1fad1d0d43ad198ee814f1c60ef1d1143fea62cb87cc7a65b71af1229061019e908b908b908b908b908b90610435565b60405180910390a35095945050505050565b6001600160a01b0381165f908152602081815260409182902080548351818402810184019094528084526060939283018282801561021557602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116101f7575b50505050509050919050565b5f602052815f5260405f208181548110610239575f80fd5b5f918252602090912001546001600160a01b03169150829050565b6109b08061046f83390190565b5f8083601f840112610271575f80fd5b50813567ffffffffffffffff811115610288575f80fd5b60208301915083602082850101111561029f575f80fd5b9250929050565b5f805f805f606086880312156102ba575f80fd5b853567ffffffffffffffff808211156102d1575f80fd5b6102dd89838a01610261565b909750955060208801359150808211156102f5575f80fd5b5061030288828901610261565b96999598509660400135949350505050565b80356001600160a01b038116811461032a575f80fd5b919050565b5f6020828403121561033f575f80fd5b61034882610314565b9392505050565b602080825282518282018190525f9190848201906040850190845b8181101561038f5783516001600160a01b03168352928401929184019160010161036a565b50909695505050505050565b5f80604083850312156103ac575f80fd5b6103b583610314565b946020939093013593505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b608081525f6103fe60808301888a6103c3565b82810360208401526104118187896103c3565b604084019590955250506001600160a01b0391909116606090910152949350505050565b606081525f6104486060830187896103c3565b828103602084015261045b8186886103c3565b915050826040830152969550505050505056fe608060405234801562000010575f80fd5b50604051620009b0380380620009b083398101604081905262000033916200016c565b5f62000040858262000285565b5060016200004f848262000285565b5060028290556001600160a01b0381165f818152600360209081526040808320869055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505062000351565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112620000cf575f80fd5b81516001600160401b0380821115620000ec57620000ec620000ab565b604051601f8301601f19908116603f01168101908282118183101715620001175762000117620000ab565b816040528381526020925086602085880101111562000134575f80fd5b5f91505b8382101562000157578582018301518183018401529082019062000138565b5f602085830101528094505050505092915050565b5f805f806080858703121562000180575f80fd5b84516001600160401b038082111562000197575f80fd5b620001a588838901620000bf565b95506020870151915080821115620001bb575f80fd5b50620001ca87828801620000bf565b60408701516060880151919550935090506001600160a01b0381168114620001f0575f80fd5b939692955090935050565b600181811c908216806200021057607f821691505b6020821081036200022f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200028057805f5260205f20601f840160051c810160208510156200025c5750805b601f840160051c820191505b818110156200027d575f815560010162000268565b50505b505050565b81516001600160401b03811115620002a157620002a1620000ab565b620002b981620002b28454620001fb565b8462000235565b602080601f831160018114620002ef575f8415620002d75750858301515b5f19600386901b1c1916600185901b17855562000349565b5f85815260208120601f198616915b828110156200031f57888601518255948401946001909101908401620002fe565b50858210156200033d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b610651806200035f5f395ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c8063313ce56711610063578063313ce567146100ff57806370a082311461011957806395d89b4114610138578063a9059cbb14610140578063dd62ed3e14610153575f80fd5b806306fdde0314610094578063095ea7b3146100b257806318160ddd146100d557806323b872dd146100ec575b5f80fd5b61009c61017d565b6040516100a99190610497565b60405180910390f35b6100c56100c03660046104fe565b610208565b60405190151581526020016100a9565b6100de60025481565b6040519081526020016100a9565b6100c56100fa366004610526565b610274565b610107601281565b60405160ff90911681526020016100a9565b6100de61012736600461055f565b60036020525f908152604090205481565b61009c610354565b6100c561014e3660046104fe565b610361565b6100de610161366004610578565b600460209081525f928352604080842090915290825290205481565b5f8054610189906105a9565b80601f01602080910402602001604051908101604052809291908181526020018280546101b5906105a9565b80156102005780601f106101d757610100808354040283529160200191610200565b820191905f5260205f20905b8154815290600101906020018083116101e357829003601f168201915b505050505081565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102629086815260200190565b60405180910390a35060015b92915050565b5f6001600160a01b0384163314610341576001600160a01b0384165f9081526004602090815260408083203384529091529020545f19811461033f57828110156103115760405162461bcd60e51b8152602060048201526024808201527f466163746f7279546f6b656e3a20696e73756666696369656e7420616c6c6f77604482015263616e636560e01b60648201526084015b60405180910390fd5b61031b83826105f5565b6001600160a01b0386165f9081526004602090815260408083203384529091529020555b505b61034c848484610374565b949350505050565b60018054610189906105a9565b5f61036d338484610374565b9392505050565b6001600160a01b0383165f908152600360205260408120548211156103e65760405162461bcd60e51b815260206004820152602260248201527f466163746f7279546f6b656e3a20696e73756666696369656e742062616c616e604482015261636560f01b6064820152608401610308565b6001600160a01b0384165f908152600360205260408120805484929061040d9084906105f5565b90915550506001600160a01b0383165f9081526003602052604081208054849290610439908490610608565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161048591815260200190565b60405180910390a35060019392505050565b5f602080835283518060208501525f5b818110156104c3578581018301518582016040015282016104a7565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146104f9575f80fd5b919050565b5f806040838503121561050f575f80fd5b610518836104e3565b946020939093013593505050565b5f805f60608486031215610538575f80fd5b610541846104e3565b925061054f602085016104e3565b9150604084013590509250925092565b5f6020828403121561056f575f80fd5b61036d826104e3565b5f8060408385031215610589575f80fd5b610592836104e3565b91506105a0602084016104e3565b90509250929050565b600181811c908216806105bd57607f821691505b6020821081036105db57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561026e5761026e6105e1565b8082018082111561026e5761026e6105e156fea2646970667358221220fd28826e2f0835e63436764caa00ac6b1785b4ddf423bc78431a8c4d60e1587b64736f6c63430008180033a26469706673582212203a3a6d9b978e452c338052bfa777d8c3718602bf941f785b868d8b185e344aff64736f6c63430008180033","sourceMap":"395:827:0:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061004a575f3560e01c80633a93babb1461004e57806356225a091461007e5780635a3f2672146100b45780637785cec6146100d4575b5f80fd5b61006161005c3660046102a6565b6100e7565b6040516001600160a01b0390911681526020015b60405180910390f35b6100a661008c36600461032f565b6001600160a01b03165f9081526020819052604090205490565b604051908152602001610075565b6100c76100c236600461032f565b6101b0565b604051610075919061034f565b6100616100e236600461039b565b610221565b5f808686868686336040516100fb90610254565b61010a969594939291906103eb565b604051809103905ff080158015610123573d5f803e3d5ffd5b50335f818152602081815260408083208054600181018255908452919092200180546001600160a01b0319166001600160a01b038516908117909155905192945084935090917fafab02be1fad1d0d43ad198ee814f1c60ef1d1143fea62cb87cc7a65b71af1229061019e908b908b908b908b908b90610435565b60405180910390a35095945050505050565b6001600160a01b0381165f908152602081815260409182902080548351818402810184019094528084526060939283018282801561021557602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116101f7575b50505050509050919050565b5f602052815f5260405f208181548110610239575f80fd5b5f918252602090912001546001600160a01b03169150829050565b6109b08061046f83390190565b5f8083601f840112610271575f80fd5b50813567ffffffffffffffff811115610288575f80fd5b60208301915083602082850101111561029f575f80fd5b9250929050565b5f805f805f606086880312156102ba575f80fd5b853567ffffffffffffffff808211156102d1575f80fd5b6102dd89838a01610261565b909750955060208801359150808211156102f5575f80fd5b5061030288828901610261565b96999598509660400135949350505050565b80356001600160a01b038116811461032a575f80fd5b919050565b5f6020828403121561033f575f80fd5b61034882610314565b9392505050565b602080825282518282018190525f9190848201906040850190845b8181101561038f5783516001600160a01b03168352928401929184019160010161036a565b50909695505050505050565b5f80604083850312156103ac575f80fd5b6103b583610314565b946020939093013593505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b608081525f6103fe60808301888a6103c3565b82810360208401526104118187896103c3565b604084019590955250506001600160a01b0391909116606090910152949350505050565b606081525f6104486060830187896103c3565b828103602084015261045b8186886103c3565b915050826040830152969550505050505056fe608060405234801562000010575f80fd5b50604051620009b0380380620009b083398101604081905262000033916200016c565b5f62000040858262000285565b5060016200004f848262000285565b5060028290556001600160a01b0381165f818152600360209081526040808320869055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505062000351565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112620000cf575f80fd5b81516001600160401b0380821115620000ec57620000ec620000ab565b604051601f8301601f19908116603f01168101908282118183101715620001175762000117620000ab565b816040528381526020925086602085880101111562000134575f80fd5b5f91505b8382101562000157578582018301518183018401529082019062000138565b5f602085830101528094505050505092915050565b5f805f806080858703121562000180575f80fd5b84516001600160401b038082111562000197575f80fd5b620001a588838901620000bf565b95506020870151915080821115620001bb575f80fd5b50620001ca87828801620000bf565b60408701516060880151919550935090506001600160a01b0381168114620001f0575f80fd5b939692955090935050565b600181811c908216806200021057607f821691505b6020821081036200022f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200028057805f5260205f20601f840160051c810160208510156200025c5750805b601f840160051c820191505b818110156200027d575f815560010162000268565b50505b505050565b81516001600160401b03811115620002a157620002a1620000ab565b620002b981620002b28454620001fb565b8462000235565b602080601f831160018114620002ef575f8415620002d75750858301515b5f19600386901b1c1916600185901b17855562000349565b5f85815260208120601f198616915b828110156200031f57888601518255948401946001909101908401620002fe565b50858210156200033d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b610651806200035f5f395ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c8063313ce56711610063578063313ce567146100ff57806370a082311461011957806395d89b4114610138578063a9059cbb14610140578063dd62ed3e14610153575f80fd5b806306fdde0314610094578063095ea7b3146100b257806318160ddd146100d557806323b872dd146100ec575b5f80fd5b61009c61017d565b6040516100a99190610497565b60405180910390f35b6100c56100c03660046104fe565b610208565b60405190151581526020016100a9565b6100de60025481565b6040519081526020016100a9565b6100c56100fa366004610526565b610274565b610107601281565b60405160ff90911681526020016100a9565b6100de61012736600461055f565b60036020525f908152604090205481565b61009c610354565b6100c561014e3660046104fe565b610361565b6100de610161366004610578565b600460209081525f928352604080842090915290825290205481565b5f8054610189906105a9565b80601f01602080910402602001604051908101604052809291908181526020018280546101b5906105a9565b80156102005780601f106101d757610100808354040283529160200191610200565b820191905f5260205f20905b8154815290600101906020018083116101e357829003601f168201915b505050505081565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102629086815260200190565b60405180910390a35060015b92915050565b5f6001600160a01b0384163314610341576001600160a01b0384165f9081526004602090815260408083203384529091529020545f19811461033f57828110156103115760405162461bcd60e51b8152602060048201526024808201527f466163746f7279546f6b656e3a20696e73756666696369656e7420616c6c6f77604482015263616e636560e01b60648201526084015b60405180910390fd5b61031b83826105f5565b6001600160a01b0386165f9081526004602090815260408083203384529091529020555b505b61034c848484610374565b949350505050565b60018054610189906105a9565b5f61036d338484610374565b9392505050565b6001600160a01b0383165f908152600360205260408120548211156103e65760405162461bcd60e51b815260206004820152602260248201527f466163746f7279546f6b656e3a20696e73756666696369656e742062616c616e604482015261636560f01b6064820152608401610308565b6001600160a01b0384165f908152600360205260408120805484929061040d9084906105f5565b90915550506001600160a01b0383165f9081526003602052604081208054849290610439908490610608565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161048591815260200190565b60405180910390a35060019392505050565b5f602080835283518060208501525f5b818110156104c3578581018301518582016040015282016104a7565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146104f9575f80fd5b919050565b5f806040838503121561050f575f80fd5b610518836104e3565b946020939093013593505050565b5f805f60608486031215610538575f80fd5b610541846104e3565b925061054f602085016104e3565b9150604084013590509250925092565b5f6020828403121561056f575f80fd5b61036d826104e3565b5f8060408385031215610589575f80fd5b610592836104e3565b91506105a0602084016104e3565b90509250929050565b600181811c908216806105bd57607f821691505b6020821081036105db57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561026e5761026e6105e1565b8082018082111561026e5761026e6105e156fea2646970667358221220fd28826e2f0835e63436764caa00ac6b1785b4ddf423bc78431a8c4d60e1587b64736f6c63430008180033a26469706673582212203a3a6d9b978e452c338052bfa777d8c3718602bf941f785b868d8b185e344aff64736f6c63430008180033","sourceMap":"395:827:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;604:366;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1325:32:1;;;1307:51;;1295:2;1280:18;604:366:0;;;;;;;;1101:119;;;;;;:::i;:::-;-1:-1:-1;;;;;1185:21:0;1159:7;1185:21;;;;;;;;;;:28;;1101:119;;;;1884:25:1;;;1872:2;1857:18;1101:119:0;1738:177:1;976:119:0;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;546:51::-;;;;;;:::i;:::-;;:::i;604:366::-;712:13;737:14;771:4;;777:6;;785:13;800:10;754:57;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;864:10:0;849:14;:26;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;849:38:0;-1:-1:-1;;;;;849:38:0;;;;;;;;902:61;;849:38;;-1:-1:-1;849:38:0;;-1:-1:-1;864:10:0;;902:61;;;;935:4;;;;941:6;;;;949:13;;902:61;:::i;:::-;;;;;;;;727:243;604:366;;;;;;;:::o;976:119::-;-1:-1:-1;;;;;1067:21:0;;:14;:21;;;;;;;;;;;;1060:28;;;;;;;;;;;;;;;;;1032:16;;1060:28;;;1067:21;1060:28;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1060:28:0;;;;;;;;;;;;;;;;;;;;;;;976:119;;;:::o;546:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;546:51:0;;-1:-1:-1;546:51:0;;-1:-1:-1;546:51:0:o;-1:-1:-1:-;;;;;;;;:::o;14:348:1:-;66:8;76:6;130:3;123:4;115:6;111:17;107:27;97:55;;148:1;145;138:12;97:55;-1:-1:-1;171:20:1;;214:18;203:30;;200:50;;;246:1;243;236:12;200:50;283:4;275:6;271:17;259:29;;335:3;328:4;319:6;311;307:19;303:30;300:39;297:59;;;352:1;349;342:12;297:59;14:348;;;;;:::o;367:789::-;468:6;476;484;492;500;553:2;541:9;532:7;528:23;524:32;521:52;;;569:1;566;559:12;521:52;609:9;596:23;638:18;679:2;671:6;668:14;665:34;;;695:1;692;685:12;665:34;734:59;785:7;776:6;765:9;761:22;734:59;:::i;:::-;812:8;;-1:-1:-1;708:85:1;-1:-1:-1;900:2:1;885:18;;872:32;;-1:-1:-1;916:16:1;;;913:36;;;945:1;942;935:12;913:36;;984:61;1037:7;1026:8;1015:9;1011:24;984:61;:::i;:::-;367:789;;;;-1:-1:-1;1064:8:1;1146:2;1131:18;1118:32;;367:789;-1:-1:-1;;;;367:789:1:o;1369:173::-;1437:20;;-1:-1:-1;;;;;1486:31:1;;1476:42;;1466:70;;1532:1;1529;1522:12;1466:70;1369:173;;;:::o;1547:186::-;1606:6;1659:2;1647:9;1638:7;1634:23;1630:32;1627:52;;;1675:1;1672;1665:12;1627:52;1698:29;1717:9;1698:29;:::i;:::-;1688:39;1547:186;-1:-1:-1;;;1547:186:1:o;1920:658::-;2091:2;2143:21;;;2213:13;;2116:18;;;2235:22;;;2062:4;;2091:2;2314:15;;;;2288:2;2273:18;;;2062:4;2357:195;2371:6;2368:1;2365:13;2357:195;;;2436:13;;-1:-1:-1;;;;;2432:39:1;2420:52;;2527:15;;;;2492:12;;;;2468:1;2386:9;2357:195;;;-1:-1:-1;2569:3:1;;1920:658;-1:-1:-1;;;;;;1920:658:1:o;2583:254::-;2651:6;2659;2712:2;2700:9;2691:7;2687:23;2683:32;2680:52;;;2728:1;2725;2718:12;2680:52;2751:29;2770:9;2751:29;:::i;:::-;2741:39;2827:2;2812:18;;;;2799:32;;-1:-1:-1;;;2583:254:1:o;2842:267::-;2931:6;2926:3;2919:19;2983:6;2976:5;2969:4;2964:3;2960:14;2947:43;-1:-1:-1;3035:1:1;3010:16;;;3028:4;3006:27;;;2999:38;;;;3091:2;3070:15;;;-1:-1:-1;;3066:29:1;3057:39;;;3053:50;;2842:267::o;3114:607::-;3387:3;3376:9;3369:22;3350:4;3414:63;3472:3;3461:9;3457:19;3449:6;3441;3414:63;:::i;:::-;3525:9;3517:6;3513:22;3508:2;3497:9;3493:18;3486:50;3553;3596:6;3588;3580;3553:50;:::i;:::-;3634:2;3619:18;;3612:34;;;;-1:-1:-1;;;;;;;3682:32:1;;;;3677:2;3662:18;;;3655:60;3545:58;3114:607;-1:-1:-1;;;;3114:607:1:o;3726:508::-;3971:2;3960:9;3953:21;3934:4;3997:62;4055:2;4044:9;4040:18;4032:6;4024;3997:62;:::i;:::-;4107:9;4099:6;4095:22;4090:2;4079:9;4075:18;4068:50;4135;4178:6;4170;4162;4135:50;:::i;:::-;4127:58;;;4221:6;4216:2;4205:9;4201:18;4194:34;3726:508;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"deployToken(string,string,uint256)":"3a93babb","deployedTokens(address,uint256)":"7785cec6","tokenCount(address)":"56225a09","tokensOf(address)":"5a3f2672"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialSupply\",\"type\":\"uint256\"}],\"name\":\"TokenDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"initialSupply\",\"type\":\"uint256\"}],\"name\":\"deployToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"deployedTokens\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"tokenCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"tokensOf\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Sentrix Labs\",\"details\":\"Tracks deployed-token-by-deployer to make discovery easy.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Sentrix TokenFactory\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Deploys standard ERC-20 tokens. Single entry point for builders who want a fungible token without writing Solidity. Initial supply is minted to the deployer (`msg.sender`).\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/TokenFactory.sol\":\"TokenFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/openzeppelin-contracts/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"contracts/TokenFactory.sol\":{\"keccak256\":\"0x9e264e93512eaf09e7733e184907511f15768828c44de0808dfa1ec1155761e7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://262fd230bddd0ec20fb3bb0e7a6dc476984ca4ace9490d039d0f0f2c4c1e81de\",\"dweb:/ipfs/QmUos4CU2N4Xzr38qhuKYBfDiNy6LFXbZsuB1n5kxHSHDf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"string","name":"name","type":"string","indexed":false},{"internalType":"string","name":"symbol","type":"string","indexed":false},{"internalType":"uint256","name":"initialSupply","type":"uint256","indexed":false}],"type":"event","name":"TokenDeployed","anonymous":false},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deployToken","outputs":[{"internalType":"address","name":"token","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"deployedTokens","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"tokenCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"tokensOf","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/openzeppelin-contracts/","forge-std/=lib/forge-std/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/TokenFactory.sol":"TokenFactory"},"evmVersion":"cancun","libraries":{}},"sources":{"contracts/TokenFactory.sol":{"keccak256":"0x9e264e93512eaf09e7733e184907511f15768828c44de0808dfa1ec1155761e7","urls":["bzz-raw://262fd230bddd0ec20fb3bb0e7a6dc476984ca4ace9490d039d0f0f2c4c1e81de","dweb:/ipfs/QmUos4CU2N4Xzr38qhuKYBfDiNy6LFXbZsuB1n5kxHSHDf"],"license":"BUSL-1.1"}},"version":1},"storageLayout":{"storage":[{"astId":19,"contract":"contracts/TokenFactory.sol:TokenFactory","label":"deployedTokens","offset":0,"slot":"0","type":"t_mapping(t_address,t_array(t_address)dyn_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_mapping(t_address,t_array(t_address)dyn_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address[])","numberOfBytes":"32","value":"t_array(t_address)dyn_storage"}}},"id":0}
@@ -0,0 +1 @@
1
+ {"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"guy","type":"address","internalType":"address"},{"name":"wad","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"dst","type":"address","internalType":"address"},{"name":"wad","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"src","type":"address","internalType":"address"},{"name":"dst","type":"address","internalType":"address"},{"name":"wad","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"wad","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"src","type":"address","indexed":true,"internalType":"address"},{"name":"guy","type":"address","indexed":true,"internalType":"address"},{"name":"wad","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"dst","type":"address","indexed":true,"internalType":"address"},{"name":"wad","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"src","type":"address","indexed":true,"internalType":"address"},{"name":"dst","type":"address","indexed":true,"internalType":"address"},{"name":"wad","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"src","type":"address","indexed":true,"internalType":"address"},{"name":"wad","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506108b18061001d5f395ff3fe60806040526004361061009d575f3560e01c8063313ce56711610062578063313ce5671461018b57806370a08231146101b157806395d89b41146101dc578063a9059cbb1461020b578063d0e30db01461022a578063dd62ed3e14610232575f80fd5b806306fdde03146100b0578063095ea7b3146100fc57806318160ddd1461012b57806323b872dd1461014d5780632e1a7d4d1461016c575f80fd5b366100ac576100aa610268565b005b5f80fd5b3480156100bb575f80fd5b506100e66040518060400160405280600b81526020016a0aee4c2e0e0cac840a6a4b60ab1b81525081565b6040516100f39190610718565b60405180910390f35b348015610107575f80fd5b5061011b61011636600461077f565b610310565b60405190151581526020016100f3565b348015610136575f80fd5b5061013f5f5481565b6040519081526020016100f3565b348015610158575f80fd5b5061011b6101673660046107a7565b61037c565b348015610177575f80fd5b506100aa6101863660046107e0565b610450565b348015610196575f80fd5b5061019f601281565b60405160ff90911681526020016100f3565b3480156101bc575f80fd5b5061013f6101cb3660046107f7565b60016020525f908152604090205481565b3480156101e7575f80fd5b506100e6604051806040016040528060048152602001630aea6a4b60e31b81525081565b348015610216575f80fd5b5061011b61022536600461077f565b6105ed565b6100aa610268565b34801561023d575f80fd5b5061013f61024c366004610810565b600260209081525f928352604080842090915290825290205481565b335f9081526001602052604081208054349290610286908490610855565b92505081905550345f8082825461029d9190610855565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a260405134815233905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061036a9086815260200190565b60405180910390a35060015b92915050565b5f6001600160a01b038416331461043d576001600160a01b0384165f9081526002602090815260408083203384529091529020545f19811461043b578281101561040d5760405162461bcd60e51b815260206004820152601c60248201527f575352583a20696e73756666696369656e7420616c6c6f77616e63650000000060448201526064015b60405180910390fd5b6104178382610868565b6001600160a01b0386165f9081526002602090815260408083203384529091529020555b505b610448848484610600565b949350505050565b335f908152600160205260409020548111156104ae5760405162461bcd60e51b815260206004820152601a60248201527f575352583a20696e73756666696369656e742062616c616e63650000000000006044820152606401610404565b335f90815260016020526040812080548392906104cc908490610868565b92505081905550805f808282546104e39190610868565b90915550506040515f90339083908381818185875af1925050503d805f8114610527576040519150601f19603f3d011682016040523d82523d5f602084013e61052c565b606091505b505090508061057d5760405162461bcd60e51b815260206004820152601c60248201527f575352583a206e6174697665207472616e73666572206661696c6564000000006044820152606401610404565b60405182815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a26040518281525f9033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b5f6105f9338484610600565b9392505050565b6001600160a01b0383165f908152600160205260408120548211156106675760405162461bcd60e51b815260206004820152601a60248201527f575352583a20696e73756666696369656e742062616c616e63650000000000006044820152606401610404565b6001600160a01b0384165f908152600160205260408120805484929061068e908490610868565b90915550506001600160a01b0383165f90815260016020526040812080548492906106ba908490610855565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161070691815260200190565b60405180910390a35060019392505050565b5f602080835283518060208501525f5b8181101561074457858101830151858201604001528201610728565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461077a575f80fd5b919050565b5f8060408385031215610790575f80fd5b61079983610764565b946020939093013593505050565b5f805f606084860312156107b9575f80fd5b6107c284610764565b92506107d060208501610764565b9150604084013590509250925092565b5f602082840312156107f0575f80fd5b5035919050565b5f60208284031215610807575f80fd5b6105f982610764565b5f8060408385031215610821575f80fd5b61082a83610764565b915061083860208401610764565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561037657610376610841565b818103818111156103765761037661084156fea2646970667358221220373bab3553647ab2b89de3d8266ac7e65b59cec6e37bcd87702a3dc4231cfe8d64736f6c63430008180033","sourceMap":"652:3219:0:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061009d575f3560e01c8063313ce56711610062578063313ce5671461018b57806370a08231146101b157806395d89b41146101dc578063a9059cbb1461020b578063d0e30db01461022a578063dd62ed3e14610232575f80fd5b806306fdde03146100b0578063095ea7b3146100fc57806318160ddd1461012b57806323b872dd1461014d5780632e1a7d4d1461016c575f80fd5b366100ac576100aa610268565b005b5f80fd5b3480156100bb575f80fd5b506100e66040518060400160405280600b81526020016a0aee4c2e0e0cac840a6a4b60ab1b81525081565b6040516100f39190610718565b60405180910390f35b348015610107575f80fd5b5061011b61011636600461077f565b610310565b60405190151581526020016100f3565b348015610136575f80fd5b5061013f5f5481565b6040519081526020016100f3565b348015610158575f80fd5b5061011b6101673660046107a7565b61037c565b348015610177575f80fd5b506100aa6101863660046107e0565b610450565b348015610196575f80fd5b5061019f601281565b60405160ff90911681526020016100f3565b3480156101bc575f80fd5b5061013f6101cb3660046107f7565b60016020525f908152604090205481565b3480156101e7575f80fd5b506100e6604051806040016040528060048152602001630aea6a4b60e31b81525081565b348015610216575f80fd5b5061011b61022536600461077f565b6105ed565b6100aa610268565b34801561023d575f80fd5b5061013f61024c366004610810565b600260209081525f928352604080842090915290825290205481565b335f9081526001602052604081208054349290610286908490610855565b92505081905550345f8082825461029d9190610855565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a260405134815233905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061036a9086815260200190565b60405180910390a35060015b92915050565b5f6001600160a01b038416331461043d576001600160a01b0384165f9081526002602090815260408083203384529091529020545f19811461043b578281101561040d5760405162461bcd60e51b815260206004820152601c60248201527f575352583a20696e73756666696369656e7420616c6c6f77616e63650000000060448201526064015b60405180910390fd5b6104178382610868565b6001600160a01b0386165f9081526002602090815260408083203384529091529020555b505b610448848484610600565b949350505050565b335f908152600160205260409020548111156104ae5760405162461bcd60e51b815260206004820152601a60248201527f575352583a20696e73756666696369656e742062616c616e63650000000000006044820152606401610404565b335f90815260016020526040812080548392906104cc908490610868565b92505081905550805f808282546104e39190610868565b90915550506040515f90339083908381818185875af1925050503d805f8114610527576040519150601f19603f3d011682016040523d82523d5f602084013e61052c565b606091505b505090508061057d5760405162461bcd60e51b815260206004820152601c60248201527f575352583a206e6174697665207472616e73666572206661696c6564000000006044820152606401610404565b60405182815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a26040518281525f9033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b5f6105f9338484610600565b9392505050565b6001600160a01b0383165f908152600160205260408120548211156106675760405162461bcd60e51b815260206004820152601a60248201527f575352583a20696e73756666696369656e742062616c616e63650000000000006044820152606401610404565b6001600160a01b0384165f908152600160205260408120805484929061068e908490610868565b90915550506001600160a01b0383165f90815260016020526040812080548492906106ba908490610855565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161070691815260200190565b60405180910390a35060019392505050565b5f602080835283518060208501525f5b8181101561074457858101830151858201604001528201610728565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461077a575f80fd5b919050565b5f8060408385031215610790575f80fd5b61079983610764565b946020939093013593505050565b5f805f606084860312156107b9575f80fd5b6107c284610764565b92506107d060208501610764565b9150604084013590509250925092565b5f602082840312156107f0575f80fd5b5035919050565b5f60208284031215610807575f80fd5b6105f982610764565b5f8060408385031215610821575f80fd5b61082a83610764565b915061083860208401610764565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561037657610376610841565b818103818111156103765761037661084156fea2646970667358221220373bab3553647ab2b89de3d8266ac7e65b59cec6e37bcd87702a3dc4231cfe8d64736f6c63430008180033","sourceMap":"652:3219:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1339:9;:7;:9::i;:::-;652:3219;;;;;672:43;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;672:43:0;;;;;;;;;;;;:::i;:::-;;;;;;;;2456:182;;;;;;;;;;-1:-1:-1;2456:182:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;2456:182:0;1004:187:1;807:26:0;;;;;;;;;;;;;;;;;;;1342:25:1;;;1330:2;1315:18;807:26:0;1196:177:1;3146:433:0;;;;;;;;;;-1:-1:-1;3146:433:0;;;;;:::i;:::-;;:::i;1813:392::-;;;;;;;;;;-1:-1:-1;1813:392:0;;;;;:::i;:::-;;:::i;765:35::-;;;;;;;;;;;;798:2;765:35;;;;;2068:4:1;2056:17;;;2038:36;;2026:2;2011:18;765:35:0;1896:184:1;840:44:0;;;;;;;;;;-1:-1:-1;840:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;721:38;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;721:38:0;;;;;2794:127;;;;;;;;;;-1:-1:-1;2794:127:0;;;;;:::i;:::-;;:::i;1439:222::-;;;:::i;890:64::-;;;;;;;;;;-1:-1:-1;890:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1439:222;1493:10;1483:21;;;;:9;:21;;;;;:34;;1508:9;;1483:21;:34;;1508:9;;1483:34;:::i;:::-;;;;;;;;1542:9;1527:11;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;1566:30:0;;1586:9;1342:25:1;;1574:10:0;;1566:30;;1330:2:1;1315:18;1566:30:0;;;;;;;1611:43;;1644:9;1342:25:1;;1632:10:0;;1628:1;;1611:43;;1330:2:1;1315:18;1611:43:0;;;;;;;1439:222::o;2456:182::-;2543:10;2517:4;2533:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2533:26:0;;;;;;;;;;:32;;;2580:30;2517:4;;2533:26;;2580:30;;;;2562:3;1342:25:1;;1330:2;1315:18;;1196:177;2580:30:0;;;;;;;;-1:-1:-1;2627:4:0;2456:182;;;;;:::o;3146:433::-;3225:4;-1:-1:-1;;;;;3245:17:0;;3252:10;3245:17;3241:287;;-1:-1:-1;;;;;3296:14:0;;3278:15;3296:14;;;:9;:14;;;;;;;;3311:10;3296:26;;;;;;;;-1:-1:-1;;3340:28:0;;3336:182;;3407:3;3396:7;:14;;3388:55;;;;-1:-1:-1;;;3388:55:0;;3005:2:1;3388:55:0;;;2987:21:1;3044:2;3024:18;;;3017:30;3083;3063:18;;;3056:58;3131:18;;3388:55:0;;;;;;;;;3490:13;3500:3;3490:7;:13;:::i;:::-;-1:-1:-1;;;;;3461:14:0;;;;;;:9;:14;;;;;;;;3476:10;3461:26;;;;;;;:42;3336:182;3264:264;3241:287;3544:28;3558:3;3563;3568;3544:13;:28::i;:::-;3537:35;3146:433;-1:-1:-1;;;;3146:433:0:o;1813:392::-;1881:10;1871:21;;;;:9;:21;;;;;;:28;-1:-1:-1;1871:28:0;1863:67;;;;-1:-1:-1;;;1863:67:0;;3495:2:1;1863:67:0;;;3477:21:1;3534:2;3514:18;;;3507:30;3573:28;3553:18;;;3546:56;3619:18;;1863:67:0;3293:350:1;1863:67:0;1950:10;1940:21;;;;:9;:21;;;;;:28;;1965:3;;1940:21;:28;;1965:3;;1940:28;:::i;:::-;;;;;;;;1993:3;1978:11;;:18;;;;;;;:::i;:::-;;;;-1:-1:-1;;2020:31:0;;2007:7;;2020:10;;2043:3;;2007:7;2020:31;2007:7;2020:31;2043:3;2020:10;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2006:45;;;2069:2;2061:43;;;;-1:-1:-1;;;2061:43:0;;4060:2:1;2061:43:0;;;4042:21:1;4099:2;4079:18;;;4072:30;4138;4118:18;;;4111:58;4186:18;;2061:43:0;3858:352:1;2061:43:0;2119:27;;1342:25:1;;;2130:10:0;;2119:27;;1330:2:1;1315:18;2119:27:0;;;;;;;2161:37;;1342:25:1;;;2190:1:0;;2170:10;;2161:37;;1330:2:1;1315:18;2161:37:0;;;;;;;1853:352;1813:392;:::o;2794:127::-;2856:4;2879:35;2893:10;2905:3;2910;2879:13;:35::i;:::-;2872:42;2794:127;-1:-1:-1;;;2794:127:0:o;3585:284::-;-1:-1:-1;;;;;3689:14:0;;3665:4;3689:14;;;:9;:14;;;;;;:21;-1:-1:-1;3689:21:0;3681:60;;;;-1:-1:-1;;;3681:60:0;;3495:2:1;3681:60:0;;;3477:21:1;3534:2;3514:18;;;3507:30;3573:28;3553:18;;;3546:56;3619:18;;3681:60:0;3293:350:1;3681:60:0;-1:-1:-1;;;;;3751:14:0;;;;;;:9;:14;;;;;:21;;3769:3;;3751:14;:21;;3769:3;;3751:21;:::i;:::-;;;;-1:-1:-1;;;;;;;3782:14:0;;;;;;:9;:14;;;;;:21;;3800:3;;3782:14;:21;;3800:3;;3782:21;:::i;:::-;;;;;;;;3832:3;-1:-1:-1;;;;;3818:23:0;3827:3;-1:-1:-1;;;;;3818:23:0;;3837:3;3818:23;;;;1342:25:1;;1330:2;1315:18;;1196:177;3818:23:0;;;;;;;;-1:-1:-1;3858:4:0;3585:284;;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1711:180::-;1770:6;1823:2;1811:9;1802:7;1798:23;1794:32;1791:52;;;1839:1;1836;1829:12;1791:52;-1:-1:-1;1862:23:1;;1711:180;-1:-1:-1;1711:180:1:o;2085:186::-;2144:6;2197:2;2185:9;2176:7;2172:23;2168:32;2165:52;;;2213:1;2210;2203:12;2165:52;2236:29;2255:9;2236:29;:::i;2276:260::-;2344:6;2352;2405:2;2393:9;2384:7;2380:23;2376:32;2373:52;;;2421:1;2418;2411:12;2373:52;2444:29;2463:9;2444:29;:::i;:::-;2434:39;;2492:38;2526:2;2515:9;2511:18;2492:38;:::i;:::-;2482:48;;2276:260;;;;;:::o;2541:127::-;2602:10;2597:3;2593:20;2590:1;2583:31;2633:4;2630:1;2623:15;2657:4;2654:1;2647:15;2673:125;2738:9;;;2759:10;;;2756:36;;;2772:18;;:::i;3160:128::-;3227:9;;;3248:11;;;3245:37;;;3262:18;;:::i","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","deposit()":"d0e30db0","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"Sentrix Labs\",\"details\":\"Standard wrapped-token pattern (mirror of WETH9). Self-contained, no external imports - keeps the canonical-contracts repo dependency-free. Compiles with solc 0.8.24, no SafeMath needed.\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"params\":{\"guy\":\"Spender.\",\"wad\":\"Allowance in wei. Pass `type(uint256).max` for infinite allowance.\"},\"returns\":{\"_0\":\"Always true on success (matches ERC-20 spec).\"}},\"transfer(address,uint256)\":{\"params\":{\"dst\":\"Recipient.\",\"wad\":\"Amount in wei.\"},\"returns\":{\"_0\":\"Always true on success.\"}},\"transferFrom(address,address,uint256)\":{\"params\":{\"dst\":\"Recipient.\",\"src\":\"Token holder.\",\"wad\":\"Amount in wei.\"},\"returns\":{\"_0\":\"Always true on success.\"}},\"withdraw(uint256)\":{\"params\":{\"wad\":\"Amount in wei (18-decimal). Must not exceed caller's balance.\"}}},\"title\":\"Wrapped SRX\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"approve(address,uint256)\":{\"notice\":\"Approve `guy` to spend up to `wad` of caller's WSRX.\"},\"deposit()\":{\"notice\":\"Wrap `msg.value` native SRX 1:1 into WSRX credited to caller.\"},\"transfer(address,uint256)\":{\"notice\":\"Transfer `wad` WSRX to `dst`.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Transfer `wad` WSRX from `src` to `dst` using caller's allowance.\"},\"withdraw(uint256)\":{\"notice\":\"Burn `wad` WSRX and return native SRX to caller.\"}},\"notice\":\"Wraps native SRX into an ERC-20 token (18 decimals at the EVM boundary). 1 SRX = 10^10 wei due to native ledger using 8 decimals; conversion is handled by the EVM database adapter, so `msg.value` here is already the wei amount and `wad` minted equals `msg.value` 1:1.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/WSRX.sol\":\"WSRX\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/openzeppelin-contracts/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"contracts/WSRX.sol\":{\"keccak256\":\"0x9b59e4354d3bd5fc768c546eafa022697d793ba41267d23539f84cc17c14a03b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8d1a76344fe993d8b51b13bbccaced13964af41cab0458c2cbfb62773912ea8\",\"dweb:/ipfs/QmXQd7UbkjbTzZFhvu19bicmaZT2hxZzU2T3Trq5Nm4rXr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"src","type":"address","indexed":true},{"internalType":"address","name":"guy","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"dst","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"address","name":"src","type":"address","indexed":true},{"internalType":"address","name":"dst","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"src","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"guy","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"params":{"guy":"Spender.","wad":"Allowance in wei. Pass `type(uint256).max` for infinite allowance."},"returns":{"_0":"Always true on success (matches ERC-20 spec)."}},"transfer(address,uint256)":{"params":{"dst":"Recipient.","wad":"Amount in wei."},"returns":{"_0":"Always true on success."}},"transferFrom(address,address,uint256)":{"params":{"dst":"Recipient.","src":"Token holder.","wad":"Amount in wei."},"returns":{"_0":"Always true on success."}},"withdraw(uint256)":{"params":{"wad":"Amount in wei (18-decimal). Must not exceed caller's balance."}}},"version":1},"userdoc":{"kind":"user","methods":{"approve(address,uint256)":{"notice":"Approve `guy` to spend up to `wad` of caller's WSRX."},"deposit()":{"notice":"Wrap `msg.value` native SRX 1:1 into WSRX credited to caller."},"transfer(address,uint256)":{"notice":"Transfer `wad` WSRX to `dst`."},"transferFrom(address,address,uint256)":{"notice":"Transfer `wad` WSRX from `src` to `dst` using caller's allowance."},"withdraw(uint256)":{"notice":"Burn `wad` WSRX and return native SRX to caller."}},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/openzeppelin-contracts/","forge-std/=lib/forge-std/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/WSRX.sol":"WSRX"},"evmVersion":"cancun","libraries":{}},"sources":{"contracts/WSRX.sol":{"keccak256":"0x9b59e4354d3bd5fc768c546eafa022697d793ba41267d23539f84cc17c14a03b","urls":["bzz-raw://e8d1a76344fe993d8b51b13bbccaced13964af41cab0458c2cbfb62773912ea8","dweb:/ipfs/QmXQd7UbkjbTzZFhvu19bicmaZT2hxZzU2T3Trq5Nm4rXr"],"license":"BUSL-1.1"}},"version":1},"storageLayout":{"storage":[{"astId":13,"contract":"contracts/WSRX.sol:WSRX","label":"totalSupply","offset":0,"slot":"0","type":"t_uint256"},{"astId":17,"contract":"contracts/WSRX.sol:WSRX","label":"balanceOf","offset":0,"slot":"1","type":"t_mapping(t_address,t_uint256)"},{"astId":23,"contract":"contracts/WSRX.sol:WSRX","label":"allowance","offset":0,"slot":"2","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"id":0}
@@ -0,0 +1,11 @@
1
+ // Canonical contract ABI re-exports.
2
+ // Until forge build runs, the per-contract JSONs are placeholders.
3
+ // `npm run abi` (or `make abi`) refreshes them from the compiled artifacts.
4
+
5
+ module.exports = {
6
+ WSRX: require("./WSRX.json"),
7
+ Multicall3: require("./Multicall3.json"),
8
+ SentrixSafe: require("./SentrixSafe.json"),
9
+ TokenFactory: require("./TokenFactory.json"),
10
+ FactoryToken: require("./FactoryToken.json"),
11
+ };