{
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes16",
          "name": "id",
          "type": "bytes16"
        },
        {
          "indexed": false,
          "internalType": "string[]",
          "name": "errors",
          "type": "string[]"
        }
      ],
      "name": "DexorderExecutions",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "bytes16",
          "name": "id",
          "type": "bytes16"
        },
        {
          "components": [
            {
              "internalType": "address payable",
              "name": "vault",
              "type": "address"
            },
            {
              "internalType": "uint64",
              "name": "orderIndex",
              "type": "uint64"
            },
            {
              "internalType": "uint8",
              "name": "trancheIndex",
              "type": "uint8"
            },
            {
              "components": [
                {
                  "internalType": "uint256",
                  "name": "proof",
                  "type": "uint256"
                }
              ],
              "internalType": "struct OrderLib.PriceProof",
              "name": "proof",
              "type": "tuple"
            }
          ],
          "internalType": "struct Dexorder.ExecutionRequest",
          "name": "req",
          "type": "tuple"
        }
      ],
      "name": "execute",
      "outputs": [
        {
          "internalType": "string",
          "name": "error",
          "type": "string"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes16",
          "name": "id",
          "type": "bytes16"
        },
        {
          "components": [
            {
              "internalType": "address payable",
              "name": "vault",
              "type": "address"
            },
            {
              "internalType": "uint64",
              "name": "orderIndex",
              "type": "uint64"
            },
            {
              "internalType": "uint8",
              "name": "trancheIndex",
              "type": "uint8"
            },
            {
              "components": [
                {
                  "internalType": "uint256",
                  "name": "proof",
                  "type": "uint256"
                }
              ],
              "internalType": "struct OrderLib.PriceProof",
              "name": "proof",
              "type": "tuple"
            }
          ],
          "internalType": "struct Dexorder.ExecutionRequest[]",
          "name": "reqs",
          "type": "tuple[]"
        }
      ],
      "name": "execute",
      "outputs": [
        {
          "internalType": "string[]",
          "name": "errors",
          "type": "string[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "[encoded data, 4784 characters]",
    "sourceMap": "159:1186:51:-:0;;;;;;;;;;;;;;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "[encoded data, 4720 characters]",
    "sourceMap": "159:1186:51:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;455:257;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;719:287;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;455:257::-;531:19;570:13;579:3;570:8;:13::i;:::-;618:15;;;631:1;618:15;;;;;;;;;562:21;;-1:-1:-1;593:22:51;;618:15;;;;;;;;;;;;;;;;;;;;;593:40;;655:5;643:6;650:1;643:9;;;;;;;;:::i;:::-;;;;;;:17;;;;694:2;675:30;;;;698:6;675:30;;;;;;:::i;:::-;;;;;;;;552:160;455:257;;;;:::o;719:287::-;798:22;854:4;:11;841:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;832:34;;881:7;876:78;894:4;:11;892:1;:13;;;876:78;;;937:17;946:4;951:1;946:7;;;;;;;;;;:::i;:::-;;;;;;;937:8;:17::i;:::-;925:6;932:1;925:9;;;;;;;;;;:::i;:::-;;;;;;:29;;;;907:3;;;;;:::i;:::-;;;;876:78;;;;988:2;969:30;;;;992:6;969:30;;;;;;:::i;:::-;;;;;;;;719:287;;;;:::o;1013:330::-;1156:9;;1175:14;;;;1191:16;;;;;1079:19;1209:9;;;;1150:69;;;;;1079:19;;1150:24;;;;;:69;;1175:14;;1150:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1146:191;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;1320:6;1013:330;-1:-1:-1;;1013:330:51:o;1146:191::-;;;;;;;;;;;-1:-1:-1;;1234:10:51;;;;;;;;;-1:-1:-1;1234:10:51;;;1013:330::o;471:122:69:-;393:66;382:78;;546:22;539:5;536:33;526:61;;583:1;580;573:12;526:61;471:122;:::o;598:172::-;677:20;;;731:33;677:20;731:33;:::i;:::-;;598:172;;;;:::o;1056:184::-;1108:77;1105:1;1098:88;1205:4;1202:1;1195:15;1229:4;1226:1;1219:15;1245:246;978:66;973:2;962:14;;958:87;1324:6;1320:37;1423:6;1411:10;1408:22;1387:18;1375:10;1372:34;1369:62;1366:88;;;1434:18;;:::i;:::-;1470:2;1463:22;-1:-1:-1;;1245:246:69:o;1496:168::-;1530:6;1567:20;76:2;70:9;;14:67;1567:20;1606:8;1596:18;;1623:35;1653:4;1643:8;1623:35;:::i;:::-;;1496:168;;;:::o;1911:138::-;1748:42;1737:54;;1994:30;1802:104;2054:188;2141:20;;;2195:41;2141:20;2195:41;:::i;2355:120::-;2325:18;2314:30;;2429:21;2247:103;2480:170;2558:20;;;2612:32;2558:20;2612:32;:::i;2736:118::-;2724:4;2713:16;;2809:20;2655:76;2859:168;2936:20;;;2990:31;2936:20;2990:31;:::i;3104:122::-;3195:5;3179:22;3032:67;3231:172;3310:20;;;3364:33;3310:20;3364:33;:::i;3408:358::-;3465:5;3513:4;3501:9;3496:3;3492:19;3488:30;3485:145;;;3541:79;159:1186:51;;;3541:79:69;3654:21;3670:4;3654:21;:::i;:::-;3693:7;3684:16;;3725:34;3755:3;3744:9;3725:34;:::i;:::-;3709:51;;3408:358;;-1:-1:-1;;3408:358:69:o;3771:613::-;3834:5;3882:4;3870:9;3865:3;3861:19;3857:30;3854:145;;;3910:79;159:1186:51;;;3910:79:69;4023:21;4039:4;4023:21;:::i;:::-;4062:7;4053:16;;4094:42;4132:3;4121:9;4094:42;:::i;:::-;4085:7;4078:59;4171:42;4209:3;4204:2;4193:9;4189:18;4171:42;:::i;:::-;4166:2;4157:7;4153:16;4146:68;4248:41;4285:3;4280:2;4269:9;4265:18;4248:41;:::i;:::-;4243:2;4234:7;4230:16;4223:67;4324:53;4373:3;4368:2;4357:9;4353:18;4324:53;:::i;:::-;4319:2;4310:7;4306:16;4299:79;;3771:613;;;;:::o;4389:425::-;4492:6;4500;4553:3;4541:9;4532:7;4528:23;4524:33;4521:148;;;4580:79;159:1186:51;;;4580:79:69;4688:38;4718:7;4707:9;4688:38;:::i;:::-;4678:48;;4745:63;4800:7;4795:2;4784:9;4780:18;4745:63;:::i;:::-;4735:73;;4389:425;;;;;:::o;5065:250::-;5150:1;5160:113;5174:6;5171:1;5168:13;5160:113;;;5250:11;;;5244:18;5231:11;;;5224:39;5196:2;5189:10;5160:113;;;-1:-1:-1;;5307:1:69;5289:16;;5282:27;5065:250::o;5320:316::-;5362:3;5394:26;5414:5;4881:12;;4819:76;5394:26;4997:19;;;5049:4;5040:14;;5509:67;5569:6;5562:5;5555:4;5548:5;5544:16;5509:67;:::i;:::-;978:66;973:2;962:14;;958:87;5592:38;;5320:316;-1:-1:-1;;;;5320:316:69:o;5641:220::-;5790:2;5779:9;5772:21;5753:4;5810:45;5851:2;5840:9;5836:18;5828:6;5810:45;:::i;:::-;5802:53;5641:220;-1:-1:-1;;;5641:220:69:o;5980:199::-;6056:4;6089:18;6081:6;6078:30;6075:56;;;6111:18;;:::i;:::-;-1:-1:-1;6156:1:69;6152:14;6168:4;6148:25;;5980:199::o;6298:731::-;6393:5;6428:80;6444:63;6500:6;6444:63;:::i;:::-;6428:80;:::i;:::-;6569:23;;;6526:7;-1:-1:-1;6665:1:69;6661:14;;;6649:27;;6621:4;6608:18;;6688:15;;;6685:130;;;6726:79;159:1186:51;;;6726:79:69;6835:6;6850:173;6866:6;6861:3;6858:15;6850:173;;;6934:44;6974:3;6969;6934:44;:::i;:::-;6922:57;;7008:4;6999:14;;;;6892:4;6883:14;6850:173;;;6854:3;;;6298:731;;;;;:::o;7034:371::-;7104:5;7157:3;7150:4;7142:6;7138:17;7134:27;7124:150;;7185:79;159:1186:51;;;7185:79:69;7292:107;7395:3;7386:6;7373:20;7366:4;7358:6;7354:17;7292:107;:::i;7410:672::-;7538:6;7546;7599:2;7587:9;7578:7;7574:23;7570:32;7567:147;;;7625:79;159:1186:51;;;7625:79:69;7733:38;7763:7;7752:9;7733:38;:::i;:::-;7723:48;;7822:2;7811:9;7807:18;7794:32;7849:18;7841:6;7838:30;7835:145;;;7891:79;159:1186:51;;;7891:79:69;7999:77;8068:7;8059:6;8048:9;8044:22;7999:77;:::i;:::-;7989:87;;;7410:672;;;;;:::o;8909:139::-;8962:10;9001:41;9038:3;9030:6;9001:41;:::i;9145:653::-;9197:3;9229:36;9259:5;4881:12;;4819:76;9229:36;4997:19;;;5049:4;5040:14;;9361:5;9354:12;;9405:6;9402:1;9398:14;9391:5;9387:26;9436:38;9468:5;8420:4;8411:14;;8343:84;9436:38;9492:1;9502:270;9516:6;9513:1;9510:13;9502:270;;;9587:5;9581:4;9577:16;9572:3;9565:29;9615:48;9658:4;9649:6;9643:13;9615:48;:::i;:::-;9607:56;-1:-1:-1;8420:4:69;8411:14;;9757:4;9748:14;;;;;9676:52;-1:-1:-1;9538:1:69;9531:9;9502:270;;;-1:-1:-1;9788:4:69;;9145:653;-1:-1:-1;;;;;;9145:653:69:o;9803:280::-;10002:2;9991:9;9984:21;9965:4;10022:55;10073:2;10062:9;10058:18;10050:6;10022:55;:::i;10088:184::-;10140:77;10137:1;10130:88;10237:4;10234:1;10227:15;10261:4;10258:1;10251:15;10277:184;10329:77;10326:1;10319:88;10426:4;10423:1;10416:15;10450:4;10447:1;10440:15;10466:179;10503:3;2724:4;2713:16;;10580:4;10571:7;10568:17;10565:43;;10588:18;;:::i;:::-;10637:1;10624:15;;10466:179;-1:-1:-1;;10466:179:69:o;10650:93::-;2325:18;2314:30;;10715:21;10710:3;10703:34;;;10650:93::o;10748:91::-;2724:4;2713:16;;10812:20;2655:76;10844:95;10926:5;10910:22;3032:67;10944:107;11008:37;11041:3;11033:5;11027:12;11008:37;:::i;:::-;;;10944:107::o;11056:414::-;11298:2;11283:18;;11310:36;11287:9;11328:6;11310:36;:::i;:::-;11355:44;11395:2;11384:9;11380:18;11372:6;11355:44;:::i;:::-;11408:56;11460:2;11449:9;11445:18;11437:6;11408:56;:::i;:::-;11056:414;;;;;;:::o;11564:191::-;11599:3;11641:1;11623:16;11620:23;11617:132;;;11687:1;11684;11681;11666:23;-1:-1:-1;11736:1:69;11730:8;11546:3;11542:15;11617:132;11564:191;:::o;11760:759::-;11799:3;11841:4;11823:16;11820:26;11817:39;;;11760:759;:::o;11817:39::-;76:2;70:9;11952:66;11934:16;11930:89;11927:1;11921:4;11906:114;12049:4;12043:11;12123:16;12116:4;12108:6;12104:17;12101:39;12080:18;12072:6;12069:30;12066:75;12063:88;;;12144:5;;11760:759;:::o;12063:88::-;12181:6;12175:4;12171:17;12217:3;12211:10;12244:18;12236:6;12233:30;12230:43;;;12266:5;;;;11760:759;:::o;12230:43::-;12350:66;12331:16;12325:4;12321:27;12317:100;12310:4;12301:6;12296:3;12292:16;12288:27;12285:133;12282:146;;;12421:5;;;;11760:759;:::o;12282:146::-;12437:57;12488:4;12479:6;12471;12467:19;12463:30;12457:4;12437:57;:::i;:::-;-1:-1:-1;12510:3:69;11760:759;-1:-1:-1;;;11760:759:69:o",
    "linkReferences": {}
  },
  "methodIdentifiers": {
    "execute(bytes16,(address,uint64,uint8,(uint256)))": "01efa5e5",
    "execute(bytes16,(address,uint64,uint8,(uint256))[])": "f09e5827"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"id\",\"type\":\"bytes16\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"errors\",\"type\":\"string[]\"}],\"name\":\"DexorderExecutions\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"id\",\"type\":\"bytes16\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"trancheIndex\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"}],\"internalType\":\"struct OrderLib.PriceProof\",\"name\":\"proof\",\"type\":\"tuple\"}],\"internalType\":\"struct Dexorder.ExecutionRequest\",\"name\":\"req\",\"type\":\"tuple\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"id\",\"type\":\"bytes16\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"trancheIndex\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"}],\"internalType\":\"struct OrderLib.PriceProof\",\"name\":\"proof\",\"type\":\"tuple\"}],\"internalType\":\"struct Dexorder.ExecutionRequest[]\",\"name\":\"reqs\",\"type\":\"tuple[]\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"errors\",\"type\":\"string[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Dexorder.sol\":\"Dexorder\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":true,\"yulDetails\":{\"optimizerSteps\":\"dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu\",\"stackAllocation\":true}},\"runs\":999999999},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/v3-core/=lib_uniswap/v3-core/\",\":@uniswap/v3-periphery/=lib_uniswap/v3-periphery/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":v3-core/=lib_uniswap/v3-core/\",\":v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/\"]},\"sources\":{\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2\",\"dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v\"]},\"src/Constants.sol\":{\"keccak256\":\"0x41bf66b69d0d8c9c32c43fd3af5396d1288ac512fd5c6c14e06dbb06a06adf3f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://283443c74eef1b4ff300c1465a46877957188c3f65ed71aea60bd11362938418\",\"dweb:/ipfs/QmQPn2nrbKVei7HUooGXy7msfoXNT8E2yVkT1kZAC9T3ds\"]},\"src/Dexorder.sol\":{\"keccak256\":\"0xc5374193e01ca9b9a139a5f6fceaabcd647b55f8bd750018077ae6e9b1dcb4b9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9310302b0e229d8e5434560b3188023b2393d3dd1f24ce18518007ce73461fa9\",\"dweb:/ipfs/QmRSVeexGMiSt6vbvNdyJENCEtTXSZkb7FGrMeDDZfesZ1\"]},\"src/OrderLib.sol\":{\"keccak256\":\"0x3141c71ba0edb4839dcee8f6d461c8969ec85548d756178c94e19e76075a9e89\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f7b1efe6062b9095fe9d71475066743a7c80a1cb6b6c37e9e710195689a54424\",\"dweb:/ipfs/QmcdVcXijUv1CBW1V7nvM9s8gteb3QnmtuDEkrMGmcYEV5\"]},\"src/UniswapSwapper.sol\":{\"keccak256\":\"0xeba32c1f50322147452a5e8bb33daf0de90d0abaa26929f00da4cea788f92825\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ccef611297b80392e32363f9dce4f10403d2a9b3780475ffde7c38f1f2d23781\",\"dweb:/ipfs/QmVCN2oa3aQCx1KMxGN7EM4reJNFxegXyLSCQoe62dM2Kx\"]},\"src/Vault.sol\":{\"keccak256\":\"0xb9f8667aab5f5235d8364faa7a04610e5aa14af2fe29a04b27713a13fe955935\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://027c8699c68d1a3ca3a67f4362624d4bb1cb705ac125b6a72ad7638d81b1e045\",\"dweb:/ipfs/QmPcu3E3b2xzbeo15vvWNhrKGgT9sPfm9HVXXiftBc4Qu8\"]},\"src/interface/IVaultDeployer.sol\":{\"keccak256\":\"0x2985c864a3b5cf99244cc443871b356b47bb6bfb758bbf89b9cceb2e15c68886\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2d3df393bad985f53c8a31e9907badd10766891d5951a3ab95acea2cc6d2092a\",\"dweb:/ipfs/QmbE7z2SwfCnCF2XxKM1FEEPaddrS6WNbCJ5yqSP2Zn8d7\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.22+commit.4fc1097e"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "bytes16",
              "name": "id",
              "type": "bytes16",
              "indexed": true
            },
            {
              "internalType": "string[]",
              "name": "errors",
              "type": "string[]",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "DexorderExecutions",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes16",
              "name": "id",
              "type": "bytes16"
            },
            {
              "internalType": "struct Dexorder.ExecutionRequest",
              "name": "req",
              "type": "tuple",
              "components": [
                {
                  "internalType": "address payable",
                  "name": "vault",
                  "type": "address"
                },
                {
                  "internalType": "uint64",
                  "name": "orderIndex",
                  "type": "uint64"
                },
                {
                  "internalType": "uint8",
                  "name": "trancheIndex",
                  "type": "uint8"
                },
                {
                  "internalType": "struct OrderLib.PriceProof",
                  "name": "proof",
                  "type": "tuple",
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "proof",
                      "type": "uint256"
                    }
                  ]
                }
              ]
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "execute",
          "outputs": [
            {
              "internalType": "string",
              "name": "error",
              "type": "string"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes16",
              "name": "id",
              "type": "bytes16"
            },
            {
              "internalType": "struct Dexorder.ExecutionRequest[]",
              "name": "reqs",
              "type": "tuple[]",
              "components": [
                {
                  "internalType": "address payable",
                  "name": "vault",
                  "type": "address"
                },
                {
                  "internalType": "uint64",
                  "name": "orderIndex",
                  "type": "uint64"
                },
                {
                  "internalType": "uint8",
                  "name": "trancheIndex",
                  "type": "uint8"
                },
                {
                  "internalType": "struct OrderLib.PriceProof",
                  "name": "proof",
                  "type": "tuple",
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "proof",
                      "type": "uint256"
                    }
                  ]
                }
              ]
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "execute",
          "outputs": [
            {
              "internalType": "string[]",
              "name": "errors",
              "type": "string[]"
            }
          ]
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {},
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {},
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
        "@uniswap/v3-core/=lib_uniswap/v3-core/",
        "@uniswap/v3-periphery/=lib_uniswap/v3-periphery/",
        "ds-test/=lib/forge-std/lib/ds-test/src/",
        "forge-std/=lib/forge-std/src/",
        "openzeppelin-contracts/=lib/openzeppelin-contracts/",
        "v3-core/=lib_uniswap/v3-core/",
        "v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/"
      ],
      "optimizer": {
        "runs": 999999999,
        "details": {
          "peephole": true,
          "inliner": true,
          "jumpdestRemover": true,
          "orderLiterals": true,
          "deduplicate": true,
          "cse": true,
          "constantOptimizer": true,
          "yul": true,
          "yulDetails": {
            "stackAllocation": true,
            "optimizerSteps": "dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu"
          }
        }
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "src/Dexorder.sol": "Dexorder"
      },
      "libraries": {}
    },
    "sources": {
      "lib/forge-std/src/console2.sol": {
        "keccak256": "0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea",
        "urls": [
          "bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973",
          "dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": {
        "keccak256": "0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b",
        "urls": [
          "bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34",
          "dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol": {
        "keccak256": "0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68",
        "urls": [
          "bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56",
          "dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol": {
        "keccak256": "0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf",
        "urls": [
          "bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34",
          "dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol": {
        "keccak256": "0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9",
        "urls": [
          "bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146",
          "dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": {
        "keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1",
        "urls": [
          "bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f",
          "dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"
        ],
        "license": "MIT"
      },
      "lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol": {
        "keccak256": "0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489",
        "urls": [
          "bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2",
          "dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"
        ],
        "license": "GPL-2.0-or-later"
      },
      "lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol": {
        "keccak256": "0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1",
        "urls": [
          "bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5",
          "dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"
        ],
        "license": "GPL-2.0-or-later"
      },
      "lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol": {
        "keccak256": "0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69",
        "urls": [
          "bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652",
          "dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"
        ],
        "license": "GPL-2.0-or-later"
      },
      "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol": {
        "keccak256": "0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634",
        "urls": [
          "bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5",
          "dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"
        ],
        "license": "GPL-2.0-or-later"
      },
      "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol": {
        "keccak256": "0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5",
        "urls": [
          "bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7",
          "dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"
        ],
        "license": "GPL-2.0-or-later"
      },
      "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol": {
        "keccak256": "0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd",
        "urls": [
          "bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03",
          "dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"
        ],
        "license": "GPL-2.0-or-later"
      },
      "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol": {
        "keccak256": "0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7",
        "urls": [
          "bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047",
          "dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"
        ],
        "license": "GPL-2.0-or-later"
      },
      "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol": {
        "keccak256": "0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235",
        "urls": [
          "bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735",
          "dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"
        ],
        "license": "GPL-2.0-or-later"
      },
      "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol": {
        "keccak256": "0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f",
        "urls": [
          "bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f",
          "dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"
        ],
        "license": "GPL-2.0-or-later"
      },
      "lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol": {
        "keccak256": "0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4",
        "urls": [
          "bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471",
          "dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"
        ],
        "license": "GPL-2.0-or-later"
      },
      "lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol": {
        "keccak256": "0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984",
        "urls": [
          "bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56",
          "dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"
        ],
        "license": "GPL-2.0-or-later"
      },
      "lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol": {
        "keccak256": "0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d",
        "urls": [
          "bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f",
          "dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"
        ],
        "license": "GPL-2.0-or-later"
      },
      "lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol": {
        "keccak256": "0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274",
        "urls": [
          "bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407",
          "dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"
        ],
        "license": "GPL-2.0-or-later"
      },
      "lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol": {
        "keccak256": "0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862",
        "urls": [
          "bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f",
          "dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"
        ],
        "license": "GPL-2.0-or-later"
      },
      "lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol": {
        "keccak256": "0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975",
        "urls": [
          "bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53",
          "dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"
        ],
        "license": "GPL-2.0-or-later"
      },
      "lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol": {
        "keccak256": "0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4",
        "urls": [
          "bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48",
          "dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"
        ],
        "license": "GPL-2.0-or-later"
      },
      "lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol": {
        "keccak256": "0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd",
        "urls": [
          "bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2",
          "dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v"
        ],
        "license": "GPL-2.0-or-later"
      },
      "src/Constants.sol": {
        "keccak256": "0x41bf66b69d0d8c9c32c43fd3af5396d1288ac512fd5c6c14e06dbb06a06adf3f",
        "urls": [
          "bzz-raw://283443c74eef1b4ff300c1465a46877957188c3f65ed71aea60bd11362938418",
          "dweb:/ipfs/QmQPn2nrbKVei7HUooGXy7msfoXNT8E2yVkT1kZAC9T3ds"
        ],
        "license": "UNLICENSED"
      },
      "src/Dexorder.sol": {
        "keccak256": "0xc5374193e01ca9b9a139a5f6fceaabcd647b55f8bd750018077ae6e9b1dcb4b9",
        "urls": [
          "bzz-raw://9310302b0e229d8e5434560b3188023b2393d3dd1f24ce18518007ce73461fa9",
          "dweb:/ipfs/QmRSVeexGMiSt6vbvNdyJENCEtTXSZkb7FGrMeDDZfesZ1"
        ],
        "license": "UNLICENSED"
      },
      "src/OrderLib.sol": {
        "keccak256": "0x3141c71ba0edb4839dcee8f6d461c8969ec85548d756178c94e19e76075a9e89",
        "urls": [
          "bzz-raw://f7b1efe6062b9095fe9d71475066743a7c80a1cb6b6c37e9e710195689a54424",
          "dweb:/ipfs/QmcdVcXijUv1CBW1V7nvM9s8gteb3QnmtuDEkrMGmcYEV5"
        ],
        "license": "UNLICENSED"
      },
      "src/UniswapSwapper.sol": {
        "keccak256": "0xeba32c1f50322147452a5e8bb33daf0de90d0abaa26929f00da4cea788f92825",
        "urls": [
          "bzz-raw://ccef611297b80392e32363f9dce4f10403d2a9b3780475ffde7c38f1f2d23781",
          "dweb:/ipfs/QmVCN2oa3aQCx1KMxGN7EM4reJNFxegXyLSCQoe62dM2Kx"
        ],
        "license": "UNLICENSED"
      },
      "src/Vault.sol": {
        "keccak256": "0xb9f8667aab5f5235d8364faa7a04610e5aa14af2fe29a04b27713a13fe955935",
        "urls": [
          "bzz-raw://027c8699c68d1a3ca3a67f4362624d4bb1cb705ac125b6a72ad7638d81b1e045",
          "dweb:/ipfs/QmPcu3E3b2xzbeo15vvWNhrKGgT9sPfm9HVXXiftBc4Qu8"
        ],
        "license": "UNLICENSED"
      },
      "src/interface/IVaultDeployer.sol": {
        "keccak256": "0x2985c864a3b5cf99244cc443871b356b47bb6bfb758bbf89b9cceb2e15c68886",
        "urls": [
          "bzz-raw://2d3df393bad985f53c8a31e9907badd10766891d5951a3ab95acea2cc6d2092a",
          "dweb:/ipfs/QmbE7z2SwfCnCF2XxKM1FEEPaddrS6WNbCJ5yqSP2Zn8d7"
        ],
        "license": "UNLICENSED"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "src/Dexorder.sol",
    "id": 46413,
    "exportedSymbols": {
      "Constants": [
        46264
      ],
      "Dexorder": [
        46412
      ],
      "IERC165": [
        43789
      ],
      "IERC20": [
        43556
      ],
      "IERC721": [
        43697
      ],
      "IERC721Enumerable": [
        43728
      ],
      "IERC721Metadata": [
        43755
      ],
      "IERC721Permit": [
        45094
      ],
      "INonfungiblePositionManager": [
        45293
      ],
      "IPeripheryImmutableState": [
        45309
      ],
      "IPeripheryPayments": [
        45335
      ],
      "IPoolInitializer": [
        45354
      ],
      "ISwapRouter": [
        45454
      ],
      "IUniswapV3Factory": [
        43872
      ],
      "IUniswapV3Pool": [
        43894
      ],
      "IUniswapV3PoolActions": [
        44004
      ],
      "IUniswapV3PoolDerivedState": [
        44035
      ],
      "IUniswapV3PoolEvents": [
        44154
      ],
      "IUniswapV3PoolImmutables": [
        44194
      ],
      "IUniswapV3PoolOwnerActions": [
        44220
      ],
      "IUniswapV3PoolState": [
        44328
      ],
      "IUniswapV3SwapCallback": [
        43908
      ],
      "IVaultDeployer": [
        49445
      ],
      "OrderLib": [
        47922
      ],
      "PoolAddress": [
        45892
      ],
      "TransferHelper": [
        46063
      ],
      "UniswapSwapper": [
        48847
      ],
      "Vault": [
        49181
      ],
      "console2": [
        29653
      ]
    },
    "nodeType": "SourceUnit",
    "src": "66:1280:51",
    "nodes": [
      {
        "id": 46266,
        "nodeType": "PragmaDirective",
        "src": "66:24:51",
        "nodes": [],
        "literals": [
          "solidity",
          ">=",
          "0.8",
          ".0"
        ]
      },
      {
        "id": 46267,
        "nodeType": "ImportDirective",
        "src": "91:24:51",
        "nodes": [],
        "absolutePath": "src/OrderLib.sol",
        "file": "./OrderLib.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 46413,
        "sourceUnit": 47923,
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "id": 46268,
        "nodeType": "ImportDirective",
        "src": "116:21:51",
        "nodes": [],
        "absolutePath": "src/Vault.sol",
        "file": "./Vault.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 46413,
        "sourceUnit": 49182,
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "id": 46269,
        "nodeType": "PragmaDirective",
        "src": "138:19:51",
        "nodes": [],
        "literals": [
          "abicoder",
          "v2"
        ]
      },
      {
        "id": 46412,
        "nodeType": "ContractDefinition",
        "src": "159:1186:51",
        "nodes": [
          {
            "id": 46276,
            "nodeType": "EventDefinition",
            "src": "228:62:51",
            "nodes": [],
            "anonymous": false,
            "eventSelector": "15feb66d72284d4a0e80f76082f237f0dff281916db7a735e31b8236fb40c3ad",
            "name": "DexorderExecutions",
            "nameLocation": "234:18:51",
            "parameters": {
              "id": 46275,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 46271,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "269:2:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 46276,
                  "src": "253:18:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes16",
                    "typeString": "bytes16"
                  },
                  "typeName": {
                    "id": 46270,
                    "name": "bytes16",
                    "nodeType": "ElementaryTypeName",
                    "src": "253:7:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes16",
                      "typeString": "bytes16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 46274,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "errors",
                  "nameLocation": "282:6:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 46276,
                  "src": "273:15:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 46272,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "273:6:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 46273,
                    "nodeType": "ArrayTypeName",
                    "src": "273:8:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "252:37:51"
            }
          },
          {
            "id": 46286,
            "nodeType": "StructDefinition",
            "src": "296:152:51",
            "nodes": [],
            "canonicalName": "Dexorder.ExecutionRequest",
            "members": [
              {
                "constant": false,
                "id": 46278,
                "mutability": "mutable",
                "name": "vault",
                "nameLocation": "346:5:51",
                "nodeType": "VariableDeclaration",
                "scope": 46286,
                "src": "330:21:51",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address_payable",
                  "typeString": "address payable"
                },
                "typeName": {
                  "id": 46277,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "330:15:51",
                  "stateMutability": "payable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 46280,
                "mutability": "mutable",
                "name": "orderIndex",
                "nameLocation": "368:10:51",
                "nodeType": "VariableDeclaration",
                "scope": 46286,
                "src": "361:17:51",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 46279,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "361:6:51",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 46282,
                "mutability": "mutable",
                "name": "trancheIndex",
                "nameLocation": "394:12:51",
                "nodeType": "VariableDeclaration",
                "scope": 46286,
                "src": "388:18:51",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint8",
                  "typeString": "uint8"
                },
                "typeName": {
                  "id": 46281,
                  "name": "uint8",
                  "nodeType": "ElementaryTypeName",
                  "src": "388:5:51",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 46285,
                "mutability": "mutable",
                "name": "proof",
                "nameLocation": "436:5:51",
                "nodeType": "VariableDeclaration",
                "scope": 46286,
                "src": "416:25:51",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_PriceProof_$46641_storage_ptr",
                  "typeString": "struct OrderLib.PriceProof"
                },
                "typeName": {
                  "id": 46284,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 46283,
                    "name": "OrderLib.PriceProof",
                    "nameLocations": [
                      "416:8:51",
                      "425:10:51"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 46641,
                    "src": "416:19:51"
                  },
                  "referencedDeclaration": 46641,
                  "src": "416:19:51",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_PriceProof_$46641_storage_ptr",
                    "typeString": "struct OrderLib.PriceProof"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "ExecutionRequest",
            "nameLocation": "303:16:51",
            "scope": 46412,
            "visibility": "public"
          },
          {
            "id": 46325,
            "nodeType": "FunctionDefinition",
            "src": "455:257:51",
            "nodes": [],
            "body": {
              "id": 46324,
              "nodeType": "Block",
              "src": "552:160:51",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 46300,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 46296,
                      "name": "error",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 46294,
                      "src": "562:5:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 46298,
                          "name": "req",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 46291,
                          "src": "579:3:51",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ExecutionRequest_$46286_memory_ptr",
                            "typeString": "struct Dexorder.ExecutionRequest memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_ExecutionRequest_$46286_memory_ptr",
                            "typeString": "struct Dexorder.ExecutionRequest memory"
                          }
                        ],
                        "id": 46297,
                        "name": "_execute",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 46411,
                        "src": "570:8:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_ExecutionRequest_$46286_memory_ptr_$returns$_t_string_memory_ptr_$",
                          "typeString": "function (struct Dexorder.ExecutionRequest memory) returns (string memory)"
                        }
                      },
                      "id": 46299,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "570:13:51",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "562:21:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "id": 46301,
                  "nodeType": "ExpressionStatement",
                  "src": "562:21:51"
                },
                {
                  "assignments": [
                    46306
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 46306,
                      "mutability": "mutable",
                      "name": "errors",
                      "nameLocation": "609:6:51",
                      "nodeType": "VariableDeclaration",
                      "scope": 46324,
                      "src": "593:22:51",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                        "typeString": "string[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 46304,
                          "name": "string",
                          "nodeType": "ElementaryTypeName",
                          "src": "593:6:51",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage_ptr",
                            "typeString": "string"
                          }
                        },
                        "id": 46305,
                        "nodeType": "ArrayTypeName",
                        "src": "593:8:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                          "typeString": "string[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 46312,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 46310,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "631:1:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 46309,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "618:12:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (string memory[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 46307,
                          "name": "string",
                          "nodeType": "ElementaryTypeName",
                          "src": "622:6:51",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage_ptr",
                            "typeString": "string"
                          }
                        },
                        "id": 46308,
                        "nodeType": "ArrayTypeName",
                        "src": "622:8:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                          "typeString": "string[]"
                        }
                      }
                    },
                    "id": 46311,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "618:15:51",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                      "typeString": "string memory[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "593:40:51"
                },
                {
                  "expression": {
                    "id": 46317,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 46313,
                        "name": "errors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 46306,
                        "src": "643:6:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                          "typeString": "string memory[] memory"
                        }
                      },
                      "id": 46315,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 46314,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "650:1:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "643:9:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 46316,
                      "name": "error",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 46294,
                      "src": "655:5:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "643:17:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "id": 46318,
                  "nodeType": "ExpressionStatement",
                  "src": "643:17:51"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 46320,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 46288,
                        "src": "694:2:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        }
                      },
                      {
                        "id": 46321,
                        "name": "errors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 46306,
                        "src": "698:6:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                          "typeString": "string memory[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        },
                        {
                          "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                          "typeString": "string memory[] memory"
                        }
                      ],
                      "id": 46319,
                      "name": "DexorderExecutions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 46276,
                      "src": "675:18:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (bytes16,string memory[] memory)"
                      }
                    },
                    "id": 46322,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "675:30:51",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 46323,
                  "nodeType": "EmitStatement",
                  "src": "670:35:51"
                }
              ]
            },
            "functionSelector": "01efa5e5",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "execute",
            "nameLocation": "464:7:51",
            "parameters": {
              "id": 46292,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 46288,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "481:2:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 46325,
                  "src": "473:10:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes16",
                    "typeString": "bytes16"
                  },
                  "typeName": {
                    "id": 46287,
                    "name": "bytes16",
                    "nodeType": "ElementaryTypeName",
                    "src": "473:7:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes16",
                      "typeString": "bytes16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 46291,
                  "mutability": "mutable",
                  "name": "req",
                  "nameLocation": "509:3:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 46325,
                  "src": "485:27:51",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ExecutionRequest_$46286_memory_ptr",
                    "typeString": "struct Dexorder.ExecutionRequest"
                  },
                  "typeName": {
                    "id": 46290,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 46289,
                      "name": "ExecutionRequest",
                      "nameLocations": [
                        "485:16:51"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 46286,
                      "src": "485:16:51"
                    },
                    "referencedDeclaration": 46286,
                    "src": "485:16:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ExecutionRequest_$46286_storage_ptr",
                      "typeString": "struct Dexorder.ExecutionRequest"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "471:43:51"
            },
            "returnParameters": {
              "id": 46295,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 46294,
                  "mutability": "mutable",
                  "name": "error",
                  "nameLocation": "545:5:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 46325,
                  "src": "531:19:51",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 46293,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "531:6:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "530:21:51"
            },
            "scope": 46412,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 46374,
            "nodeType": "FunctionDefinition",
            "src": "719:287:51",
            "nodes": [],
            "body": {
              "id": 46373,
              "nodeType": "Block",
              "src": "822:184:51",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 46344,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 46337,
                      "name": "errors",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 46335,
                      "src": "832:6:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                        "typeString": "string memory[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 46341,
                            "name": "reqs",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 46331,
                            "src": "854:4:51",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_ExecutionRequest_$46286_memory_ptr_$dyn_memory_ptr",
                              "typeString": "struct Dexorder.ExecutionRequest memory[] memory"
                            }
                          },
                          "id": 46342,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "859:6:51",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "854:11:51",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 46340,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "841:12:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (string memory[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 46338,
                            "name": "string",
                            "nodeType": "ElementaryTypeName",
                            "src": "845:6:51",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_storage_ptr",
                              "typeString": "string"
                            }
                          },
                          "id": 46339,
                          "nodeType": "ArrayTypeName",
                          "src": "845:8:51",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                            "typeString": "string[]"
                          }
                        }
                      },
                      "id": 46343,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "841:25:51",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                        "typeString": "string memory[] memory"
                      }
                    },
                    "src": "832:34:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                      "typeString": "string memory[] memory"
                    }
                  },
                  "id": 46345,
                  "nodeType": "ExpressionStatement",
                  "src": "832:34:51"
                },
                {
                  "body": {
                    "expression": {
                      "id": 46365,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "baseExpression": {
                          "id": 46357,
                          "name": "errors",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 46335,
                          "src": "925:6:51",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                            "typeString": "string memory[] memory"
                          }
                        },
                        "id": 46359,
                        "indexExpression": {
                          "id": 46358,
                          "name": "i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 46347,
                          "src": "932:1:51",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": true,
                        "nodeType": "IndexAccess",
                        "src": "925:9:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "arguments": [
                          {
                            "baseExpression": {
                              "id": 46361,
                              "name": "reqs",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 46331,
                              "src": "946:4:51",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_ExecutionRequest_$46286_memory_ptr_$dyn_memory_ptr",
                                "typeString": "struct Dexorder.ExecutionRequest memory[] memory"
                              }
                            },
                            "id": 46363,
                            "indexExpression": {
                              "id": 46362,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 46347,
                              "src": "951:1:51",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "946:7:51",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_ExecutionRequest_$46286_memory_ptr",
                              "typeString": "struct Dexorder.ExecutionRequest memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_ExecutionRequest_$46286_memory_ptr",
                              "typeString": "struct Dexorder.ExecutionRequest memory"
                            }
                          ],
                          "id": 46360,
                          "name": "_execute",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 46411,
                          "src": "937:8:51",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_ExecutionRequest_$46286_memory_ptr_$returns$_t_string_memory_ptr_$",
                            "typeString": "function (struct Dexorder.ExecutionRequest memory) returns (string memory)"
                          }
                        },
                        "id": 46364,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "937:17:51",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      "src": "925:29:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "id": 46366,
                    "nodeType": "ExpressionStatement",
                    "src": "925:29:51"
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 46353,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 46350,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 46347,
                      "src": "892:1:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 46351,
                        "name": "reqs",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 46331,
                        "src": "894:4:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_ExecutionRequest_$46286_memory_ptr_$dyn_memory_ptr",
                          "typeString": "struct Dexorder.ExecutionRequest memory[] memory"
                        }
                      },
                      "id": 46352,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "899:6:51",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "894:11:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "892:13:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 46367,
                  "initializationExpression": {
                    "assignments": [
                      46347
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 46347,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "887:1:51",
                        "nodeType": "VariableDeclaration",
                        "scope": 46367,
                        "src": "881:7:51",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 46346,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "881:5:51",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 46349,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 46348,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "889:1:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "881:9:51"
                  },
                  "isSimpleCounterLoop": false,
                  "loopExpression": {
                    "expression": {
                      "id": 46355,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "907:3:51",
                      "subExpression": {
                        "id": 46354,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 46347,
                        "src": "907:1:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 46356,
                    "nodeType": "ExpressionStatement",
                    "src": "907:3:51"
                  },
                  "nodeType": "ForStatement",
                  "src": "876:78:51"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 46369,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 46327,
                        "src": "988:2:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        }
                      },
                      {
                        "id": 46370,
                        "name": "errors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 46335,
                        "src": "992:6:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                          "typeString": "string memory[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        },
                        {
                          "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                          "typeString": "string memory[] memory"
                        }
                      ],
                      "id": 46368,
                      "name": "DexorderExecutions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 46276,
                      "src": "969:18:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (bytes16,string memory[] memory)"
                      }
                    },
                    "id": 46371,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "969:30:51",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 46372,
                  "nodeType": "EmitStatement",
                  "src": "964:35:51"
                }
              ]
            },
            "functionSelector": "f09e5827",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "execute",
            "nameLocation": "728:7:51",
            "parameters": {
              "id": 46332,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 46327,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "745:2:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 46374,
                  "src": "737:10:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes16",
                    "typeString": "bytes16"
                  },
                  "typeName": {
                    "id": 46326,
                    "name": "bytes16",
                    "nodeType": "ElementaryTypeName",
                    "src": "737:7:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes16",
                      "typeString": "bytes16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 46331,
                  "mutability": "mutable",
                  "name": "reqs",
                  "nameLocation": "775:4:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 46374,
                  "src": "749:30:51",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_ExecutionRequest_$46286_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct Dexorder.ExecutionRequest[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 46329,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 46328,
                        "name": "ExecutionRequest",
                        "nameLocations": [
                          "749:16:51"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 46286,
                        "src": "749:16:51"
                      },
                      "referencedDeclaration": 46286,
                      "src": "749:16:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_ExecutionRequest_$46286_storage_ptr",
                        "typeString": "struct Dexorder.ExecutionRequest"
                      }
                    },
                    "id": 46330,
                    "nodeType": "ArrayTypeName",
                    "src": "749:18:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_ExecutionRequest_$46286_storage_$dyn_storage_ptr",
                      "typeString": "struct Dexorder.ExecutionRequest[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "735:46:51"
            },
            "returnParameters": {
              "id": 46336,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 46335,
                  "mutability": "mutable",
                  "name": "errors",
                  "nameLocation": "814:6:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 46374,
                  "src": "798:22:51",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 46333,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "798:6:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 46334,
                    "nodeType": "ArrayTypeName",
                    "src": "798:8:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "797:24:51"
            },
            "scope": 46412,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 46411,
            "nodeType": "FunctionDefinition",
            "src": "1013:330:51",
            "nodes": [],
            "body": {
              "id": 46410,
              "nodeType": "Block",
              "src": "1100:243:51",
              "nodes": [],
              "statements": [
                {
                  "clauses": [
                    {
                      "block": {
                        "id": 46398,
                        "nodeType": "Block",
                        "src": "1220:35:51",
                        "statements": [
                          {
                            "expression": {
                              "id": 46396,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "id": 46394,
                                "name": "error",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 46380,
                                "src": "1234:5:51",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "hexValue": "",
                                "id": 46395,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1242:2:51",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                  "typeString": "literal_string \"\""
                                },
                                "value": ""
                              },
                              "src": "1234:10:51",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "id": 46397,
                            "nodeType": "ExpressionStatement",
                            "src": "1234:10:51"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 46399,
                      "nodeType": "TryCatchClause",
                      "src": "1220:35:51"
                    },
                    {
                      "block": {
                        "id": 46407,
                        "nodeType": "Block",
                        "src": "1298:39:51",
                        "statements": [
                          {
                            "expression": {
                              "id": 46405,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "id": 46403,
                                "name": "error",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 46380,
                                "src": "1312:5:51",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "id": 46404,
                                "name": "reason",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 46401,
                                "src": "1320:6:51",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              "src": "1312:14:51",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "id": 46406,
                            "nodeType": "ExpressionStatement",
                            "src": "1312:14:51"
                          }
                        ]
                      },
                      "errorName": "Error",
                      "id": 46408,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 46402,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 46401,
                            "mutability": "mutable",
                            "name": "reason",
                            "nameLocation": "1290:6:51",
                            "nodeType": "VariableDeclaration",
                            "scope": 46408,
                            "src": "1276:20:51",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 46400,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "1276:6:51",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "1275:22:51"
                      },
                      "src": "1264:73:51"
                    }
                  ],
                  "externalCall": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 46387,
                          "name": "req",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 46377,
                          "src": "1175:3:51",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ExecutionRequest_$46286_memory_ptr",
                            "typeString": "struct Dexorder.ExecutionRequest memory"
                          }
                        },
                        "id": 46388,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1179:10:51",
                        "memberName": "orderIndex",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 46280,
                        "src": "1175:14:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "expression": {
                          "id": 46389,
                          "name": "req",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 46377,
                          "src": "1191:3:51",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ExecutionRequest_$46286_memory_ptr",
                            "typeString": "struct Dexorder.ExecutionRequest memory"
                          }
                        },
                        "id": 46390,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1195:12:51",
                        "memberName": "trancheIndex",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 46282,
                        "src": "1191:16:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "expression": {
                          "id": 46391,
                          "name": "req",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 46377,
                          "src": "1209:3:51",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ExecutionRequest_$46286_memory_ptr",
                            "typeString": "struct Dexorder.ExecutionRequest memory"
                          }
                        },
                        "id": 46392,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1213:5:51",
                        "memberName": "proof",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 46285,
                        "src": "1209:9:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PriceProof_$46641_memory_ptr",
                          "typeString": "struct OrderLib.PriceProof memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_struct$_PriceProof_$46641_memory_ptr",
                          "typeString": "struct OrderLib.PriceProof memory"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "expression": {
                              "id": 46383,
                              "name": "req",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 46377,
                              "src": "1156:3:51",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ExecutionRequest_$46286_memory_ptr",
                                "typeString": "struct Dexorder.ExecutionRequest memory"
                              }
                            },
                            "id": 46384,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "1160:5:51",
                            "memberName": "vault",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 46278,
                            "src": "1156:9:51",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 46382,
                          "name": "Vault",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 49181,
                          "src": "1150:5:51",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Vault_$49181_$",
                            "typeString": "type(contract Vault)"
                          }
                        },
                        "id": 46385,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1150:16:51",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vault_$49181",
                          "typeString": "contract Vault"
                        }
                      },
                      "id": 46386,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1167:7:51",
                      "memberName": "execute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 49143,
                      "src": "1150:24:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_uint8_$_t_struct$_PriceProof_$46641_memory_ptr_$returns$__$",
                        "typeString": "function (uint64,uint8,struct OrderLib.PriceProof memory) external"
                      }
                    },
                    "id": 46393,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1150:69:51",
                    "tryCall": true,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 46409,
                  "nodeType": "TryStatement",
                  "src": "1146:191:51"
                }
              ]
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_execute",
            "nameLocation": "1022:8:51",
            "parameters": {
              "id": 46378,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 46377,
                  "mutability": "mutable",
                  "name": "req",
                  "nameLocation": "1056:3:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 46411,
                  "src": "1032:27:51",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ExecutionRequest_$46286_memory_ptr",
                    "typeString": "struct Dexorder.ExecutionRequest"
                  },
                  "typeName": {
                    "id": 46376,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 46375,
                      "name": "ExecutionRequest",
                      "nameLocations": [
                        "1032:16:51"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 46286,
                      "src": "1032:16:51"
                    },
                    "referencedDeclaration": 46286,
                    "src": "1032:16:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ExecutionRequest_$46286_storage_ptr",
                      "typeString": "struct Dexorder.ExecutionRequest"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1030:31:51"
            },
            "returnParameters": {
              "id": 46381,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 46380,
                  "mutability": "mutable",
                  "name": "error",
                  "nameLocation": "1093:5:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 46411,
                  "src": "1079:19:51",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 46379,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1079:6:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1078:21:51"
            },
            "scope": 46412,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "private"
          }
        ],
        "abstract": false,
        "baseContracts": [],
        "canonicalName": "Dexorder",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          46412
        ],
        "name": "Dexorder",
        "nameLocation": "168:8:51",
        "scope": 46413,
        "usedErrors": [],
        "usedEvents": [
          46276
        ]
      }
    ],
    "license": "UNLICENSED"
  },
  "id": 51
}