Skip to content

chore: publish artifact#6

Merged
igorroncevic merged 2 commits into
mainfrom
chore/generate_out
May 26, 2026
Merged

chore: publish artifact#6
igorroncevic merged 2 commits into
mainfrom
chore/generate_out

Conversation

@igorroncevic
Copy link
Copy Markdown
Collaborator

Description

Publishes the out artifact for Solver7702Delegate so it can be used by services repo.

Context

See above.

Out of Scope

None.

Testing Instructions

None.

@igorroncevic igorroncevic requested a review from a team May 26, 2026 08:32
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread .gitignore
Comment thread out/Solver7702Delegate.sol/Solver7702Delegate.json Outdated
Copy link
Copy Markdown

@kaze-cow kaze-cow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
 }

@igorroncevic igorroncevic requested a review from kaze-cow May 26, 2026 08:50
Copy link
Copy Markdown

@kaze-cow kaze-cow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 clean to 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 all and not just build

@igorroncevic igorroncevic merged commit 5b6bd5f into main May 26, 2026
6 checks passed
@igorroncevic igorroncevic deleted the chore/generate_out branch May 26, 2026 09:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants