descent-js
Version:
A Typescript library for interacting with the Descent Protocol
926 lines (925 loc) • 56.6 kB
JSON
{
"abi": [
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "target",
"type": "address"
},
{
"internalType": "bytes",
"name": "callData",
"type": "bytes"
}
],
"internalType": "struct MultiStaticcall.Staticcall[]",
"name": "staticcalls",
"type": "tuple[]"
}
],
"name": "multiStaticcall",
"outputs": [
{
"components": [
{
"internalType": "bytes",
"name": "returnDatum",
"type": "bytes"
},
{
"internalType": "bool",
"name": "success",
"type": "bool"
}
],
"internalType": "struct MultiStaticcall.ReturnDatum[]",
"name": "returnData",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": {
"object": "0x608060405234801561001057600080fd5b506104a7806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e719c88814610030575b600080fd5b61004361003e3660046101b3565b610059565b604051610050919061024c565b60405180910390f35b60608167ffffffffffffffff811115610074576100746102d8565b6040519080825280602002602001820160405280156100ba57816020015b6040805180820190915260608152600060208201528152602001906001900390816100925790505b50905060005b828110156101ac5760408051808201909152606081526000602082015260008585848181106100f1576100f16102ee565b90506020028101906101039190610304565b61010c9061037e565b905080600001516001600160a01b0316816020015160405161012e9190610438565b600060405180830381855afa9150503d8060008114610169576040519150601f19603f3d011682016040523d82523d6000602084013e61016e565b606091505b508352151560208301528351829085908590811061018e5761018e6102ee565b60200260200101819052505050806101a59061044a565b90506100c0565b5092915050565b600080602083850312156101c657600080fd5b823567ffffffffffffffff808211156101de57600080fd5b818501915085601f8301126101f257600080fd5b81358181111561020157600080fd5b8660208260051b850101111561021657600080fd5b60209290920196919550909350505050565b60005b8381101561024357818101518382015260200161022b565b50506000910152565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156102ca57603f19898403018552815180518785528051808987015260606102a3828289018d8601610228565b928a01511515868b015296890196601f01601f191690940101925090860190600101610273565b509098975050505050505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60008235603e1983360301811261031a57600080fd5b9190910192915050565b6040805190810167ffffffffffffffff81118282101715610347576103476102d8565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610376576103766102d8565b604052919050565b60006040823603121561039057600080fd5b610398610324565b82356001600160a01b03811681146103af57600080fd5b815260208381013567ffffffffffffffff808211156103cd57600080fd5b9085019036601f8301126103e057600080fd5b8135818111156103f2576103f26102d8565b610404601f8201601f1916850161034d565b9150808252368482850101111561041a57600080fd5b80848401858401376000908201840152918301919091525092915050565b6000825161031a818460208701610228565b60006001820161046a57634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220acd7d21b3cf7b720dd7521008e15170ad0bbb5e6f137ebce924a89b04a61c50a64736f6c63430008150033",
"sourceMap": "58:727:44:-:0;;;;;;;;;;;;;;;;;;;",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e719c88814610030575b600080fd5b61004361003e3660046101b3565b610059565b604051610050919061024c565b60405180910390f35b60608167ffffffffffffffff811115610074576100746102d8565b6040519080825280602002602001820160405280156100ba57816020015b6040805180820190915260608152600060208201528152602001906001900390816100925790505b50905060005b828110156101ac5760408051808201909152606081526000602082015260008585848181106100f1576100f16102ee565b90506020028101906101039190610304565b61010c9061037e565b905080600001516001600160a01b0316816020015160405161012e9190610438565b600060405180830381855afa9150503d8060008114610169576040519150601f19603f3d011682016040523d82523d6000602084013e61016e565b606091505b508352151560208301528351829085908590811061018e5761018e6102ee565b60200260200101819052505050806101a59061044a565b90506100c0565b5092915050565b600080602083850312156101c657600080fd5b823567ffffffffffffffff808211156101de57600080fd5b818501915085601f8301126101f257600080fd5b81358181111561020157600080fd5b8660208260051b850101111561021657600080fd5b60209290920196919550909350505050565b60005b8381101561024357818101518382015260200161022b565b50506000910152565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156102ca57603f19898403018552815180518785528051808987015260606102a3828289018d8601610228565b928a01511515868b015296890196601f01601f191690940101925090860190600101610273565b509098975050505050505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60008235603e1983360301811261031a57600080fd5b9190910192915050565b6040805190810167ffffffffffffffff81118282101715610347576103476102d8565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610376576103766102d8565b604052919050565b60006040823603121561039057600080fd5b610398610324565b82356001600160a01b03811681146103af57600080fd5b815260208381013567ffffffffffffffff808211156103cd57600080fd5b9085019036601f8301126103e057600080fd5b8135818111156103f2576103f26102d8565b610404601f8201601f1916850161034d565b9150808252368482850101111561041a57600080fd5b80848401858401376000908201840152918301919091525092915050565b6000825161031a818460208701610228565b60006001820161046a57634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220acd7d21b3cf7b720dd7521008e15170ad0bbb5e6f137ebce924a89b04a61c50a64736f6c63430008150033",
"sourceMap": "58:727:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;249:534;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;356:31;434:11;416:37;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;416:37:44;;;;;;;;;;;;;;;;403:50;;469:9;464:313;480:22;;;464:313;;;-1:-1:-1;;;;;;;;;;;;;;;;;567:28:44;598:11;;610:1;598:14;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;567:45;;;:::i;:::-;;;675:10;:17;;;-1:-1:-1;;;;;675:28:44;704:10;:19;;;675:49;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;626:98:44;;;;627:19;;;626:98;739:13;;627:11;;739:10;;750:1;;739:13;;;;;;:::i;:::-;;;;;;:27;;;;509:268;;504:3;;;;:::i;:::-;;;464:313;;;;249:534;;;;:::o;14:646:47:-;131:6;139;192:2;180:9;171:7;167:23;163:32;160:52;;;208:1;205;198:12;160:52;248:9;235:23;277:18;318:2;310:6;307:14;304:34;;;334:1;331;324:12;304:34;372:6;361:9;357:22;347:32;;417:7;410:4;406:2;402:13;398:27;388:55;;439:1;436;429:12;388:55;479:2;466:16;505:2;497:6;494:14;491:34;;;521:1;518;511:12;491:34;574:7;569:2;559:6;556:1;552:14;548:2;544:23;540:32;537:45;534:65;;;595:1;592;585:12;534:65;626:2;618:11;;;;;648:6;;-1:-1:-1;14:646:47;;-1:-1:-1;;;;14:646:47:o;665:250::-;750:1;760:113;774:6;771:1;768:13;760:113;;;850:11;;;844:18;831:11;;;824:39;796:2;789:10;760:113;;;-1:-1:-1;;907:1:47;889:16;;882:27;665:250::o;920:1274::-;1122:4;1151:2;1191;1180:9;1176:18;1221:2;1210:9;1203:21;1244:6;1279;1273:13;1310:6;1302;1295:22;1336:2;1326:12;;1369:2;1358:9;1354:18;1347:25;;1431:2;1421:6;1418:1;1414:14;1403:9;1399:30;1395:39;1469:2;1461:6;1457:15;1490:1;1500:665;1514:6;1511:1;1508:13;1500:665;;;1607:2;1603:7;1591:9;1583:6;1579:22;1575:36;1570:3;1563:49;1641:6;1635:13;1687:2;1681:9;1718:2;1710:6;1703:18;1756:12;1750:19;1806:8;1801:2;1793:6;1789:15;1782:33;1838:2;1853:84;1928:8;1923:2;1915:6;1911:15;1906:2;1892:12;1888:21;1853:84;:::i;:::-;1994:11;;;1988:18;1981:26;1974:34;1957:15;;;1950:59;2143:12;;;;2075:2;2052:17;-1:-1:-1;;2048:31:47;2036:44;;;2032:53;;-1:-1:-1;2108:15:47;;;;1536:1;1529:9;1500:665;;;-1:-1:-1;2182:6:47;;920:1274;-1:-1:-1;;;;;;;;920:1274:47:o;2199:127::-;2260:10;2255:3;2251:20;2248:1;2241:31;2291:4;2288:1;2281:15;2315:4;2312:1;2305:15;2331:127;2392:10;2387:3;2383:20;2380:1;2373:31;2423:4;2420:1;2413:15;2447:4;2444:1;2437:15;2463:328;2560:4;2618:11;2605:25;2712:2;2708:7;2697:8;2681:14;2677:29;2673:43;2653:18;2649:68;2639:96;;2731:1;2728;2721:12;2639:96;2752:33;;;;;2463:328;-1:-1:-1;;2463:328:47:o;2796:257::-;2868:4;2862:11;;;2900:17;;2947:18;2932:34;;2968:22;;;2929:62;2926:88;;;2994:18;;:::i;:::-;3030:4;3023:24;2796:257;:::o;3058:275::-;3129:2;3123:9;3194:2;3175:13;;-1:-1:-1;;3171:27:47;3159:40;;3229:18;3214:34;;3250:22;;;3211:62;3208:88;;;3276:18;;:::i;:::-;3312:2;3305:22;3058:275;;-1:-1:-1;3058:275:47:o;3338:1078::-;3448:9;3507:4;3499:5;3483:14;3479:26;3475:37;3472:57;;;3525:1;3522;3515:12;3472:57;3553:22;;:::i;:::-;3599:19;;-1:-1:-1;;;;;3649:33:47;;3637:46;;3627:74;;3697:1;3694;3687:12;3627:74;3710:24;;3753:2;3791:14;;;3778:28;3825:18;3855:14;;;3852:34;;;3882:1;3879;3872:12;3852:34;3905:18;;;;3961:14;3954:4;3946:13;;3942:34;3932:62;;3990:1;3987;3980:12;3932:62;4026:2;4013:16;4048:2;4044;4041:10;4038:36;;;4054:18;;:::i;:::-;4096:53;4139:2;4120:13;;-1:-1:-1;;4116:27:47;4112:36;;4096:53;:::i;:::-;4083:66;;4172:2;4165:5;4158:17;4212:14;4207:2;4202;4198;4194:11;4190:20;4187:40;4184:60;;;4240:1;4237;4230:12;4184:60;4295:2;4290;4286;4282:11;4277:2;4270:5;4266:14;4253:45;4339:1;4318:14;;;4314:23;;4307:34;4357:16;;;4350:31;;;;-1:-1:-1;4361:7:47;3338:1078;-1:-1:-1;;3338:1078:47:o;4421:287::-;4550:3;4588:6;4582:13;4604:66;4663:6;4658:3;4651:4;4643:6;4639:17;4604:66;:::i;4713:232::-;4752:3;4773:17;;;4770:140;;4832:10;4827:3;4823:20;4820:1;4813:31;4867:4;4864:1;4857:15;4895:4;4892:1;4885:15;4770:140;-1:-1:-1;4937:1:47;4926:13;;4713:232::o",
"linkReferences": {}
},
"methodIdentifiers": {
"multiStaticcall((address,bytes)[])": "e719c888"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct MultiStaticcall.Staticcall[]\",\"name\":\"staticcalls\",\"type\":\"tuple[]\"}],\"name\":\"multiStaticcall\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"returnDatum\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"internalType\":\"struct MultiStaticcall.ReturnDatum[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/multiStaticcall.sol\":\"MultiStaticcall\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/protocol-core/lib/openzeppelin-contracts/\",\":@openzeppelin/contracts/=lib/protocol-core/lib/openzeppelin-contracts/contracts/\",\":descent-collective/protocol-core/=lib/protocol-core/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/protocol-core/lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/protocol-core/lib/openzeppelin-contracts/\",\":protocol-core/=lib/protocol-core/\"]},\"sources\":{\"src/multiStaticcall.sol\":{\"keccak256\":\"0xd8bfab36326122e209b9a96514a941eb5eb402d3e43c557d3fd6123848191064\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ec868ef53ed40b0dc2682ee70cdbdeb4f79142c200451ca21b09d4dafb4f74c\",\"dweb:/ipfs/QmXDtKe1BCKrzRX4GD9o57jn7bG1NnmygN97ehEHNpdB8Y\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.21+commit.d9974bed"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "struct MultiStaticcall.Staticcall[]",
"name": "staticcalls",
"type": "tuple[]",
"components": [
{
"internalType": "address",
"name": "target",
"type": "address"
},
{
"internalType": "bytes",
"name": "callData",
"type": "bytes"
}
]
}
],
"stateMutability": "view",
"type": "function",
"name": "multiStaticcall",
"outputs": [
{
"internalType": "struct MultiStaticcall.ReturnDatum[]",
"name": "returnData",
"type": "tuple[]",
"components": [
{
"internalType": "bytes",
"name": "returnDatum",
"type": "bytes"
},
{
"internalType": "bool",
"name": "success",
"type": "bool"
}
]
}
]
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"remappings": [
"@openzeppelin/=lib/protocol-core/lib/openzeppelin-contracts/",
"@openzeppelin/contracts/=lib/protocol-core/lib/openzeppelin-contracts/contracts/",
"descent-collective/protocol-core/=lib/protocol-core/src/",
"ds-test/=lib/forge-std/lib/ds-test/src/",
"erc4626-tests/=lib/protocol-core/lib/openzeppelin-contracts/lib/erc4626-tests/",
"forge-std/=lib/forge-std/src/",
"openzeppelin-contracts/=lib/protocol-core/lib/openzeppelin-contracts/",
"protocol-core/=lib/protocol-core/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"bytecodeHash": "ipfs"
},
"compilationTarget": {
"src/multiStaticcall.sol": "MultiStaticcall"
},
"libraries": {}
},
"sources": {
"src/multiStaticcall.sol": {
"keccak256": "0xd8bfab36326122e209b9a96514a941eb5eb402d3e43c557d3fd6123848191064",
"urls": [
"bzz-raw://3ec868ef53ed40b0dc2682ee70cdbdeb4f79142c200451ca21b09d4dafb4f74c",
"dweb:/ipfs/QmXDtKe1BCKrzRX4GD9o57jn7bG1NnmygN97ehEHNpdB8Y"
],
"license": "MIT"
}
},
"version": 1
},
"ast": {
"absolutePath": "src/multiStaticcall.sol",
"id": 46091,
"exportedSymbols": {
"MultiStaticcall": [46090]
},
"nodeType": "SourceUnit",
"src": "33:753:44",
"nodes": [
{
"id": 46014,
"nodeType": "PragmaDirective",
"src": "33:23:44",
"nodes": [],
"literals": ["solidity", "0.8", ".21"]
},
{
"id": 46090,
"nodeType": "ContractDefinition",
"src": "58:727:44",
"nodes": [
{
"id": 46019,
"nodeType": "StructDefinition",
"src": "89:73:44",
"nodes": [],
"canonicalName": "MultiStaticcall.Staticcall",
"members": [
{
"constant": false,
"id": 46016,
"mutability": "mutable",
"name": "target",
"nameLocation": "125:6:44",
"nodeType": "VariableDeclaration",
"scope": 46019,
"src": "117:14:44",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 46015,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "117:7:44",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 46018,
"mutability": "mutable",
"name": "callData",
"nameLocation": "147:8:44",
"nodeType": "VariableDeclaration",
"scope": 46019,
"src": "141:14:44",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 46017,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "141:5:44",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"name": "Staticcall",
"nameLocation": "96:10:44",
"scope": 46090,
"visibility": "public"
},
{
"id": 46024,
"nodeType": "StructDefinition",
"src": "168:75:44",
"nodes": [],
"canonicalName": "MultiStaticcall.ReturnDatum",
"members": [
{
"constant": false,
"id": 46021,
"mutability": "mutable",
"name": "returnDatum",
"nameLocation": "203:11:44",
"nodeType": "VariableDeclaration",
"scope": 46024,
"src": "197:17:44",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 46020,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "197:5:44",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 46023,
"mutability": "mutable",
"name": "success",
"nameLocation": "229:7:44",
"nodeType": "VariableDeclaration",
"scope": 46024,
"src": "224:12:44",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 46022,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "224:4:44",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"name": "ReturnDatum",
"nameLocation": "175:11:44",
"scope": 46090,
"visibility": "public"
},
{
"id": 46089,
"nodeType": "FunctionDefinition",
"src": "249:534:44",
"nodes": [],
"body": {
"id": 46088,
"nodeType": "Block",
"src": "393:390:44",
"nodes": [],
"statements": [
{
"expression": {
"id": 46043,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 46035,
"name": "returnData",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46033,
"src": "403:10:44",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_ReturnDatum_$46024_memory_ptr_$dyn_memory_ptr",
"typeString": "struct MultiStaticcall.ReturnDatum memory[] memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"expression": {
"id": 46040,
"name": "staticcalls",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46028,
"src": "434:11:44",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Staticcall_$46019_calldata_ptr_$dyn_calldata_ptr",
"typeString": "struct MultiStaticcall.Staticcall calldata[] calldata"
}
},
"id": 46041,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "446:6:44",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "434:18:44",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 46039,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "416:17:44",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ReturnDatum_$46024_memory_ptr_$dyn_memory_ptr_$",
"typeString": "function (uint256) pure returns (struct MultiStaticcall.ReturnDatum memory[] memory)"
},
"typeName": {
"baseType": {
"id": 46037,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 46036,
"name": "ReturnDatum",
"nameLocations": ["420:11:44"],
"nodeType": "IdentifierPath",
"referencedDeclaration": 46024,
"src": "420:11:44"
},
"referencedDeclaration": 46024,
"src": "420:11:44",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ReturnDatum_$46024_storage_ptr",
"typeString": "struct MultiStaticcall.ReturnDatum"
}
},
"id": 46038,
"nodeType": "ArrayTypeName",
"src": "420:13:44",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_ReturnDatum_$46024_storage_$dyn_storage_ptr",
"typeString": "struct MultiStaticcall.ReturnDatum[]"
}
}
},
"id": 46042,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "416:37:44",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_ReturnDatum_$46024_memory_ptr_$dyn_memory_ptr",
"typeString": "struct MultiStaticcall.ReturnDatum memory[] memory"
}
},
"src": "403:50:44",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_ReturnDatum_$46024_memory_ptr_$dyn_memory_ptr",
"typeString": "struct MultiStaticcall.ReturnDatum memory[] memory"
}
},
"id": 46044,
"nodeType": "ExpressionStatement",
"src": "403:50:44"
},
{
"body": {
"id": 46086,
"nodeType": "Block",
"src": "509:268:44",
"statements": [
{
"assignments": [46057],
"declarations": [
{
"constant": false,
"id": 46057,
"mutability": "mutable",
"name": "returnDatum",
"nameLocation": "542:11:44",
"nodeType": "VariableDeclaration",
"scope": 46086,
"src": "523:30:44",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ReturnDatum_$46024_memory_ptr",
"typeString": "struct MultiStaticcall.ReturnDatum"
},
"typeName": {
"id": 46056,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 46055,
"name": "ReturnDatum",
"nameLocations": ["523:11:44"],
"nodeType": "IdentifierPath",
"referencedDeclaration": 46024,
"src": "523:11:44"
},
"referencedDeclaration": 46024,
"src": "523:11:44",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ReturnDatum_$46024_storage_ptr",
"typeString": "struct MultiStaticcall.ReturnDatum"
}
},
"visibility": "internal"
}
],
"id": 46058,
"nodeType": "VariableDeclarationStatement",
"src": "523:30:44"
},
{
"assignments": [46061],
"declarations": [
{
"constant": false,
"id": 46061,
"mutability": "mutable",
"name": "staticcall",
"nameLocation": "585:10:44",
"nodeType": "VariableDeclaration",
"scope": 46086,
"src": "567:28:44",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Staticcall_$46019_memory_ptr",
"typeString": "struct MultiStaticcall.Staticcall"
},
"typeName": {
"id": 46060,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 46059,
"name": "Staticcall",
"nameLocations": ["567:10:44"],
"nodeType": "IdentifierPath",
"referencedDeclaration": 46019,
"src": "567:10:44"
},
"referencedDeclaration": 46019,
"src": "567:10:44",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Staticcall_$46019_storage_ptr",
"typeString": "struct MultiStaticcall.Staticcall"
}
},
"visibility": "internal"
}
],
"id": 46065,
"initialValue": {
"baseExpression": {
"id": 46062,
"name": "staticcalls",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46028,
"src": "598:11:44",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Staticcall_$46019_calldata_ptr_$dyn_calldata_ptr",
"typeString": "struct MultiStaticcall.Staticcall calldata[] calldata"
}
},
"id": 46064,
"indexExpression": {
"id": 46063,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46046,
"src": "610:1:44",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "598:14:44",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Staticcall_$46019_calldata_ptr",
"typeString": "struct MultiStaticcall.Staticcall calldata"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "567:45:44"
},
{
"expression": {
"id": 46078,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"components": [
{
"expression": {
"id": 46066,
"name": "returnDatum",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46057,
"src": "627:11:44",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ReturnDatum_$46024_memory_ptr",
"typeString": "struct MultiStaticcall.ReturnDatum memory"
}
},
"id": 46068,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "639:7:44",
"memberName": "success",
"nodeType": "MemberAccess",
"referencedDeclaration": 46023,
"src": "627:19:44",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"expression": {
"id": 46069,
"name": "returnDatum",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46057,
"src": "648:11:44",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ReturnDatum_$46024_memory_ptr",
"typeString": "struct MultiStaticcall.ReturnDatum memory"
}
},
"id": 46070,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "660:11:44",
"memberName": "returnDatum",
"nodeType": "MemberAccess",
"referencedDeclaration": 46021,
"src": "648:23:44",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"id": 46071,
"isConstant": false,
"isInlineArray": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "TupleExpression",
"src": "626:46:44",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"expression": {
"id": 46075,
"name": "staticcall",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46061,
"src": "704:10:44",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Staticcall_$46019_memory_ptr",
"typeString": "struct MultiStaticcall.Staticcall memory"
}
},
"id": 46076,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "715:8:44",
"memberName": "callData",
"nodeType": "MemberAccess",
"referencedDeclaration": 46018,
"src": "704:19:44",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"expression": {
"id": 46072,
"name": "staticcall",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46061,
"src": "675:10:44",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Staticcall_$46019_memory_ptr",
"typeString": "struct MultiStaticcall.Staticcall memory"
}
},
"id": 46073,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "686:6:44",
"memberName": "target",
"nodeType": "MemberAccess",
"referencedDeclaration": 46016,
"src": "675:17:44",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 46074,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "693:10:44",
"memberName": "staticcall",
"nodeType": "MemberAccess",
"src": "675:28:44",
"typeDescriptions": {
"typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "function (bytes memory) view returns (bool,bytes memory)"
}
},
"id": 46077,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "675:49:44",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"src": "626:98:44",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 46079,
"nodeType": "ExpressionStatement",
"src": "626:98:44"
},
{
"expression": {
"id": 46084,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 46080,
"name": "returnData",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46033,
"src": "739:10:44",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_ReturnDatum_$46024_memory_ptr_$dyn_memory_ptr",
"typeString": "struct MultiStaticcall.ReturnDatum memory[] memory"
}
},
"id": 46082,
"indexExpression": {
"id": 46081,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46046,
"src": "750:1:44",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "739:13:44",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ReturnDatum_$46024_memory_ptr",
"typeString": "struct MultiStaticcall.ReturnDatum memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 46083,
"name": "returnDatum",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46057,
"src": "755:11:44",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ReturnDatum_$46024_memory_ptr",
"typeString": "struct MultiStaticcall.ReturnDatum memory"
}
},
"src": "739:27:44",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ReturnDatum_$46024_memory_ptr",
"typeString": "struct MultiStaticcall.ReturnDatum memory"
}
},
"id": 46085,
"nodeType": "ExpressionStatement",
"src": "739:27:44"
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 46051,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 46048,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46046,
"src": "480:1:44",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"expression": {
"id": 46049,
"name": "staticcalls",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46028,
"src": "484:11:44",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Staticcall_$46019_calldata_ptr_$dyn_calldata_ptr",
"typeString": "struct MultiStaticcall.Staticcall calldata[] calldata"
}
},
"id": 46050,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "496:6:44",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "484:18:44",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "480:22:44",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 46087,
"initializationExpression": {
"assignments": [46046],
"declarations": [
{
"constant": false,
"id": 46046,
"mutability": "mutable",
"name": "i",
"nameLocation": "477:1:44",
"nodeType": "VariableDeclaration",
"scope": 46087,
"src": "469:9:44",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 46045,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "469:7:44",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 46047,
"nodeType": "VariableDeclarationStatement",
"src": "469:9:44"