chore: publish artifact#6
Conversation
There was a problem hiding this comment.
Code Review
This pull request updates the .gitignore file to track a compiled Solidity artifact (Solver7702Delegate.json) inside the out/ directory. However, tracking files directly inside out/ is a known anti-pattern in Foundry projects because running forge clean will delete the directory and leave the repository in a dirty state; it is recommended to move the artifact to a dedicated directory like abi/. Additionally, the artifact was compiled with the Solidity optimizer disabled, which should be enabled to ensure gas efficiency for this production delegate contract.
kaze-cow
left a comment
There was a problem hiding this comment.
on my side initially when I delete the out/ file in order to test that the contracts are correctly regenerated, I am getting that the folder was never deleted, which seems weird to me. It corrects after I try to run git commit, informing me that the file was deleted but its not staged.
I understand you want to do this so that only the Solver7702delegate.json is included in the output, but to be honest, I am not sure of a great solution to this problem. Maybe its OK to just add the entire JSON output directory? there isn't all that much extra that would be pushed ot the repo as a result.
Otherwise, I am getting that there are changes to the out file when rebuilding the repo. more than insignificant things like a changed timestamp or whatever. any idea what is going on?
➜ solver-7702-delegate git:(chore/generate_out) ✗ diff -Naur delegateold.json delegatenew.json
--- delegateold.json 2026-05-26 17:38:30.641754741 +0900
+++ delegatenew.json 2026-05-26 17:38:51.797927168 +0900
@@ -28,40 +28,40 @@
}
],
"bytecode": {
- "object": "0x610120604052348015610010575f5ffd5b506040516107b53803806107b583398181016040528101906100329190610359565b805f6005811061004557610044610384565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508060016005811061009157610090610384565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050806002600581106100dd576100dc610384565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250508060036005811061012957610128610384565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250508060046005811061017557610174610384565b5b602002015173ffffffffffffffffffffffffffffffffffffffff166101008173ffffffffffffffffffffffffffffffffffffffff1681525050506103b1565b5f604051905090565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61020b826101c5565b810181811067ffffffffffffffff8211171561022a576102296101d5565b5b80604052505050565b5f61023c6101b4565b90506102488282610202565b919050565b5f67ffffffffffffffff821115610267576102666101d5565b5b602082029050919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61029f82610276565b9050919050565b6102af81610295565b81146102b9575f5ffd5b50565b5f815190506102ca816102a6565b92915050565b5f6102e26102dd8461024d565b610233565b905080602084028301858111156102fc576102fb610272565b5b835b81811015610325578061031188826102bc565b8452602084019350506020810190506102fe565b5050509392505050565b5f82601f830112610343576103426101c1565b5b60056103508482856102d0565b91505092915050565b5f60a0828403121561036e5761036d6101bd565b5b5f61037b8482850161032f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60805160a05160c05160e051610100516103ca6103eb5f395f61015d01525f61010701525f60b101525f605b01525f600601526103ca5ff3fe60806040527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806100a957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806100ff57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061015557507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806101ab57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b156101bd576101b8610203565b610201565b5f341161020157336040517f8e4a23d60000000000000000000000000000000000000000000000000000000081526004016101f8919061029a565b60405180910390fd5b005b60145f36905010610259575f5f365f90601492610222939291906102bb565b9061022d9190610336565b60601c90506014360360145f375f5f601436035f34855af13d5f5f3e805f8114610255573d5ff35b3d5ffd5b565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102848261025b565b9050919050565b6102948161027a565b82525050565b5f6020820190506102ad5f83018461028b565b92915050565b5f5ffd5b5f5ffd5b5f5f858511156102ce576102cd6102b3565b5b838611156102df576102de6102b7565b5b6001850283019150848603905094509492505050565b5f82905092915050565b5f7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b5f82821b905092915050565b5f61034183836102f5565b8261034c81356102ff565b9250601482101561038c576103877fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360140360080261032a565b831692505b50509291505056fea26469706673582212201b075c8a9277582db6341f9c6e0df1d1df5ef761196a6de211b43aecf51ca6d964736f6c63430008220033",
- "sourceMap": "184:3285:0:-:0;;;967:294;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1044:15;1060:1;1044:18;;;;;;;:::i;:::-;;;;;;1024:38;;;;;;;;;;1092:15;1108:1;1092:18;;;;;;;:::i;:::-;;;;;;1072:38;;;;;;;;;;1140:15;1156:1;1140:18;;;;;;;:::i;:::-;;;;;;1120:38;;;;;;;;;;1188:15;1204:1;1188:18;;;;;;;:::i;:::-;;;;;;1168:38;;;;;;;;;;1236:15;1252:1;1236:18;;;;;;;:::i;:::-;;;;;;1216:38;;;;;;;;;;967:294;184:3285;;7:75:1;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:249::-;1248:4;1338:18;1330:6;1327:30;1324:56;;;1360:18;;:::i;:::-;1324:56;1410:4;1402:6;1398:17;1390:25;;1173:249;;;:::o;1428:117::-;1537:1;1534;1527:12;1551:126;1588:7;1628:42;1621:5;1617:54;1606:65;;1551:126;;;:::o;1683:96::-;1720:7;1749:24;1767:5;1749:24;:::i;:::-;1738:35;;1683:96;;;:::o;1785:122::-;1858:24;1876:5;1858:24;:::i;:::-;1851:5;1848:35;1838:63;;1897:1;1894;1887:12;1838:63;1785:122;:::o;1913:143::-;1970:5;2001:6;1995:13;1986:22;;2017:33;2044:5;2017:33;:::i;:::-;1913:143;;;;:::o;2080:665::-;2185:5;2210:79;2226:62;2281:6;2226:62;:::i;:::-;2210:79;:::i;:::-;2201:88;;2309:5;2362:4;2354:6;2350:17;2342:6;2338:30;2391:3;2383:6;2380:15;2377:122;;;2410:79;;:::i;:::-;2377:122;2525:6;2508:231;2542:6;2537:3;2534:15;2508:231;;;2617:3;2646:48;2690:3;2678:10;2646:48;:::i;:::-;2641:3;2634:61;2724:4;2719:3;2715:14;2708:21;;2584:155;2568:4;2563:3;2559:14;2552:21;;2508:231;;;2512:21;2191:554;;2080:665;;;;;:::o;2769:361::-;2849:5;2898:3;2891:4;2883:6;2879:17;2875:27;2865:122;;2906:79;;:::i;:::-;2865:122;3010:4;3032:92;3120:3;3112:6;3104;3032:92;:::i;:::-;3023:101;;2855:275;2769:361;;;;:::o;3136:398::-;3229:6;3278:3;3266:9;3257:7;3253:23;3249:33;3246:120;;;3285:79;;:::i;:::-;3246:120;3405:1;3430:87;3509:7;3500:6;3489:9;3485:22;3430:87;:::i;:::-;3420:97;;3376:151;3136:398;;;;:::o;3540:180::-;3588:77;3585:1;3578:88;3685:4;3682:1;3675:15;3709:4;3706:1;3699:15;184:3285:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+ "object": "0x610120604052348015610010575f5ffd5b506040516107b53803806107b583398181016040528101906100329190610359565b805f6005811061004557610044610384565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508060016005811061009157610090610384565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050806002600581106100dd576100dc610384565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250508060036005811061012957610128610384565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250508060046005811061017557610174610384565b5b602002015173ffffffffffffffffffffffffffffffffffffffff166101008173ffffffffffffffffffffffffffffffffffffffff1681525050506103b1565b5f604051905090565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61020b826101c5565b810181811067ffffffffffffffff8211171561022a576102296101d5565b5b80604052505050565b5f61023c6101b4565b90506102488282610202565b919050565b5f67ffffffffffffffff821115610267576102666101d5565b5b602082029050919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61029f82610276565b9050919050565b6102af81610295565b81146102b9575f5ffd5b50565b5f815190506102ca816102a6565b92915050565b5f6102e26102dd8461024d565b610233565b905080602084028301858111156102fc576102fb610272565b5b835b81811015610325578061031188826102bc565b8452602084019350506020810190506102fe565b5050509392505050565b5f82601f830112610343576103426101c1565b5b60056103508482856102d0565b91505092915050565b5f60a0828403121561036e5761036d6101bd565b5b5f61037b8482850161032f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60805160a05160c05160e051610100516103ca6103eb5f395f61015d01525f61010701525f60b101525f605b01525f600601526103ca5ff3fe60806040527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806100a957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806100ff57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061015557507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806101ab57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b156101bd576101b8610203565b610201565b5f341161020157336040517f8e4a23d60000000000000000000000000000000000000000000000000000000081526004016101f8919061029a565b60405180910390fd5b005b60145f36905010610259575f5f365f90601492610222939291906102bb565b9061022d9190610336565b60601c90506014360360145f375f5f601436035f34855af13d5f5f3e805f8114610255573d5ff35b3d5ffd5b565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102848261025b565b9050919050565b6102948161027a565b82525050565b5f6020820190506102ad5f83018461028b565b92915050565b5f5ffd5b5f5ffd5b5f5f858511156102ce576102cd6102b3565b5b838611156102df576102de6102b7565b5b6001850283019150848603905094509492505050565b5f82905092915050565b5f7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b5f82821b905092915050565b5f61034183836102f5565b8261034c81356102ff565b9250601482101561038c576103877fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360140360080261032a565b831692505b50509291505056fea26469706673582212201c3bfa1d1ba98634598d023b2ca3512b32f653213c89b5e54f6d73542ab64c3964736f6c63430008220033",
+ "sourceMap": "184:3285:21:-:0;;;967:294;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1044:15;1060:1;1044:18;;;;;;;:::i;:::-;;;;;;1024:38;;;;;;;;;;1092:15;1108:1;1092:18;;;;;;;:::i;:::-;;;;;;1072:38;;;;;;;;;;1140:15;1156:1;1140:18;;;;;;;:::i;:::-;;;;;;1120:38;;;;;;;;;;1188:15;1204:1;1188:18;;;;;;;:::i;:::-;;;;;;1168:38;;;;;;;;;;1236:15;1252:1;1236:18;;;;;;;:::i;:::-;;;;;;1216:38;;;;;;;;;;967:294;184:3285;;7:75:25;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:249::-;1248:4;1338:18;1330:6;1327:30;1324:56;;;1360:18;;:::i;:::-;1324:56;1410:4;1402:6;1398:17;1390:25;;1173:249;;;:::o;1428:117::-;1537:1;1534;1527:12;1551:126;1588:7;1628:42;1621:5;1617:54;1606:65;;1551:126;;;:::o;1683:96::-;1720:7;1749:24;1767:5;1749:24;:::i;:::-;1738:35;;1683:96;;;:::o;1785:122::-;1858:24;1876:5;1858:24;:::i;:::-;1851:5;1848:35;1838:63;;1897:1;1894;1887:12;1838:63;1785:122;:::o;1913:143::-;1970:5;2001:6;1995:13;1986:22;;2017:33;2044:5;2017:33;:::i;:::-;1913:143;;;;:::o;2080:665::-;2185:5;2210:79;2226:62;2281:6;2226:62;:::i;:::-;2210:79;:::i;:::-;2201:88;;2309:5;2362:4;2354:6;2350:17;2342:6;2338:30;2391:3;2383:6;2380:15;2377:122;;;2410:79;;:::i;:::-;2377:122;2525:6;2508:231;2542:6;2537:3;2534:15;2508:231;;;2617:3;2646:48;2690:3;2678:10;2646:48;:::i;:::-;2641:3;2634:61;2724:4;2719:3;2715:14;2708:21;;2584:155;2568:4;2563:3;2559:14;2552:21;;2508:231;;;2512:21;2191:554;;2080:665;;;;;:::o;2769:361::-;2849:5;2898:3;2891:4;2883:6;2879:17;2875:27;2865:122;;2906:79;;:::i;:::-;2865:122;3010:4;3032:92;3120:3;3112:6;3104;3032:92;:::i;:::-;3023:101;;2855:275;2769:361;;;;:::o;3136:398::-;3229:6;3278:3;3266:9;3257:7;3253:23;3249:33;3246:120;;;3285:79;;:::i;:::-;3246:120;3405:1;3430:87;3509:7;3500:6;3489:9;3485:22;3430:87;:::i;:::-;3420:97;;3376:151;3136:398;;;;:::o;3540:180::-;3588:77;3585:1;3578:88;3685:4;3682:1;3675:15;3709:4;3706:1;3699:15;184:3285:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
"linkReferences": {}
},
"deployedBytecode": {
- "object": "0x60806040527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806100a957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806100ff57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061015557507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806101ab57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b156101bd576101b8610203565b610201565b5f341161020157336040517f8e4a23d60000000000000000000000000000000000000000000000000000000081526004016101f8919061029a565b60405180910390fd5b005b60145f36905010610259575f5f365f90601492610222939291906102bb565b9061022d9190610336565b60601c90506014360360145f375f5f601436035f34855af13d5f5f3e805f8114610255573d5ff35b3d5ffd5b565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102848261025b565b9050919050565b6102948161027a565b82525050565b5f6020820190506102ad5f83018461028b565b92915050565b5f5ffd5b5f5ffd5b5f5f858511156102ce576102cd6102b3565b5b838611156102df576102de6102b7565b5b6001850283019150848603905094509492505050565b5f82905092915050565b5f7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b5f82821b905092915050565b5f61034183836102f5565b8261034c81356102ff565b9250601482101561038c576103877fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360140360080261032a565b831692505b50509291505056fea26469706673582212201b075c8a9277582db6341f9c6e0df1d1df5ef761196a6de211b43aecf51ca6d964736f6c63430008220033",
- "sourceMap": "184:3285:0:-:0;;;1557:17;1543:31;;:10;:31;;;:66;;;;1592:17;1578:31;;:10;:31;;;1543:66;:101;;;;1627:17;1613:31;;:10;:31;;;1543:101;:152;;;;1678:17;1664:31;;:10;:31;;;1543:152;:187;;;;1713:17;1699:31;;:10;:31;;;1543:187;1526:236;;;1748:14;:12;:14::i;:::-;1741:21;;1526:236;1845:1;1833:9;:13;1848:7;1829:26;1884:10;1871:24;;;;;;;;;;;:::i;:::-;;;;;;;;1411:491;184:3285;1908:1559;2040:2;2022:8;;:15;;:20;2044:7;2018:33;2134:14;2167:8;;2176:1;2167:14;2178:2;2167:14;;;;;;;:::i;:::-;2159:23;;;;;:::i;:::-;2151:32;;2134:49;;2534:2;2518:14;2514:23;2510:2;2504:4;2491:47;3028:4;2953;2893:2;2877:14;2873:23;2809:4;2747:11;2701:6;2647:5;2621:476;3182:16;3176:4;3170;3155:44;3280:6;3304:1;3299:69;;;;3420:16;3414:4;3407:30;3299:69;3337:16;3331:4;3324:30;1908:1559;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;674:117::-;783:1;780;773:12;797:117;906:1;903;896:12;920:469;1025:9;1036;1074:8;1062:10;1059:24;1056:111;;;1086:79;;:::i;:::-;1056:111;1192:6;1182:8;1179:20;1176:107;;;1202:79;;:::i;:::-;1176:107;1333:1;1321:10;1317:18;1309:6;1305:31;1292:44;;1372:10;1362:8;1358:25;1345:38;;920:469;;;;;;;:::o;1395:96::-;1453:6;1481:3;1471:13;;1395:96;;;;:::o;1589:150::-;1626:7;1666:66;1659:5;1655:78;1644:89;;1589:150;;;:::o;1745:107::-;1789:8;1839:5;1833:4;1829:16;1808:37;;1745:107;;;;:::o;1858:552::-;1949:5;1980:45;2021:3;2014:5;1980:45;:::i;:::-;2050:5;2074:41;2105:8;2092:22;2074:41;:::i;:::-;2065:50;;2139:2;2131:6;2128:14;2125:278;;;2210:169;2295:66;2265:6;2261:2;2257:15;2254:1;2250:23;2210:169;:::i;:::-;2187:5;2166:227;2157:236;;2125:278;1955:455;;1858:552;;;;:::o",
+ "object": "0x60806040527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806100a957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806100ff57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061015557507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806101ab57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b156101bd576101b8610203565b610201565b5f341161020157336040517f8e4a23d60000000000000000000000000000000000000000000000000000000081526004016101f8919061029a565b60405180910390fd5b005b60145f36905010610259575f5f365f90601492610222939291906102bb565b9061022d9190610336565b60601c90506014360360145f375f5f601436035f34855af13d5f5f3e805f8114610255573d5ff35b3d5ffd5b565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102848261025b565b9050919050565b6102948161027a565b82525050565b5f6020820190506102ad5f83018461028b565b92915050565b5f5ffd5b5f5ffd5b5f5f858511156102ce576102cd6102b3565b5b838611156102df576102de6102b7565b5b6001850283019150848603905094509492505050565b5f82905092915050565b5f7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b5f82821b905092915050565b5f61034183836102f5565b8261034c81356102ff565b9250601482101561038c576103877fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360140360080261032a565b831692505b50509291505056fea26469706673582212201c3bfa1d1ba98634598d023b2ca3512b32f653213c89b5e54f6d73542ab64c3964736f6c63430008220033",
+ "sourceMap": "184:3285:21:-:0;;;1557:17;1543:31;;:10;:31;;;:66;;;;1592:17;1578:31;;:10;:31;;;1543:66;:101;;;;1627:17;1613:31;;:10;:31;;;1543:101;:152;;;;1678:17;1664:31;;:10;:31;;;1543:152;:187;;;;1713:17;1699:31;;:10;:31;;;1543:187;1526:236;;;1748:14;:12;:14::i;:::-;1741:21;;1526:236;1845:1;1833:9;:13;1848:7;1829:26;1884:10;1871:24;;;;;;;;;;;:::i;:::-;;;;;;;;1411:491;184:3285;1908:1559;2040:2;2022:8;;:15;;:20;2044:7;2018:33;2134:14;2167:8;;2176:1;2167:14;2178:2;2167:14;;;;;;;:::i;:::-;2159:23;;;;;:::i;:::-;2151:32;;2134:49;;2534:2;2518:14;2514:23;2510:2;2504:4;2491:47;3028:4;2953;2893:2;2877:14;2873:23;2809:4;2747:11;2701:6;2647:5;2621:476;3182:16;3176:4;3170;3155:44;3280:6;3304:1;3299:69;;;;3420:16;3414:4;3407:30;3299:69;3337:16;3331:4;3324:30;1908:1559;:::o;7:126:25:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;674:117::-;783:1;780;773:12;797:117;906:1;903;896:12;920:469;1025:9;1036;1074:8;1062:10;1059:24;1056:111;;;1086:79;;:::i;:::-;1056:111;1192:6;1182:8;1179:20;1176:107;;;1202:79;;:::i;:::-;1176:107;1333:1;1321:10;1317:18;1309:6;1305:31;1292:44;;1372:10;1362:8;1358:25;1345:38;;920:469;;;;;;;:::o;1395:96::-;1453:6;1481:3;1471:13;;1395:96;;;;:::o;1589:150::-;1626:7;1666:66;1659:5;1655:78;1644:89;;1589:150;;;:::o;1745:107::-;1789:8;1839:5;1833:4;1829:16;1808:37;;1745:107;;;;:::o;1858:552::-;1949:5;1980:45;2021:3;2014:5;1980:45;:::i;:::-;2050:5;2074:41;2105:8;2092:22;2074:41;:::i;:::-;2065:50;;2139:2;2131:6;2128:14;2125:278;;;2210:169;2295:66;2265:6;2261:2;2257:15;2254:1;2250:23;2210:169;:::i;:::-;2187:5;2166:227;2157:236;;2125:278;1955:455;;1858:552;;;;:::o",
"linkReferences": {},
"immutableReferences": {
- "10": [
+ "39973": [
{
"start": 6,
"length": 32
}
],
- "13": [
+ "39976": [
{
"start": 91,
"length": 32
}
],
- "16": [
+ "39979": [
{
"start": 177,
"length": 32
}
],
- "19": [
+ "39982": [
{
"start": 263,
"length": 32
}
],
- "22": [
+ "39985": [
{
"start": 349,
"length": 32
@@ -70,7 +70,7 @@
}
},
"methodIdentifiers": {},
- "rawMetadata": "{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[5]\",\"name\":\"approvedCallers\",\"type\":\"address[5]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"author\":\"CoW Foundation\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"approvedCallers\":\"The addresses of the approved callers\"}}},\"title\":\"Solver7702Delegate\",\"version\":1},\"userdoc\":{\"errors\":{\"Unauthorized(address)\":[{\"notice\":\"Error thrown when a caller is unauthorized\"}]},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructor to initialize the approved callers\"}},\"notice\":\"ERC-7702 delegation target for solver EOAs\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Solver7702Delegate.sol\":\"Solver7702Delegate\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/Solver7702Delegate.sol\":{\"keccak256\":\"0x48ae0100af780b45ed983e879faa9af7da0dc24ea9ca826bb4d3d5c5eac63f3d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbbb212f23035316bc61418448c1115b215d963267ad00f5d457ab6bd7a6f705\",\"dweb:/ipfs/QmZSMChrBCCqNafeSyGHhcrDHpXt7HiirACXBoFfkvsPCh\"]}},\"version\":1}",
+ "rawMetadata": "{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[5]\",\"name\":\"approvedCallers\",\"type\":\"address[5]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"author\":\"CoW Foundation\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"approvedCallers\":\"The addresses of the approved callers\"}}},\"title\":\"Solver7702Delegate\",\"version\":1},\"userdoc\":{\"errors\":{\"Unauthorized(address)\":[{\"notice\":\"Error thrown when a caller is unauthorized\"}]},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructor to initialize the approved callers\"}},\"notice\":\"ERC-7702 delegation target for solver EOAs\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Solver7702Delegate.sol\":\"Solver7702Delegate\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/Solver7702Delegate.sol\":{\"keccak256\":\"0x48ae0100af780b45ed983e879faa9af7da0dc24ea9ca826bb4d3d5c5eac63f3d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbbb212f23035316bc61418448c1115b215d963267ad00f5d457ab6bd7a6f705\",\"dweb:/ipfs/QmZSMChrBCCqNafeSyGHhcrDHpXt7HiirACXBoFfkvsPCh\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.34+commit.80d5c536"
@@ -129,7 +129,11 @@
},
"settings": {
"remappings": [
- "forge-std/=lib/forge-std/src/"
+ "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
+ "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
+ "forge-std/=lib/forge-std/src/",
+ "halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/",
+ "openzeppelin-contracts/=lib/openzeppelin-contracts/"
],
"optimizer": {
"enabled": false,
@@ -156,2014 +160,5 @@
},
"version": 1
},
- "ast": {
- "absolutePath": "src/Solver7702Delegate.sol",
- "id": 133,
- "exportedSymbols": {
- "Solver7702Delegate": [
- 132
- ]
- },
- "nodeType": "SourceUnit",
- "src": "46:3424:0",
- "nodes": [
- {
- "id": 1,
- "nodeType": "PragmaDirective",
- "src": "46:24:0",
- "nodes": [],
- "literals": [
- "solidity",
- "^",
- "0.8",
- ".34"
- ]
- },
- {
- "id": 132,
- "nodeType": "ContractDefinition",
- "src": "184:3285:0",
- "nodes": [
- {
- "id": 7,
- "nodeType": "ErrorDefinition",
- "src": "277:35:0",
- "nodes": [],
- "documentation": {
- "id": 3,
- "nodeType": "StructuredDocumentation",
- "src": "218:54:0",
- "text": "@notice Error thrown when a caller is unauthorized"
- },
- "errorSelector": "8e4a23d6",
- "name": "Unauthorized",
- "nameLocation": "283:12:0",
- "parameters": {
- "id": 6,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 5,
- "mutability": "mutable",
- "name": "sender",
- "nameLocation": "304:6:0",
- "nodeType": "VariableDeclaration",
- "scope": 7,
- "src": "296:14:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 4,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "296:7:0",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "295:16:0"
- }
- },
- {
- "id": 10,
- "nodeType": "VariableDeclaration",
- "src": "371:43:0",
- "nodes": [],
- "constant": false,
- "documentation": {
- "id": 8,
- "nodeType": "StructuredDocumentation",
- "src": "318:48:0",
- "text": "@notice Address of the first approved caller"
- },
- "mutability": "immutable",
- "name": "APPROVED_CALLER_0",
- "nameLocation": "397:17:0",
- "scope": 132,
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 9,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "371:7:0",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "private"
- },
- {
- "id": 13,
- "nodeType": "VariableDeclaration",
- "src": "475:43:0",
- "nodes": [],
- "constant": false,
- "documentation": {
- "id": 11,
- "nodeType": "StructuredDocumentation",
- "src": "421:49:0",
- "text": "@notice Address of the second approved caller"
- },
- "mutability": "immutable",
- "name": "APPROVED_CALLER_1",
- "nameLocation": "501:17:0",
- "scope": 132,
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 12,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "475:7:0",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "private"
- },
- {
- "id": 16,
- "nodeType": "VariableDeclaration",
- "src": "578:43:0",
- "nodes": [],
- "constant": false,
- "documentation": {
- "id": 14,
- "nodeType": "StructuredDocumentation",
- "src": "525:48:0",
- "text": "@notice Address of the third approved caller"
- },
- "mutability": "immutable",
- "name": "APPROVED_CALLER_2",
- "nameLocation": "604:17:0",
- "scope": 132,
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 15,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "578:7:0",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "private"
- },
- {
- "id": 19,
- "nodeType": "VariableDeclaration",
- "src": "682:43:0",
- "nodes": [],
- "constant": false,
- "documentation": {
- "id": 17,
- "nodeType": "StructuredDocumentation",
- "src": "628:49:0",
- "text": "@notice Address of the fourth approved caller"
- },
- "mutability": "immutable",
- "name": "APPROVED_CALLER_3",
- "nameLocation": "708:17:0",
- "scope": 132,
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 18,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "682:7:0",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "private"
- },
- {
- "id": 22,
- "nodeType": "VariableDeclaration",
- "src": "785:43:0",
- "nodes": [],
- "constant": false,
- "documentation": {
- "id": 20,
- "nodeType": "StructuredDocumentation",
- "src": "732:48:0",
- "text": "@notice Address of the fifth approved caller"
- },
- "mutability": "immutable",
- "name": "APPROVED_CALLER_4",
- "nameLocation": "811:17:0",
- "scope": 132,
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 21,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "785:7:0",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "private"
- },
- {
- "id": 61,
- "nodeType": "FunctionDefinition",
- "src": "967:294:0",
- "nodes": [],
- "body": {
- "id": 60,
- "nodeType": "Block",
- "src": "1014:247:0",
- "nodes": [],
- "statements": [
- {
- "expression": {
- "id": 34,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "id": 30,
- "name": "APPROVED_CALLER_0",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 10,
- "src": "1024:17:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "baseExpression": {
- "id": 31,
- "name": "approvedCallers",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 27,
- "src": "1044:15:0",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$5_memory_ptr",
- "typeString": "address[5] memory"
- }
- },
- "id": 33,
- "indexExpression": {
- "hexValue": "30",
- "id": 32,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1060:1:0",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "1044:18:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "1024:38:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 35,
- "nodeType": "ExpressionStatement",
- "src": "1024:38:0"
- },
- {
- "expression": {
- "id": 40,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "id": 36,
- "name": "APPROVED_CALLER_1",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 13,
- "src": "1072:17:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "baseExpression": {
- "id": 37,
- "name": "approvedCallers",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 27,
- "src": "1092:15:0",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$5_memory_ptr",
- "typeString": "address[5] memory"
- }
- },
- "id": 39,
- "indexExpression": {
- "hexValue": "31",
- "id": 38,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1108:1:0",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "1"
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "1092:18:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "1072:38:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 41,
- "nodeType": "ExpressionStatement",
- "src": "1072:38:0"
- },
- {
- "expression": {
- "id": 46,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "id": 42,
- "name": "APPROVED_CALLER_2",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 16,
- "src": "1120:17:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "baseExpression": {
- "id": 43,
- "name": "approvedCallers",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 27,
- "src": "1140:15:0",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$5_memory_ptr",
- "typeString": "address[5] memory"
- }
- },
- "id": 45,
- "indexExpression": {
- "hexValue": "32",
- "id": 44,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1156:1:0",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_2_by_1",
- "typeString": "int_const 2"
- },
- "value": "2"
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "1140:18:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "1120:38:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 47,
- "nodeType": "ExpressionStatement",
- "src": "1120:38:0"
- },
- {
- "expression": {
- "id": 52,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "id": 48,
- "name": "APPROVED_CALLER_3",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 19,
- "src": "1168:17:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "baseExpression": {
- "id": 49,
- "name": "approvedCallers",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 27,
- "src": "1188:15:0",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$5_memory_ptr",
- "typeString": "address[5] memory"
- }
- },
- "id": 51,
- "indexExpression": {
- "hexValue": "33",
- "id": 50,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1204:1:0",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_3_by_1",
- "typeString": "int_const 3"
- },
- "value": "3"
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "1188:18:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "1168:38:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 53,
- "nodeType": "ExpressionStatement",
- "src": "1168:38:0"
- },
- {
- "expression": {
- "id": 58,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "id": 54,
- "name": "APPROVED_CALLER_4",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 22,
- "src": "1216:17:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "baseExpression": {
- "id": 55,
- "name": "approvedCallers",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 27,
- "src": "1236:15:0",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$5_memory_ptr",
- "typeString": "address[5] memory"
- }
- },
- "id": 57,
- "indexExpression": {
- "hexValue": "34",
- "id": 56,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1252:1:0",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_4_by_1",
- "typeString": "int_const 4"
- },
- "value": "4"
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "1236:18:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "1216:38:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 59,
- "nodeType": "ExpressionStatement",
- "src": "1216:38:0"
- }
- ]
- },
- "documentation": {
- "id": 23,
- "nodeType": "StructuredDocumentation",
- "src": "835:127:0",
- "text": "@notice Constructor to initialize the approved callers\n @param approvedCallers The addresses of the approved callers"
- },
- "implemented": true,
- "kind": "constructor",
- "modifiers": [],
- "name": "",
- "nameLocation": "-1:-1:-1",
- "parameters": {
- "id": 28,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 27,
- "mutability": "mutable",
- "name": "approvedCallers",
- "nameLocation": "997:15:0",
- "nodeType": "VariableDeclaration",
- "scope": 61,
- "src": "979:33:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$5_memory_ptr",
- "typeString": "address[5]"
- },
- "typeName": {
- "baseType": {
- "id": 24,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "979:7:0",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 26,
- "length": {
- "hexValue": "35",
- "id": 25,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "987:1:0",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_5_by_1",
- "typeString": "int_const 5"
- },
- "value": "5"
- },
- "nodeType": "ArrayTypeName",
- "src": "979:10:0",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$5_storage_ptr",
- "typeString": "address[5]"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "978:35:0"
- },
- "returnParameters": {
- "id": 29,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "1014:0:0"
- },
- "scope": 132,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "id": 105,
- "nodeType": "FunctionDefinition",
- "src": "1411:491:0",
- "nodes": [],
- "body": {
- "id": 104,
- "nodeType": "Block",
- "src": "1439:463:0",
- "nodes": [],
- "statements": [
- {
- "condition": {
- "commonType": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "id": 88,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "commonType": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "id": 83,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "commonType": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "id": 78,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "commonType": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "id": 73,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 68,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "expression": {
- "id": 65,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "1543:3:0",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 66,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberLocation": "1547:6:0",
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "src": "1543:10:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "id": 67,
- "name": "APPROVED_CALLER_0",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 10,
- "src": "1557:17:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "1543:31:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "||",
- "rightExpression": {
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 72,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "expression": {
- "id": 69,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "1578:3:0",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 70,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberLocation": "1582:6:0",
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "src": "1578:10:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "id": 71,
- "name": "APPROVED_CALLER_1",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 13,
- "src": "1592:17:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "1578:31:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "src": "1543:66:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "||",
- "rightExpression": {
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 77,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "expression": {
- "id": 74,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "1613:3:0",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 75,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberLocation": "1617:6:0",
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "src": "1613:10:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "id": 76,
- "name": "APPROVED_CALLER_2",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 16,
- "src": "1627:17:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "1613:31:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "src": "1543:101:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "||",
- "rightExpression": {
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 82,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "expression": {
- "id": 79,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "1664:3:0",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 80,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberLocation": "1668:6:0",
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "src": "1664:10:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "id": 81,
- "name": "APPROVED_CALLER_3",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 19,
- "src": "1678:17:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "1664:31:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "src": "1543:152:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "||",
- "rightExpression": {
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 87,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "expression": {
- "id": 84,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "1699:3:0",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 85,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberLocation": "1703:6:0",
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "src": "1699:10:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "id": 86,
- "name": "APPROVED_CALLER_4",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 22,
- "src": "1713:17:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "1699:31:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "src": "1543:187:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "id": 92,
- "nodeType": "IfStatement",
- "src": "1526:236:0",
- "trueBody": {
- "expression": {
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 89,
- "name": "_callThrough",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 131,
- "src": "1748:12:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
- "typeString": "function ()"
- }
- },
- "id": 90,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "nameLocations": [],
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1748:14:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "functionReturnParameters": 64,
- "id": 91,
- "nodeType": "Return",
- "src": "1741:21:0"
- }
- },
- {
- "condition": {
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 96,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "expression": {
- "id": 93,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "1833:3:0",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 94,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberLocation": "1837:5:0",
- "memberName": "value",
- "nodeType": "MemberAccess",
- "src": "1833:9:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "hexValue": "30",
- "id": 95,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1845:1:0",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "1833:13:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "id": 98,
- "nodeType": "IfStatement",
- "src": "1829:26:0",
- "trueBody": {
- "functionReturnParameters": 64,
- "id": 97,
- "nodeType": "Return",
- "src": "1848:7:0"
- }
- },
- {
- "errorCall": {
- "arguments": [
- {
- "expression": {
- "id": 100,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "1884:3:0",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 101,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberLocation": "1888:6:0",
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "src": "1884:10:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 99,
- "name": "Unauthorized",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 7,
- "src": "1871:12:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$",
- "typeString": "function (address) pure returns (error)"
- }
- },
- "id": 102,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "nameLocations": [],
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1871:24:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_error",
- "typeString": "error"
- }
- },
- "id": 103,
- "nodeType": "RevertStatement",
- "src": "1864:31:0"
- }
- ]
- },
- "documentation": {
- "id": 62,
- "nodeType": "StructuredDocumentation",
- "src": "1267:139:0",
- "text": "@notice Fallback function to handle calls to the delegate\n @dev Expected calldata format is `bytes20(target) || targetCalldata`."
- },
- "implemented": true,
- "kind": "fallback",
- "modifiers": [],
- "name": "",
- "nameLocation": "-1:-1:-1",
- "parameters": {
- "id": 63,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "1419:2:0"
- },
- "returnParameters": {
- "id": 64,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "1439:0:0"
- },
- "scope": 132,
- "stateMutability": "payable",
- "virtual": false,
- "visibility": "external"
- },
- {
- "id": 131,
- "nodeType": "FunctionDefinition",
- "src": "1908:1559:0",
- "nodes": [],
- "body": {
- "id": 130,
- "nodeType": "Block",
- "src": "1941:1526:0",
- "nodes": [],
- "statements": [
- {
- "condition": {
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 112,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "expression": {
- "expression": {
- "id": 108,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "2022:3:0",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 109,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberLocation": "2026:4:0",
- "memberName": "data",
- "nodeType": "MemberAccess",
- "src": "2022:8:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 110,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberLocation": "2031:6:0",
- "memberName": "length",
- "nodeType": "MemberAccess",
- "src": "2022:15:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "<",
- "rightExpression": {
- "hexValue": "3230",
- "id": 111,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2040:2:0",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_20_by_1",
- "typeString": "int_const 20"
- },
- "value": "20"
- },
- "src": "2022:20:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "id": 114,
- "nodeType": "IfStatement",
- "src": "2018:33:0",
- "trueBody": {
- "functionReturnParameters": 107,
- "id": 113,
- "nodeType": "Return",
- "src": "2044:7:0"
- }
- },
- {
- "assignments": [
- 116
- ],
- "declarations": [
- {
- "constant": false,
- "id": 116,
- "mutability": "mutable",
- "name": "target",
- "nameLocation": "2142:6:0",
- "nodeType": "VariableDeclaration",
- "scope": 130,
- "src": "2134:14:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 115,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2134:7:0",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- }
- ],
- "id": 128,
- "initialValue": {
- "arguments": [
- {
- "arguments": [
- {
- "baseExpression": {
- "expression": {
- "id": 121,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "2167:3:0",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 122,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberLocation": "2171:4:0",
- "memberName": "data",
- "nodeType": "MemberAccess",
- "src": "2167:8:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "endExpression": {
- "hexValue": "3230",
- "id": 124,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2178:2:0",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_20_by_1",
- "typeString": "int_const 20"
- },
- "value": "20"
- },
- "id": 125,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexRangeAccess",
- "src": "2167:14:0",
- "startExpression": {
- "hexValue": "30",
- "id": 123,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2176:1:0",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr_slice",
- "typeString": "bytes calldata slice"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_calldata_ptr_slice",
- "typeString": "bytes calldata slice"
- }
- ],
- "id": 120,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "2159:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_bytes20_$",
- "typeString": "type(bytes20)"
- },
- "typeName": {
- "id": 119,
- "name": "bytes20",
- "nodeType": "ElementaryTypeName",
- "src": "2159:7:0",
- "typeDescriptions": {}
- }
- },
- "id": 126,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "nameLocations": [],
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2159:23:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes20",
- "typeString": "bytes20"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes20",
- "typeString": "bytes20"
- }
- ],
- "id": 118,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "2151:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 117,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2151:7:0",
- "typeDescriptions": {}
- }
- },
- "id": 127,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "nameLocations": [],
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2151:32:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "2134:49:0"
- },
- {
- "AST": {
- "nativeSrc": "2203:1258:0",
- "nodeType": "YulBlock",
- "src": "2203:1258:0",
- "statements": [
- {
- "expression": {
- "arguments": [
- {
- "kind": "number",
- "nativeSrc": "2504:4:0",
- "nodeType": "YulLiteral",
- "src": "2504:4:0",
- "type": "",
- "value": "0x00"
- },
- {
- "kind": "number",
- "nativeSrc": "2510:2:0",
- "nodeType": "YulLiteral",
- "src": "2510:2:0",
- "type": "",
- "value": "20"
- },
- {
- "arguments": [
- {
- "arguments": [],
- "functionName": {
- "name": "calldatasize",
- "nativeSrc": "2518:12:0",
- "nodeType": "YulIdentifier",
- "src": "2518:12:0"
- },
- "nativeSrc": "2518:14:0",
- "nodeType": "YulFunctionCall",
- "src": "2518:14:0"
- },
- {
- "kind": "number",
- "nativeSrc": "2534:2:0",
- "nodeType": "YulLiteral",
- "src": "2534:2:0",
- "type": "",
- "value": "20"
- }
- ],
- "functionName": {
- "name": "sub",
- "nativeSrc": "2514:3:0",
- "nodeType": "YulIdentifier",
- "src": "2514:3:0"
- },
- "nativeSrc": "2514:23:0",
- "nodeType": "YulFunctionCall",
- "src": "2514:23:0"
- }
- ],
- "functionName": {
- "name": "calldatacopy",
- "nativeSrc": "2491:12:0",
- "nodeType": "YulIdentifier",
- "src": "2491:12:0"
- },
- "nativeSrc": "2491:47:0",
- "nodeType": "YulFunctionCall",
- "src": "2491:47:0"
- },
- "nativeSrc": "2491:47:0",
- "nodeType": "YulExpressionStatement",
- "src": "2491:47:0"
- },
- {
- "nativeSrc": "2591:506:0",
- "nodeType": "YulVariableDeclaration",
- "src": "2591:506:0",
- "value": {
- "arguments": [
- {
- "arguments": [],
- "functionName": {
- "name": "gas",
- "nativeSrc": "2647:3:0",
- "nodeType": "YulIdentifier",
- "src": "2647:3:0"
- },
- "nativeSrc": "2647:5:0",
- "nodeType": "YulFunctionCall",
- "src": "2647:5:0"
- },
- {
- "name": "target",
- "nativeSrc": "2701:6:0",
- "nodeType": "YulIdentifier",
- "src": "2701:6:0"
- },
- {
- "arguments": [],
- "functionName": {
- "name": "callvalue",
- "nativeSrc": "2747:9:0",
- "nodeType": "YulIdentifier",
- "src": "2747:9:0"
- },
- "nativeSrc": "2747:11:0",
- "nodeType": "YulFunctionCall",
- "src": "2747:11:0"
- },
- {
- "kind": "number",
- "nativeSrc": "2809:4:0",
- "nodeType": "YulLiteral",
- "src": "2809:4:0",
- "type": "",
- "value": "0x00"
- },
- {
- "arguments": [
- {
- "arguments": [],
- "functionName": {
- "name": "calldatasize",
- "nativeSrc": "2877:12:0",
- "nodeType": "YulIdentifier",
- "src": "2877:12:0"
- },
- "nativeSrc": "2877:14:0",
- "nodeType": "YulFunctionCall",
- "src": "2877:14:0"
- },
- {
- "kind": "number",
- "nativeSrc": "2893:2:0",
- "nodeType": "YulLiteral",
- "src": "2893:2:0",
- "type": "",
- "value": "20"
- }
- ],
- "functionName": {
- "name": "sub",
- "nativeSrc": "2873:3:0",
- "nodeType": "YulIdentifier",
- "src": "2873:3:0"
- },
- "nativeSrc": "2873:23:0",
- "nodeType": "YulFunctionCall",
- "src": "2873:23:0"
- },
- {
- "kind": "number",
- "nativeSrc": "2953:4:0",
- "nodeType": "YulLiteral",
- "src": "2953:4:0",
- "type": "",
- "value": "0x00"
- },
- {
- "kind": "number",
- "nativeSrc": "3028:4:0",
- "nodeType": "YulLiteral",
- "src": "3028:4:0",
- "type": "",
- "value": "0x00"
- }
- ],
- "functionName": {
- "name": "call",
- "nativeSrc": "2621:4:0",
- "nodeType": "YulIdentifier",
- "src": "2621:4:0"
- },
- "nativeSrc": "2621:476:0",
- "nodeType": "YulFunctionCall",
- "src": "2621:476:0"
- },
- "variables": [
- {
- "name": "result",
- "nativeSrc": "2595:6:0",
- "nodeType": "YulTypedName",
- "src": "2595:6:0",
- "type": ""
- }
- ]
- },
- {
- "expression": {
- "arguments": [
- {
- "kind": "number",
- "nativeSrc": "3170:4:0",
- "nodeType": "YulLiteral",
- "src": "3170:4:0",
- "type": "",
- "value": "0x00"
- },
- {
- "kind": "number",
- "nativeSrc": "3176:4:0",
- "nodeType": "YulLiteral",
- "src": "3176:4:0",
- "type": "",
- "value": "0x00"
- },
- {
- "arguments": [],
- "functionName": {
- "name": "returndatasize",
- "nativeSrc": "3182:14:0",
- "nodeType": "YulIdentifier",
- "src": "3182:14:0"
- },
- "nativeSrc": "3182:16:0",
- "nodeType": "YulFunctionCall",
- "src": "3182:16:0"
- }
- ],
- "functionName": {
- "name": "returndatacopy",
- "nativeSrc": "3155:14:0",
- "nodeType": "YulIdentifier",
- "src": "3155:14:0"
- },
- "nativeSrc": "3155:44:0",
- "nodeType": "YulFunctionCall",
- "src": "3155:44:0"
- },
- "nativeSrc": "3155:44:0",
- "nodeType": "YulExpressionStatement",
- "src": "3155:44:0"
- },
- {
- "cases": [
- {
- "body": {
- "nativeSrc": "3306:62:0",
- "nodeType": "YulBlock",
- "src": "3306:62:0",
- "statements": [
- {
- "expression": {
- "arguments": [
- {
- "kind": "number",
- "nativeSrc": "3331:4:0",
- "nodeType": "YulLiteral",
- "src": "3331:4:0",
- "type": "",
- "value": "0x00"
- },
- {
- "arguments": [],
- "functionName": {
- "name": "returndatasize",
- "nativeSrc": "3337:14:0",
- "nodeType": "YulIdentifier",
- "src": "3337:14:0"
- },
- "nativeSrc": "3337:16:0",
- "nodeType": "YulFunctionCall",
- "src": "3337:16:0"
- }
- ],
- "functionName": {
- "name": "revert",
- "nativeSrc": "3324:6:0",
- "nodeType": "YulIdentifier",
- "src": "3324:6:0"
- },
- "nativeSrc": "3324:30:0",
- "nodeType": "YulFunctionCall",
- "src": "3324:30:0"
- },
- "nativeSrc": "3324:30:0",
- "nodeType": "YulExpressionStatement",
- "src": "3324:30:0"
- }
- ]
- },
- "nativeSrc": "3299:69:0",
- "nodeType": "YulCase",
- "src": "3299:69:0",
- "value": {
- "kind": "number",
- "nativeSrc": "3304:1:0",
- "nodeType": "YulLiteral",
- "src": "3304:1:0",
- "type": "",
- "value": "0"
- }
- },
- {
- "body": {
- "nativeSrc": "3389:62:0",
- "nodeType": "YulBlock",
- "src": "3389:62:0",
- "statements": [
- {
- "expression": {
- "arguments": [
- {
- "kind": "number",
- "nativeSrc": "3414:4:0",
- "nodeType": "YulLiteral",
- "src": "3414:4:0",
- "type": "",
- "value": "0x00"
- },
- {
- "arguments": [],
- "functionName": {
- "name": "returndatasize",
- "nativeSrc": "3420:14:0",
- "nodeType": "YulIdentifier",
- "src": "3420:14:0"
- },
- "nativeSrc": "3420:16:0",
- "nodeType": "YulFunctionCall",
- "src": "3420:16:0"
- }
- ],
- "functionName": {
- "name": "return",
- "nativeSrc": "3407:6:0",
- "nodeType": "YulIdentifier",
- "src": "3407:6:0"
- },
- "nativeSrc": "3407:30:0",
- "nodeType": "YulFunctionCall",
- "src": "3407:30:0"
- },
- "nativeSrc": "3407:30:0",
- "nodeType": "YulExpressionStatement",
- "src": "3407:30:0"
- }
- ]
- },
- "nativeSrc": "3381:70:0",
- "nodeType": "YulCase",
- "src": "3381:70:0",
- "value": "default"
- }
- ],
- "expression": {
- "name": "result",
- "nativeSrc": "3280:6:0",
- "nodeType": "YulIdentifier",
- "src": "3280:6:0"
- },
- "nativeSrc": "3273:178:0",
- "nodeType": "YulSwitch",
- "src": "3273:178:0"
- }
- ]
- },
- "evmVersion": "osaka",
- "externalReferences": [
- {
- "declaration": 116,
- "isOffset": false,
- "isSlot": false,
- "src": "2701:6:0",
- "valueSize": 1
- }
- ],
- "id": 129,
- "nodeType": "InlineAssembly",
- "src": "2194:1267:0"
- }
- ]
- },
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "_callThrough",
- "nameLocation": "1917:12:0",
- "parameters": {
- "id": 106,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "1929:2:0"
- },
- "returnParameters": {
- "id": 107,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "1941:0:0"
- },
- "scope": 132,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- }
- ],
- "abstract": false,
- "baseContracts": [],
- "canonicalName": "Solver7702Delegate",
- "contractDependencies": [],
- "contractKind": "contract",
- "documentation": {
- "id": 2,
- "nodeType": "StructuredDocumentation",
- "src": "72:112:0",
- "text": "@title Solver7702Delegate\n @author CoW Foundation\n @notice ERC-7702 delegation target for solver EOAs"
- },
- "fullyImplemented": true,
- "linearizedBaseContracts": [
- 132
- ],
- "name": "Solver7702Delegate",
- "nameLocation": "193:18:0",
- "scope": 133,
- "usedErrors": [
- 7
- ],
- "usedEvents": []
- }
- ],
- "license": "MIT OR Apache-2.0"
- },
- "id": 0
+ "id": 21
}
kaze-cow
left a comment
There was a problem hiding this comment.
I was able to reproduce the output in the
Important to note that certain factors could cause the output artifact to differ:
- need to run
forge cleanto ensure starting from a clean slate - foundry version should match up
➜ solver-7702-delegate git:(chore/generate_out) ✗ forge --version
forge Version: 1.7.1
Commit SHA: 4072e48705af9d93e3c0f6e29e93b5e9a40caed8
Build Timestamp: 2026-05-08T07:51:38.906894496Z (1778226698)
Build Profile: dist
- No excess submodules/dependencies installed in the
lib/folder (or else forge will try to pick them up as extra remapping dependencies) - run
just alland notjust build
Description
Publishes the
outartifact forSolver7702Delegateso it can be used byservicesrepo.Context
See above.
Out of Scope
None.
Testing Instructions
None.