genius-intents 0.20.1-develop.5 → 0.20.1-develop.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/dist/lib/dex/lfj/lfj-dex-deployments.d.ts.map +1 -1
- package/dist/lib/dex/lfj/lfj-dex-deployments.js +7 -8
- package/dist/lib/dex/lfj/lfj-dex-deployments.js.map +1 -1
- package/dist/lib/dex/pair-discovery/adapters/algebra-dex-pair-discovery.adapter.d.ts.map +1 -1
- package/dist/lib/dex/pair-discovery/adapters/algebra-dex-pair-discovery.adapter.js +13 -4
- package/dist/lib/dex/pair-discovery/adapters/algebra-dex-pair-discovery.adapter.js.map +1 -1
- package/dist/lib/dex/pair-discovery/adapters/lfj-v3-dex-pair-doscovery.adapter.d.ts +1 -0
- package/dist/lib/dex/pair-discovery/adapters/lfj-v3-dex-pair-doscovery.adapter.d.ts.map +1 -1
- package/dist/lib/dex/pair-discovery/adapters/lfj-v3-dex-pair-doscovery.adapter.js +58 -14
- package/dist/lib/dex/pair-discovery/adapters/lfj-v3-dex-pair-doscovery.adapter.js.map +1 -1
- package/dist/lib/dex/pair-discovery/adapters/v2-dex-pair-discovery.adapter.js +1 -1
- package/dist/lib/dex/pair-discovery/adapters/v2-dex-pair-discovery.adapter.js.map +1 -1
- package/dist/lib/dex/pair-discovery/adapters/v3-dex-pair-discovery.adapter.d.ts.map +1 -1
- package/dist/lib/dex/pair-discovery/adapters/v3-dex-pair-discovery.adapter.js +20 -9
- package/dist/lib/dex/pair-discovery/adapters/v3-dex-pair-discovery.adapter.js.map +1 -1
- package/dist/lib/dex/pair-discovery/adapters/ve33-dex-pair-discovery.adapter.d.ts +1 -0
- package/dist/lib/dex/pair-discovery/adapters/ve33-dex-pair-discovery.adapter.d.ts.map +1 -1
- package/dist/lib/dex/pair-discovery/adapters/ve33-dex-pair-discovery.adapter.js +82 -38
- package/dist/lib/dex/pair-discovery/adapters/ve33-dex-pair-discovery.adapter.js.map +1 -1
- package/dist/lib/dex/pair-discovery/pair-discovery.service.d.ts.map +1 -1
- package/dist/lib/dex/pair-discovery/pair-discovery.service.js +7 -2
- package/dist/lib/dex/pair-discovery/pair-discovery.service.js.map +1 -1
- package/dist/lib/dex/uniswapv3/universal-router.abi.d.ts +3 -0
- package/dist/lib/dex/uniswapv3/universal-router.abi.d.ts.map +1 -0
- package/dist/lib/dex/uniswapv3/universal-router.abi.js +17 -0
- package/dist/lib/dex/uniswapv3/universal-router.abi.js.map +1 -0
- package/dist/lib/dex/uniswapv3/v3-dex-deployments.js +1 -1
- package/dist/protocols/algebra/algebra.service.d.ts +1 -0
- package/dist/protocols/algebra/algebra.service.d.ts.map +1 -1
- package/dist/protocols/algebra/algebra.service.js +65 -32
- package/dist/protocols/algebra/algebra.service.js.map +1 -1
- package/dist/protocols/algebra/algebra.types.d.ts +2 -2
- package/dist/protocols/algebra/algebra.types.d.ts.map +1 -1
- package/dist/protocols/algebra/algebra.types.js +1 -1
- package/dist/protocols/algebra/algebra.types.js.map +1 -1
- package/dist/protocols/four-meme/four-meme.service.d.ts.map +1 -1
- package/dist/protocols/four-meme/four-meme.service.js +4 -3
- package/dist/protocols/four-meme/four-meme.service.js.map +1 -1
- package/dist/protocols/lfj/lfj.service.d.ts.map +1 -1
- package/dist/protocols/lfj/lfj.service.js +23 -7
- package/dist/protocols/lfj/lfj.service.js.map +1 -1
- package/dist/protocols/lfj/lfj.types.d.ts +8 -3
- package/dist/protocols/lfj/lfj.types.d.ts.map +1 -1
- package/dist/protocols/v2-dex/v2-dex.service.d.ts.map +1 -1
- package/dist/protocols/v2-dex/v2-dex.service.js +12 -4
- package/dist/protocols/v2-dex/v2-dex.service.js.map +1 -1
- package/dist/protocols/v2-dex/v2-dex.types.d.ts +2 -0
- package/dist/protocols/v2-dex/v2-dex.types.d.ts.map +1 -1
- package/dist/protocols/v3-dex/adapters/uniswap-fork.adapter.d.ts +1 -0
- package/dist/protocols/v3-dex/adapters/uniswap-fork.adapter.d.ts.map +1 -1
- package/dist/protocols/v3-dex/adapters/uniswap-fork.adapter.js +152 -10
- package/dist/protocols/v3-dex/adapters/uniswap-fork.adapter.js.map +1 -1
- package/dist/protocols/v3-dex/v3-dex.service.d.ts +2 -2
- package/dist/protocols/v3-dex/v3-dex.service.d.ts.map +1 -1
- package/dist/protocols/v3-dex/v3-dex.service.js +13 -8
- package/dist/protocols/v3-dex/v3-dex.service.js.map +1 -1
- package/dist/protocols/v3-dex/v3-dex.types.d.ts +1 -2
- package/dist/protocols/v3-dex/v3-dex.types.d.ts.map +1 -1
- package/dist/protocols/v3-dex/v3-dex.types.js +0 -1
- package/dist/protocols/v3-dex/v3-dex.types.js.map +1 -1
- package/dist/protocols/ve33/ve33.service.d.ts.map +1 -1
- package/dist/protocols/ve33/ve33.service.js +40 -18
- package/dist/protocols/ve33/ve33.service.js.map +1 -1
- package/dist/protocols/ve33/ve33.types.d.ts +2 -0
- package/dist/protocols/ve33/ve33.types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Ve33PairAdapter = void 0;
|
|
4
4
|
const viem_1 = require("viem");
|
|
5
|
-
const ethers_1 = require("ethers");
|
|
6
5
|
const ve33_1 = require("../../../../protocols/ve33");
|
|
7
6
|
const min_amount_out_1 = require("../../../../utils/min-amount-out");
|
|
8
7
|
const norm_dex_token_1 = require("../../../../utils/norm-dex-token");
|
|
9
8
|
const ve33_dex_deployments_1 = require("../../ve33/ve33-dex-deployments");
|
|
10
9
|
const aerodrome_router_abi_1 = require("../../ve33/aerodrome-router.abi");
|
|
10
|
+
const pharaoh_router_abi_1 = require("../../ve33/pharaoh-router.abi");
|
|
11
|
+
const blackhole_router_abi_1 = require("../../ve33/blackhole-router.abi");
|
|
11
12
|
const chainId_to_chain_1 = require("../../../../utils/chainId-to-chain");
|
|
12
13
|
const enums_1 = require("../../../../types/enums");
|
|
13
14
|
const sort_addresses_1 = require("../../../../utils/sort-addresses");
|
|
@@ -24,7 +25,8 @@ class Ve33PairAdapter {
|
|
|
24
25
|
* Blackhole pair generator address and code hash
|
|
25
26
|
*/
|
|
26
27
|
this.blackholeGenerator = '0x34098b39Ec2E2C1A8F815bb8fA840D0D389afE1c';
|
|
27
|
-
this.blackholeInitCodeHash = '
|
|
28
|
+
this.blackholeInitCodeHash = '0xa779d69ae15fc5dfe501f4a9880c751871e95e8f64da82bdba68e560e728b62a';
|
|
29
|
+
this.blackholePairCreationCode = '0x61016060405260006002556000600d556000600e5560016013553480156200002657600080fd5b506040516200528438038062005284833981016040819052620000499162000766565b6001600160a01b038085166101005281151560805282811660c052831660a052604051839083906200007b9062000695565b6001600160a01b03928316815291166020820152604001604051809103906000f080158015620000af573d6000803e3d6000fd5b506001600160a01b031660e0528015620002e157826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000102573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200012c919081019062000812565b826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156200016b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000195919081019062000812565b604051602001620001a8929190620008ca565b60405160208183030381529060405260009080519060200190620001ce929190620006a3565b50826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156200020e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000238919081019062000812565b826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000277573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620002a1919081019062000812565b604051602001620002b492919062000925565b60405160208183030381529060405260019080519060200190620002da929190620006a3565b50620004fa565b826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000320573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200034a919081019062000812565b826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000389573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620003b3919081019062000812565b604051602001620003c692919062000976565b60405160208183030381529060405260009080519060200190620003ec929190620006a3565b50826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156200042c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000456919081019062000812565b826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000495573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620004bf919081019062000812565b604051602001620004d2929190620009d3565b60405160208183030381529060405260019080519060200190620004f8929190620006a3565b505b826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000539573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200055f9190620009f5565b6200056c90600a62000b36565b6101208181525050816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015620005b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005d99190620009f5565b620005e690600a62000b36565b6101405250506040805160608101825242815260006020820181815292820181815260078054600181018255925291517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68860039092029182015591517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c689830155517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a909101555062000b839050565b6105c58062004cbf83390190565b828054620006b19062000b47565b90600052602060002090601f016020900481019282620006d5576000855562000720565b82601f10620006f057805160ff191683800117855562000720565b8280016001018555821562000720579182015b828111156200072057825182559160200191906001019062000703565b506200072e92915062000732565b5090565b5b808211156200072e576000815560010162000733565b80516001600160a01b03811681146200076157600080fd5b919050565b600080600080608085870312156200077d57600080fd5b620007888562000749565b9350620007986020860162000749565b9250620007a86040860162000749565b915060608501518015158114620007be57600080fd5b939692955090935050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620007fc578181015183820152602001620007e2565b838111156200080c576000848401525b50505050565b6000602082840312156200082557600080fd5b81516001600160401b03808211156200083d57600080fd5b818401915084601f8301126200085257600080fd5b815181811115620008675762000867620007c9565b604051601f8201601f19908116603f01168101908382118183101715620008925762000892620007c9565b81604052828152876020848701011115620008ac57600080fd5b620008bf836020830160208801620007df565b979650505050505050565b6e029ba30b13632ab189020a6a690169608d1b815260008351620008f681600f850160208801620007df565b602f60f81b600f91840191820152835162000919816010840160208801620007df565b01601001949350505050565b6473414d4d2d60d81b81526000835162000947816005850160208801620007df565b602f60f81b60059184019182015283516200096a816006840160208801620007df565b01600601949350505050565b7002b37b630ba34b632ab189020a6a690169607d1b815260008351620009a4816011850160208801620007df565b602f60f81b6011918401918201528351620009c7816012840160208801620007df565b01601201949350505050565b6476414d4d2d60d81b81526000835162000947816005850160208801620007df565b60006020828403121562000a0857600080fd5b815160ff8116811462000a1a57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000a7857816000190482111562000a5c5762000a5c62000a21565b8085161562000a6a57918102915b93841c939080029062000a3c565b509250929050565b60008262000a915750600162000b30565b8162000aa05750600062000b30565b816001811462000ab9576002811462000ac45762000ae4565b600191505062000b30565b60ff84111562000ad85762000ad862000a21565b50506001821b62000b30565b5060208310610133831016604e8410600b841016171562000b09575081810a62000b30565b62000b15838362000a37565b806000190482111562000b2c5762000b2c62000a21565b0290505b92915050565b600062000a1a60ff84168362000a80565b600181811c9082168062000b5c57607f821691505b60208210810362000b7d57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e051610100516101205161014051613f5262000d6d6000396000818161046901528181612e250152818161310f015281816131d101526132dc01526000818161044601528181612de4015281816130d00152818161321301526132b601526000818161081401528181610c9001528181610d67015281816115120152818161221b0152818161236a015281816126a1015281816127440152818161282601528181612a3301528181612ad60152612bb801526000818161062a01528181611e92015281816122bd015281816128da0152818161296401528181612c6c0152612cf60152600081816104f30152818161067f0152818161074c0152818161097601528181610c1e01528181611692015281816118ff01528181611d39015281816124da01528181612b7e0152612cd5015260008181610331015281816104cb0152818161065a0152818161095501528181610bfd015281816115fc015281816118dd01528181611d1701528181612452015281816127ec0152818161294301528181613151015281816131980152818161327d01526133200152600081816102e9015281816103cf0152818161049b01528181610c5801528181610d2f015281816117580152818161233901528181612dbc015261309c0152613f526000f3fe608060405234801561001057600080fd5b506004361061028a5760003560e01c80637ecebe001161015c578063bda39cad116100ce578063d505accf11610087578063d505accf14610776578063dd62ed3e14610789578063ebeb31db146107b4578063f083be3b146107bc578063f140a35a146107c4578063fff6cae9146107d757600080fd5b8063bda39cad14610723578063bf944dbc1461072c578063c245febc14610735578063c5700a021461073e578063d21220a714610747578063d294f0931461076e57600080fd5b80639d63848a116101205780639d63848a1461064c5780639e8cc04b146106aa5780639f767c88146106bd578063a1ac4d13146106dd578063a9059cbb146106fd578063bc25cf771461071057600080fd5b80637ecebe00146105ab57806389afcb44146105cb5780638a7b8cf2146105f357806395d89b411461061d5780639af1d35a1461062557600080fd5b806323b872dd116102005780634d5a9f8a116101b95780634d5a9f8a14610529578063517b3f82146105495780635881c4751461055c5780635a76f25e1461056f5780636a6278421461057857806370a082311461058b57600080fd5b806323b872dd146103f1578063252c09d714610404578063313ce5671461041757806332c0defd14610431578063392f37e91461043a578063443cb4bc1461052057600080fd5b80630dfe1681116102525780630dfe16811461032c57806313345fe11461036b57806318160ddd1461038b5780631df8c717146103a2578063205aabf1146103aa57806322be3de1146103ca57600080fd5b8063022c0d9f1461028f57806306fdde03146102a45780630902f1ac146102c257806309047bdd146102e7578063095ea7b314610319575b600080fd5b6102a261029d36600461397d565b6107df565b005b6102ac610f7b565b6040516102b99190613a43565b60405180910390f35b600854600954600a545b604080519384526020840192909252908201526060016102b9565b7f00000000000000000000000000000000000000000000000000000000000000005b60405190151581526020016102b9565b610309610327366004613a76565b611009565b6103537f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102b9565b61037e610379366004613aa2565b611076565b6040516102b99190613add565b61039460025481565b6040519081526020016102b9565b6102cc611272565b6103946103b8366004613b21565b60106020526000908152604090205481565b6103097f000000000000000000000000000000000000000000000000000000000000000081565b6103096103ff366004613b3e565b6112e1565b6102cc610412366004613b7f565b6113aa565b61041f601281565b60405160ff90911681526020016102b9565b610394600d5481565b600854600954604080517f000000000000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060208201529081019290925260608201527f0000000000000000000000000000000000000000000000000000000000000000151560808201526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660a08301527f00000000000000000000000000000000000000000000000000000000000000001660c082015260e0016102b9565b61039460085481565b610394610537366004613b21565b60116020526000908152604090205481565b610394610557366004613a76565b6113dd565b61037e61056a366004613b98565b6114c5565b61039460095481565b610394610586366004613b21565b6114d4565b610394610599366004613b21565b60046020526000908152604090205481565b6103946105b9366004613b21565b60066020526000908152604090205481565b6105de6105d9366004613b21565b611898565b604080519283526020830191909152016102b9565b6105fb611bc8565b60408051825181526020808401519082015291810151908201526060016102b9565b6102ac611c48565b6103537f000000000000000000000000000000000000000000000000000000000000000081565b604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811682527f0000000000000000000000000000000000000000000000000000000000000000166020820152016102b9565b6103946106b8366004613b98565b611c55565b6103946106cb366004613b21565b600f6020526000908152604090205481565b6103946106eb366004613b21565b60126020526000908152604090205481565b61030961070b366004613a76565b611cc2565b6102a261071e366004613b21565b611cd8565b610394600e5481565b610394600b5481565b610394600c5481565b610394600a5481565b6103537f000000000000000000000000000000000000000000000000000000000000000081565b6105de611e09565b6102a2610784366004613bcd565b611f30565b610394610797366004613c44565b600360209081526000928352604080842090915290825290205481565b600754610394565b6102a2612217565b6103946107d2366004613c7d565b61231e565b6102a2612412565b60135460011461080a5760405162461bcd60e51b815260040161080190613ca2565b60405180910390fd5b60026013819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b187bd266040518163ffffffff1660e01b8152600401602060405180830381865afa158015610870573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108949190613cc2565b156108ca5760405162461bcd60e51b815260206004820152600660248201526514105554d15160d21b6044820152606401610801565b60008511806108d95750600084115b61090b5760405162461bcd60e51b8152602060048201526003602482015262494f4160e81b6044820152606401610801565b600854600954818710801561091f57508086105b6109505760405162461bcd60e51b8152602060048201526002602482015261125360f21b6044820152606401610801565b6000807f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03898116908316148015906109c35750806001600160a01b0316896001600160a01b031614155b6109f45760405162461bcd60e51b8152602060048201526002602482015261125560f21b6044820152606401610801565b8a15610a0557610a05828a8d61255f565b8915610a1657610a16818a8c61255f565b8615610a8357604051639a7bff7960e01b81526001600160a01b038a1690639a7bff7990610a509033908f908f908e908e90600401613ce4565b600060405180830381600087803b158015610a6a57600080fd5b505af1158015610a7e573d6000803e3d6000fd5b505050505b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610ac7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aeb9190613d30565b6040516370a0823160e01b81523060048201529094506001600160a01b038216906370a0823190602401602060405180830381865afa158015610b32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b569190613d30565b9250505060008985610b689190613d5f565b8311610b75576000610b89565b610b7f8a86613d5f565b610b899084613d5f565b90506000610b978a86613d5f565b8311610ba4576000610bb8565b610bae8a86613d5f565b610bb89084613d5f565b90506000821180610bc95750600081115b610bfb5760405162461bcd60e51b815260206004820152600360248201526249494160e81b6044820152606401610801565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008315610d145760405163cc56b2c560e01b81523060048201527f000000000000000000000000000000000000000000000000000000000000000015156024820152610d1490612710906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc56b2c590604401602060405180830381865afa158015610cd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfb9190613d30565b610d059087613d76565b610d0f9190613d95565b61269d565b8215610deb5760405163cc56b2c560e01b81523060048201527f000000000000000000000000000000000000000000000000000000000000000015156024820152610deb90612710906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc56b2c590604401602060405180830381865afa158015610dae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd29190613d30565b610ddc9086613d76565b610de69190613d95565b612a2f565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610e2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e539190613d30565b6040516370a0823160e01b81523060048201529096506001600160a01b038216906370a0823190602401602060405180830381865afa158015610e9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebe9190613d30565b9450610eca8888612db8565b610ed48787612db8565b1015610f065760405162461bcd60e51b81526020600482015260016024820152604b60f81b6044820152606401610801565b5050610f1484848888612f04565b60408051838152602081018390529081018c9052606081018b90526001600160a01b038a169033907fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229060800160405180910390a350506001601355505050505050505050565b60008054610f8890613db7565b80601f0160208091040260200160405190810160405280929190818152602001828054610fb490613db7565b80156110015780601f10610fd657610100808354040283529160200191611001565b820191906000526020600020905b815481529060010190602001808311610fe457829003601f168201915b505050505081565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906110649086815260200190565b60405180910390a35060015b92915050565b606060008367ffffffffffffffff81111561109357611093613deb565b6040519080825280602002602001820160405280156110bc578160200160208202803683370190505b506007549091506000906110d290600190613d5f565b905060006110e08587613d76565b6110ea9083613d5f565b90506000805b83831015611262576111028784613e01565b915060006007848154811061111957611119613e19565b9060005260206000209060030201600001546007848154811061113e5761113e613e19565b90600052602060002090600302016000015461115a9190613d5f565b90506000816007868154811061117257611172613e19565b9060005260206000209060030201600101546007868154811061119757611197613e19565b9060005260206000209060030201600101546111b39190613d5f565b6111bd9190613d95565b9050600082600787815481106111d5576111d5613e19565b906000526020600020906003020160020154600787815481106111fa576111fa613e19565b9060005260206000209060030201600201546112169190613d5f565b6112209190613d95565b905061122e8c8e8484613098565b88858151811061124057611240613e19565b602090810291909101015250505060010161125b8784613e01565b92506110f0565b509293505050505b949350505050565b600b54600c544260008080611290600854600954600a549192909190565b9250925092508381146112d95760006112a98286613d5f565b90506112b58185613d76565b6112bf9088613e01565b96506112cb8184613d76565b6112d59087613e01565b9550505b505050909192565b6001600160a01b03831660008181526003602090815260408083203380855292528220549192909190821480159061131b57506000198114155b1561139157600061132c8583613d5f565b6001600160a01b038881166000818152600360209081526040808320948916808452948252918290208590559051848152939450919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505b61139c86868661338d565b6001925050505b9392505050565b600781815481106113ba57600080fd5b600091825260209091206003909102018054600182015460029092015490925083565b6000806113e8611bc8565b90506000806113f5611272565b5084519193509150420361145d576007805461141390600290613d5f565b8154811061142357611423613e19565b9060005260206000209060030201604051806060016040529081600082015481526020016001820154815260200160028201548152505092505b825160009061146c9042613d5f565b90506000818560200151856114819190613d5f565b61148b9190613d95565b90506000828660400151856114a09190613d5f565b6114aa9190613d95565b90506114b8888a8484613098565b9998505050505050505050565b606061126a8484846001611076565b60006013546001146114f85760405162461bcd60e51b815260040161080190613ca2565b60026013556040516360e8ad4760e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906360e8ad4790602401602060405180830381865afa158015611561573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115859190613cc2565b80156115915750600254155b156115de5760405162461bcd60e51b815260206004820152601860248201527f47454e455349535f504f4f4c5f4d494e545f4c4f434b454400000000000000006044820152606401610801565b6008546009546040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561164b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166f9190613d30565b6040516370a0823160e01b81523060048201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156116d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fd9190613d30565b9050600061170b8584613d5f565b905060006117198584613d5f565b60025490915060008190036117ca576103e861173d6117388486613d76565b61344d565b6117479190613d5f565b975061175660006103e86134bd565b7f0000000000000000000000000000000000000000000000000000000000000000156117c5576402540be40061178c8484612db8565b116117c55760405162461bcd60e51b81526020600482015260096024820152684d494e494d554d5f4b60b81b6044820152606401610801565b6117ff565b6117fc876117d88386613d76565b6117e29190613d95565b876117ed8486613d76565b6117f79190613d95565b613550565b97505b600088116118355760405162461bcd60e51b8152602060048201526003602482015262494c4d60e81b6044820152606401610801565b61183f89896134bd565b61184b85858989612f04565b604080518481526020810184905233917f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f910160405180910390a250506001601355509395945050505050565b6000806013546001146118bd5760405162461bcd60e51b815260040161080190613ca2565b60026013556008546009546040516370a0823160e01b81523060048201527f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000906000906001600160a01b038416906370a0823190602401602060405180830381865afa158015611953573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119779190613d30565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a0823190602401602060405180830381865afa1580156119c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e59190613d30565b306000908152600460205260409020546002549192509080611a078584613d76565b611a119190613d95565b995080611a1e8484613d76565b611a289190613d95565b985060008a118015611a3a5750600089115b611a6c5760405162461bcd60e51b815260206004820152600360248201526224a62160e91b6044820152606401610801565b611a763083613566565b611a81868c8c61255f565b611a8c858c8b61255f565b6040516370a0823160e01b81523060048201526001600160a01b038716906370a0823190602401602060405180830381865afa158015611ad0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af49190613d30565b6040516370a0823160e01b81523060048201529094506001600160a01b038616906370a0823190602401602060405180830381865afa158015611b3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5f9190613d30565b9250611b6d84848a8a612f04565b604080518b8152602081018b90526001600160a01b038d169133917fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496910160405180910390a350505050505050506001601381905550915091565b611bec60405180606001604052806000815260200160008152602001600081525090565b60078054611bfc90600190613d5f565b81548110611c0c57611c0c613e19565b90600052602060002090600302016040518060600160405290816000820154815260200160018201548152602001600282015481525050905090565b60018054610f8890613db7565b600080611c658585856001611076565b90506000805b8251811015611cad57828181518110611c8657611c86613e19565b602002602001015182611c999190613e01565b915080611ca581613e2f565b915050611c6b565b50611cb88482613d95565b9695505050505050565b6000611ccf33848461338d565b50600192915050565b601354600114611cfa5760405162461bcd60e51b815260040161080190613ca2565b60026013556008546040516370a0823160e01b81523060048201527f0000000000000000000000000000000000000000000000000000000000000000917f000000000000000000000000000000000000000000000000000000000000000091611dc79184918691906001600160a01b038416906370a08231906024015b602060405180830381865afa158015611d94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db89190613d30565b611dc29190613d5f565b61255f565b6009546040516370a0823160e01b8152306004820152611dff9183918691906001600160a01b038416906370a0823190602401611d77565b5050600160135550565b600080611e15336135f1565b50503360009081526011602090815260408083205460129092529091205481151580611e415750600081115b15611f2c573360008181526011602090815260408083208390556012909152808220919091555163299e7ae760e11b8152600481019190915260248101839052604481018290526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063533cf5ce90606401600060405180830381600087803b158015611ed657600080fd5b505af1158015611eea573d6000803e3d6000fd5b505060408051858152602081018590523393508392507f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e94645910160405180910390a35b9091565b42841015611f665760405162461bcd60e51b815260206004820152600360248201526204558560ec1b6044820152606401610801565b7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051611f969190613e48565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160408051601f19818403018152918152815160209283012060058190556001600160a01b038a166000908152600690935290822080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b91908761206183613e2f565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e001604051602081830303815290604052805190602001206040516020016120da92919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015612145573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381161580159061217b5750886001600160a01b0316816001600160a01b0316145b6121b05760405162461bcd60e51b8152600401610801906020808252600490820152634953494760e01b604082015260600190565b6001600160a01b038981166000818152600360209081526040808320948d16808452948252918290208b905590518a81527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c124a4a26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612277573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229b9190613ee3565b60405163f8518b8960e01b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063f8518b8990602401600060405180830381600087803b15801561230357600080fd5b505af1158015612317573d6000803e3d6000fd5b5050505050565b60085460095460405163cc56b2c560e01b81523060048201527f0000000000000000000000000000000000000000000000000000000000000000151560248201526000929190612710907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063cc56b2c590604401602060405180830381865afa1580156123b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123dd9190613d30565b6123e79087613d76565b6123f19190613d95565b6123fb9086613d5f565b945061240985858484613098565b95945050505050565b6013546001146124345760405162461bcd60e51b815260040161080190613ca2565b60026013556040516370a0823160e01b8152306004820152612558907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156124a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c59190613d30565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015612529573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061254d9190613d30565b600854600954612f04565b6001601355565b6000836001600160a01b03163b116125a35760405162461bcd60e51b815260206004820152600760248201526621a7a222a622a760c91b6044820152606401610801565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916125ff9190613f00565b6000604051808303816000865af19150503d806000811461263c576040519150601f19603f3d011682016040523d82523d6000602084013e612641565b606091505b509150915081801561266b57508051158061266b57508080602001905181019061266b9190613cc2565b6123175760405162461bcd60e51b81526020600482015260036024820152621254d560ea1b6044820152606401610801565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637be1623e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127219190613ee3565b604051632db39b2f60e21b81523060048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b6ce6cbc90602401602060405180830381865afa15801561278b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127af9190613d30565b905060006001600160a01b0383166127c85760006127df565b6127106127d58386613d76565b6127df9190613d95565b9050801561281f576128127f0000000000000000000000000000000000000000000000000000000000000000848361255f565b61281c8185613d5f565b93505b60006127107f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663956f94a16040518163ffffffff1660e01b8152600401602060405180830381865afa158015612882573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a69190613d30565b6128b09087613d76565b6128ba9190613d95565b604051638d4dabff60e01b815260048101829052600160248201529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638d4dabff90604401600060405180830381600087803b15801561292657600080fd5b505af115801561293a573d6000803e3d6000fd5b505050506129897f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008761255f565b6129938186613d5f565b9450600060025486670de0b6b3a76400006129ae9190613d76565b6129b89190613d95565b905080156129d85780600d60008282546129d29190613e01565b90915550505b337f112c256902bf554b6ed882d2936687aaeb4225e8cd5b51303c90ca6cf43a860284612a05858a613e01565b612a0f9190613e01565b6040805191825260006020830152015b60405180910390a2505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637be1623e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab39190613ee3565b604051632db39b2f60e21b81523060048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b6ce6cbc90602401602060405180830381865afa158015612b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b419190613d30565b905060006001600160a01b038316612b5a576000612b71565b612710612b678386613d76565b612b719190613d95565b90508015612bb157612ba47f0000000000000000000000000000000000000000000000000000000000000000848361255f565b612bae8185613d5f565b93505b60006127107f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663956f94a16040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c389190613d30565b612c429087613d76565b612c4c9190613d95565b604051638d4dabff60e01b815260048101829052600060248201529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638d4dabff90604401600060405180830381600087803b158015612cb857600080fd5b505af1158015612ccc573d6000803e3d6000fd5b50505050612d1b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008761255f565b612d258186613d5f565b9450600060025486670de0b6b3a7640000612d409190613d76565b612d4a9190613d95565b90508015612d6a5780600e6000828254612d649190613e01565b90915550505b337f112c256902bf554b6ed882d2936687aaeb4225e8cd5b51303c90ca6cf43a8602600085612d99868b613e01565b612da39190613e01565b60408051928352602083019190915201612a1f565b60007f000000000000000000000000000000000000000000000000000000000000000015612ef35760007f0000000000000000000000000000000000000000000000000000000000000000612e1585670de0b6b3a7640000613d76565b612e1f9190613d95565b905060007f0000000000000000000000000000000000000000000000000000000000000000612e5685670de0b6b3a7640000613d76565b612e609190613d95565b90506000670de0b6b3a7640000612e778385613d76565b612e819190613d95565b90506000670de0b6b3a7640000612e988480613d76565b612ea29190613d95565b670de0b6b3a7640000612eb58680613d76565b612ebf9190613d95565b612ec99190613e01565b9050670de0b6b3a7640000612ede8284613d76565b612ee89190613d95565b945050505050611070565b612efd8284613d76565b9050611070565b600a544290600090612f169083613d5f565b9050600081118015612f2757508315155b8015612f3257508215155b15612f7957612f418185613d76565b600b6000828254612f529190613e01565b90915550612f6290508184613d76565b600c6000828254612f739190613e01565b90915550505b6000612f83611bc8565b8051909150612f929084613d5f565b91506107088211156130475760408051606081018252848152600b5460208201908152600c549282019283526007805460018101825560009190915291517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688600390930292830155517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68982015590517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a909101555b60088790556009869055600a83905560408051888152602081018890527fcf2aa50876cdfbb541206f89af0ee78d44a2abf8d328e37fa4917f982149848a910160405180910390a150505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000001561331b5760006130cc8484612db8565b90507f000000000000000000000000000000000000000000000000000000000000000061310185670de0b6b3a7640000613d76565b61310b9190613d95565b93507f000000000000000000000000000000000000000000000000000000000000000061314084670de0b6b3a7640000613d76565b61314a9190613d95565b92506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b03161461318f578486613192565b85855b915091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b031614613211577f000000000000000000000000000000000000000000000000000000000000000061320289670de0b6b3a7640000613d76565b61320c9190613d95565b61324e565b7f000000000000000000000000000000000000000000000000000000000000000061324489670de0b6b3a7640000613d76565b61324e9190613d95565b9750600061326661325f848b613e01565b8584613751565b6132709083613d5f565b9050670de0b6b3a76400007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316896001600160a01b0316146132da577f00000000000000000000000000000000000000000000000000000000000000006132fc565b7f00000000000000000000000000000000000000000000000000000000000000005b6133069083613d76565b6133109190613d95565b94505050505061126a565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b03161461335e578385613361565b84845b90925090506133708783613e01565b61337a8289613d76565b6133849190613d95565b9250505061126a565b613396836135f1565b61339f826135f1565b6001600160a01b038316600090815260046020526040812080548392906133c7908490613d5f565b90915550506001600160a01b038216600090815260046020526040812080548392906133f4908490613e01565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161344091815260200190565b60405180910390a3505050565b600060038211156134ae5750806000613467600283613d95565b613472906001613e01565b90505b818110156134a85790508060028161348d8186613d95565b6134979190613e01565b6134a19190613d95565b9050613475565b50919050565b81156134b8575060015b919050565b6134c6826135f1565b80600260008282546134d89190613e01565b90915550506001600160a01b03821660009081526004602052604081208054839290613505908490613e01565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b600081831061355f57816113a3565b5090919050565b61356f826135f1565b80600260008282546135819190613d5f565b90915550506001600160a01b038216600090815260046020526040812080548392906135ae908490613d5f565b90915550506040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001613544565b6001600160a01b038116600090815260046020526040902054801561371f576001600160a01b0382166000908152600f60209081526040808320805460108085529285208054600d54600e549481905594909552829055936136538584613d5f565b905060006136618584613d5f565b905081156136bc576000670de0b6b3a764000061367e848a613d76565b6136889190613d95565b6001600160a01b038a166000908152601160205260408120805492935083929091906136b5908490613e01565b9091555050505b8015613715576000670de0b6b3a76400006136d7838a613d76565b6136e19190613d95565b6001600160a01b038a1660009081526012602052604081208054929350839290919061370e908490613e01565b9091555050505b5050505050505050565b600d546001600160a01b0383166000908152600f6020908152604080832093909355600e546010909152919020555050565b6000805b60ff8110156138575782600061376b8783613860565b9050858110156137bb57600061378188876138fd565b61378b8389613d5f565b61379d90670de0b6b3a7640000613d76565b6137a79190613d95565b90506137b38187613e01565b9550506137fd565b60006137c788876138fd565b6137d18884613d5f565b6137e390670de0b6b3a7640000613d76565b6137ed9190613d95565b90506137f98187613d5f565b9550505b818511156138265760016138118387613d5f565b11613821578493505050506113a3565b613842565b60016138328684613d5f565b11613842578493505050506113a3565b5050808061384f90613e2f565b915050613755565b50909392505050565b6000670de0b6b3a7640000828185816138798280613d76565b6138839190613d95565b61388d9190613d76565b6138979190613d95565b6138a19190613d76565b6138ab9190613d95565b670de0b6b3a76400008084816138c18280613d76565b6138cb9190613d95565b6138d59190613d76565b6138df9190613d95565b6138e99086613d76565b6138f39190613d95565b6113a39190613e01565b6000670de0b6b3a764000083816139148280613d76565b61391e9190613d95565b6139289190613d76565b6139329190613d95565b670de0b6b3a7640000806139468580613d76565b6139509190613d95565b61395b866003613d76565b6138e99190613d76565b6001600160a01b038116811461397a57600080fd5b50565b60008060008060006080868803121561399557600080fd5b853594506020860135935060408601356139ae81613965565b9250606086013567ffffffffffffffff808211156139cb57600080fd5b818801915088601f8301126139df57600080fd5b8135818111156139ee57600080fd5b896020828501011115613a0057600080fd5b9699959850939650602001949392505050565b60005b83811015613a2e578181015183820152602001613a16565b83811115613a3d576000848401525b50505050565b6020815260008251806020840152613a62816040850160208701613a13565b601f01601f19169190910160400192915050565b60008060408385031215613a8957600080fd5b8235613a9481613965565b946020939093013593505050565b60008060008060808587031215613ab857600080fd5b8435613ac381613965565b966020860135965060408601359560600135945092505050565b6020808252825182820181905260009190848201906040850190845b81811015613b1557835183529284019291840191600101613af9565b50909695505050505050565b600060208284031215613b3357600080fd5b81356113a381613965565b600080600060608486031215613b5357600080fd5b8335613b5e81613965565b92506020840135613b6e81613965565b929592945050506040919091013590565b600060208284031215613b9157600080fd5b5035919050565b600080600060608486031215613bad57600080fd5b8335613bb881613965565b95602085013595506040909401359392505050565b600080600080600080600060e0888a031215613be857600080fd5b8735613bf381613965565b96506020880135613c0381613965565b95506040880135945060608801359350608088013560ff81168114613c2757600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215613c5757600080fd5b8235613c6281613965565b91506020830135613c7281613965565b809150509250929050565b60008060408385031215613c9057600080fd5b823591506020830135613c7281613965565b6020808252600690820152651313d0d2d15160d21b604082015260600190565b600060208284031215613cd457600080fd5b815180151581146113a357600080fd5b60018060a01b038616815284602082015283604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b600060208284031215613d4257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082821015613d7157613d71613d49565b500390565b6000816000190483118215151615613d9057613d90613d49565b500290565b600082613db257634e487b7160e01b600052601260045260246000fd5b500490565b600181811c90821680613dcb57607f821691505b6020821081036134a857634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60008219821115613e1457613e14613d49565b500190565b634e487b7160e01b600052603260045260246000fd5b600060018201613e4157613e41613d49565b5060010190565b600080835481600182811c915080831680613e6457607f831692505b60208084108203613e8357634e487b7160e01b86526022600452602486fd5b818015613e975760018114613ea857613ed5565b60ff19861689528489019650613ed5565b60008a81526020902060005b86811015613ecd5781548b820152908501908301613eb4565b505084890196505b509498975050505050505050565b600060208284031215613ef557600080fd5b81516113a381613965565b60008251613f12818460208701613a13565b919091019291505056fea264697066735822122066c83ac32f66aad854faac6b14ff71929aac031a3292cdf2e67bb09a9cf20f9f64736f6c634300080d003360e060405234801561001057600080fd5b506040516105c53803806105c583398101604081905261002f91610066565b336080526001600160a01b0391821660a0521660c052610099565b80516001600160a01b038116811461006157600080fd5b919050565b6000806040838503121561007957600080fd5b6100828361004a565b91506100906020840161004a565b90509250929050565b60805160a05160c0516104e36100e26000396000818161012c015261026001526000818160fb015261022601526000818160c60152818161016201526101ef01526104e36000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063533cf5ce1461005c5780635b3c924814610071578063651d83f91461008c5780638d4dabff14610095578063f8518b89146100a8575b600080fd5b61006f61006a36600461039c565b6100bb565b005b61007a60015481565b60405190815260200160405180910390f35b61007a60005481565b61006f6100a33660046103dd565b610157565b61006f6100b636600461040d565b6101e4565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146100f057600080fd5b8115610121576101217f00000000000000000000000000000000000000000000000000000000000000008484610291565b8015610152576101527f00000000000000000000000000000000000000000000000000000000000000008483610291565b505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018c57600080fd5b6000821180156101995750805b156101b557816000808282546101af919061042f565b90915550505b6000821180156101c3575080155b156101e05781600160008282546101da919061042f565b90915550505b5050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461021957600080fd5b600054156102535761024e7f000000000000000000000000000000000000000000000000000000000000000082600054610291565b600080555b6001541561028e576102887f000000000000000000000000000000000000000000000000000000000000000082600154610291565b60006001555b50565b6000836001600160a01b03163b116102a857600080fd5b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916103049190610455565b6000604051808303816000865af19150503d8060008114610341576040519150601f19603f3d011682016040523d82523d6000602084013e610346565b606091505b50915091508180156103705750805115806103705750808060200190518101906103709190610490565b61037957600080fd5b5050505050565b80356001600160a01b038116811461039757600080fd5b919050565b6000806000606084860312156103b157600080fd5b6103ba84610380565b95602085013595506040909401359392505050565b801515811461028e57600080fd5b600080604083850312156103f057600080fd5b823591506020830135610402816103cf565b809150509250929050565b60006020828403121561041f57600080fd5b61042882610380565b9392505050565b6000821982111561045057634e487b7160e01b600052601160045260246000fd5b500190565b6000825160005b81811015610476576020818601810151858301520161045c565b81811115610485576000828501525b509190910192915050565b6000602082840312156104a257600080fd5b8151610428816103cf56fea26469706673582212202e876ac1aeaa0d201af78e5c0d06cabaf7e89c22b654061a6df837eebc9557df64736f6c634300080d0033';
|
|
28
30
|
/**
|
|
29
31
|
* Pharaoh pair generator address and code hash
|
|
30
32
|
*/
|
|
@@ -43,7 +45,7 @@ class Ve33PairAdapter {
|
|
|
43
45
|
const chainConfig = chainId_to_chain_1.chainIdToChain[network];
|
|
44
46
|
const supportsNetwork = this.chains.includes(network);
|
|
45
47
|
if (!chainConfig || !supportsNetwork) {
|
|
46
|
-
console.warn(`Ve33PairAdapter: Skipping unsupported or unknown network ${network}`);
|
|
48
|
+
// console.warn(`Ve33PairAdapter: Skipping unsupported or unknown network ${network}`);
|
|
47
49
|
continue;
|
|
48
50
|
}
|
|
49
51
|
const client = (0, viem_1.createPublicClient)({
|
|
@@ -130,33 +132,61 @@ class Ve33PairAdapter {
|
|
|
130
132
|
if (!client) {
|
|
131
133
|
throw new Error(`No public client available for chain ID: ${network}`);
|
|
132
134
|
}
|
|
133
|
-
const
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
135
|
+
const isDrome = matchingPair.dex === ve33_1.Ve33StyleDeploymentEnum.AERODROME ||
|
|
136
|
+
matchingPair.dex === ve33_1.Ve33StyleDeploymentEnum.VELODROME;
|
|
137
|
+
const isPharaoh = matchingPair.dex === ve33_1.Ve33StyleDeploymentEnum.PHARAOH;
|
|
138
|
+
const isBlackhole = matchingPair.dex === ve33_1.Ve33StyleDeploymentEnum.BLACKHOLE;
|
|
139
|
+
if (isDrome || isPharaoh) {
|
|
140
|
+
const normalizedRoute = this._normalizeRouteForGetAmountsOut({
|
|
141
|
+
tokenIn,
|
|
142
|
+
tokenOut,
|
|
143
|
+
stable: matchingPair.volatility === ve33_1.VolatilityEnum.STABLE,
|
|
144
|
+
factory: deployment.poolFactory,
|
|
145
|
+
isDrome,
|
|
146
|
+
});
|
|
147
|
+
/**
|
|
148
|
+
* Utilize `getAmountsOut` as `getAmountOut` requires an additional
|
|
149
|
+
* rpc call to fetch the pair reserves
|
|
150
|
+
*/
|
|
151
|
+
const abi = isDrome ? aerodrome_router_abi_1.aerodromeRouterAbi : pharaoh_router_abi_1.pharaohRouterAbi;
|
|
152
|
+
const amountsOutCall = {
|
|
153
|
+
address: deployment.router,
|
|
154
|
+
// Aerodrome ABI works for getAmountsOut shape used in both AERODROME & VELODROME paths
|
|
155
|
+
abi: abi,
|
|
156
|
+
functionName: 'getAmountsOut',
|
|
157
|
+
args: [amountIn, [normalizedRoute]],
|
|
158
|
+
};
|
|
159
|
+
const amountsOutResult = (await client.readContract(amountsOutCall));
|
|
160
|
+
const expectedAmountOut = amountsOutResult[amountsOutResult.length - 1] ?? BigInt(0);
|
|
161
|
+
const amountOutMin = (0, min_amount_out_1.calculateMinAmountOut)({
|
|
162
|
+
amountOut: expectedAmountOut.toString(),
|
|
163
|
+
slippage,
|
|
164
|
+
});
|
|
165
|
+
return {
|
|
166
|
+
expectedAmountOut: expectedAmountOut.toString(),
|
|
167
|
+
amountOutMin,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
else if (isBlackhole) {
|
|
171
|
+
const args = [amountIn, tokenIn, matchingPair.pair];
|
|
172
|
+
const expectedAmountOut = (await client.readContract({
|
|
173
|
+
address: deployment.router,
|
|
174
|
+
abi: blackhole_router_abi_1.blackholeRouterAbi,
|
|
175
|
+
functionName: 'getPoolAmountOut',
|
|
176
|
+
args: args,
|
|
177
|
+
}));
|
|
178
|
+
const amountOutMin = (0, min_amount_out_1.calculateMinAmountOut)({
|
|
179
|
+
amountOut: expectedAmountOut.toString(),
|
|
180
|
+
slippage,
|
|
181
|
+
});
|
|
182
|
+
return {
|
|
183
|
+
expectedAmountOut: expectedAmountOut.toString(),
|
|
184
|
+
amountOutMin,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
throw new Error(`Unsupported Ve33 dex for amount out calculation: ${matchingPair.dex}`);
|
|
189
|
+
}
|
|
160
190
|
}
|
|
161
191
|
_computePairAddresses(params) {
|
|
162
192
|
const results = [];
|
|
@@ -245,18 +275,29 @@ class Ve33PairAdapter {
|
|
|
245
275
|
throw new Error(`Unsupported Ve33 fork deployment tag for pair computation: ${params.deployment.tag}`);
|
|
246
276
|
}
|
|
247
277
|
_computePharaohPairAddress(params) {
|
|
248
|
-
|
|
278
|
+
// Compute salt matching Solidity's abi.encodePacked(token0, token1, stable)
|
|
279
|
+
const salt = (0, viem_1.keccak256)((0, viem_1.encodePacked)(['address', 'address', 'bool'], [params.token0, params.token1, params.stable]));
|
|
249
280
|
const deployer = (0, viem_1.getAddress)(params.deployment.poolFactory);
|
|
250
|
-
|
|
281
|
+
// Compute CREATE2 address
|
|
282
|
+
const pair = (0, viem_1.getAddress)(`0x${(0, viem_1.keccak256)((0, viem_1.encodePacked)(['bytes1', 'address', 'bytes32', 'bytes32'], ['0xff', deployer, salt, this.pharaohPairCodeHash])).slice(-40)}`);
|
|
251
283
|
return pair;
|
|
252
284
|
}
|
|
253
285
|
_computeBlackholePairAddress(params) {
|
|
254
|
-
const
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
const
|
|
286
|
+
const [token0, token1] = (0, sort_addresses_1.sortAddresses)(params.token0, params.token1);
|
|
287
|
+
const factory = (0, viem_1.getAddress)('0xfE926062Fb99CA5653080d6C14fE945Ad68c265C');
|
|
288
|
+
// Encode constructor arguments
|
|
289
|
+
const constructorArgs = (0, viem_1.encodeAbiParameters)((0, viem_1.parseAbiParameters)('address, address, address, bool'), [factory, token0, token1, params.stable]);
|
|
290
|
+
// Compute the full init code (creation code + constructor args)
|
|
291
|
+
const initCode = (0, viem_1.concatHex)([
|
|
292
|
+
this.blackholePairCreationCode, // This is the static part
|
|
293
|
+
constructorArgs,
|
|
294
|
+
]);
|
|
295
|
+
// Hash the full init code
|
|
296
|
+
const initCodeHash = (0, viem_1.keccak256)(initCode);
|
|
297
|
+
// Compute salt
|
|
298
|
+
const salt = (0, viem_1.keccak256)((0, viem_1.encodePacked)(['address', 'address', 'bool'], [token0, token1, params.stable]));
|
|
299
|
+
// Compute CREATE2 address
|
|
300
|
+
const pair = (0, viem_1.getAddress)(`0x${(0, viem_1.keccak256)((0, viem_1.encodePacked)(['bytes1', 'address', 'bytes32', 'bytes32'], ['0xff', this.blackholeGenerator, salt, initCodeHash])).slice(-40)}`);
|
|
260
301
|
return pair;
|
|
261
302
|
}
|
|
262
303
|
_determineImplementation(deployment) {
|
|
@@ -270,6 +311,9 @@ class Ve33PairAdapter {
|
|
|
270
311
|
}
|
|
271
312
|
}
|
|
272
313
|
_normalizeRouteForGetAmountsOut(r) {
|
|
314
|
+
if (!r.isDrome) {
|
|
315
|
+
return { from: r.tokenIn, to: r.tokenOut, stable: r.stable };
|
|
316
|
+
}
|
|
273
317
|
return { from: r.tokenIn, to: r.tokenOut, stable: r.stable, factory: r.factory };
|
|
274
318
|
}
|
|
275
319
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ve33-dex-pair-discovery.adapter.js","sourceRoot":"","sources":["../../../../../src/lib/dex/pair-discovery/adapters/ve33-dex-pair-discovery.adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ve33-dex-pair-discovery.adapter.js","sourceRoot":"","sources":["../../../../../src/lib/dex/pair-discovery/adapters/ve33-dex-pair-discovery.adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pair-discovery.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/dex/pair-discovery/pair-discovery.service.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EAEnB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAEhC;;GAEG;AACH,OAAO,EAAE,WAAW,EAAgB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"pair-discovery.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/dex/pair-discovery/pair-discovery.service.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EAEnB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAEhC;;GAEG;AACH,OAAO,EAAE,WAAW,EAAgB,MAAM,sBAAsB,CAAC;AAiBjE,qBAAa,uBAAuB;IAC3B,KAAK,EAAE,iBAAiB,EAAE,CAwB/B;IAEK,MAAM,EAAE,WAAW,EAAE,CAS1B;IAEF,OAAO,CAAC,SAAS,CAAyB;gBAE9B,MAAM,EAAE,sBAAsB;IAW7B,WAAW,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAyCjF"}
|
|
@@ -18,6 +18,7 @@ const v2_dex_pair_discovery_adapter_1 = require("./adapters/v2-dex-pair-discover
|
|
|
18
18
|
const v3_dex_pair_discovery_adapter_1 = require("./adapters/v3-dex-pair-discovery.adapter");
|
|
19
19
|
const ve33_dex_pair_discovery_adapter_1 = require("./adapters/ve33-dex-pair-discovery.adapter");
|
|
20
20
|
const fourmeme_dex_pair_discovery_adapter_1 = require("./adapters/fourmeme-dex-pair-discovery.adapter");
|
|
21
|
+
const norm_dex_token_1 = require("../../../utils/norm-dex-token");
|
|
21
22
|
class EvmPairDiscoveryService {
|
|
22
23
|
constructor(config) {
|
|
23
24
|
this.dexes = [
|
|
@@ -34,7 +35,6 @@ class EvmPairDiscoveryService {
|
|
|
34
35
|
v2_dex_types_1.UniswapV2StyleDexEnum.HYPERSWAP_V2,
|
|
35
36
|
v3_dex_types_1.UniswapV3StyleDexEnum.UNISWAP_V3,
|
|
36
37
|
v3_dex_types_1.UniswapV3StyleDexEnum.PANCAKESWAP_V3,
|
|
37
|
-
v3_dex_types_1.UniswapV3StyleDexEnum.QUICKSWAP_V3,
|
|
38
38
|
v3_dex_types_1.UniswapV3StyleDexEnum.PANGOLIN_V3,
|
|
39
39
|
v3_dex_types_1.UniswapV3StyleDexEnum.HYPERSWAP_V3,
|
|
40
40
|
v3_dex_types_1.UniswapV3StyleDexEnum.PHARAOH_CLMM,
|
|
@@ -70,9 +70,14 @@ class EvmPairDiscoveryService {
|
|
|
70
70
|
return new Promise((resolve, reject) => {
|
|
71
71
|
let resolvedCount = 0;
|
|
72
72
|
const totalAdapters = this._adapters.length;
|
|
73
|
+
const { tokenIn, tokenOut } = (0, norm_dex_token_1.normalizeDexTokens)({
|
|
74
|
+
tokenIn: params.tokenIn,
|
|
75
|
+
tokenOut: params.tokenOut,
|
|
76
|
+
network: params.network,
|
|
77
|
+
});
|
|
73
78
|
this._adapters.forEach(adapter => {
|
|
74
79
|
adapter
|
|
75
|
-
.getPairInfo(params)
|
|
80
|
+
.getPairInfo({ ...params, tokenIn, tokenOut })
|
|
76
81
|
.then(pairInfo => {
|
|
77
82
|
if (pairInfo) {
|
|
78
83
|
resolve(pairInfo);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pair-discovery.service.js","sourceRoot":"","sources":["../../../../src/lib/dex/pair-discovery/pair-discovery.service.ts"],"names":[],"mappings":";;;AAWA;;GAEG;AACH,gDAAiE;AACjE,4EAA6E;AAC7E,yEAA+E;AAC/E,yEAA+E;AAC/E,mEAA6E;AAE7E;;GAEG;AACH,sGAAmF;AACnF,oGAA8E;AAC9E,4FAA4E;AAC5E,4FAA4E;AAC5E,gGAA6E;AAC7E,wGAAqF;
|
|
1
|
+
{"version":3,"file":"pair-discovery.service.js","sourceRoot":"","sources":["../../../../src/lib/dex/pair-discovery/pair-discovery.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"universal-router.abi.d.ts","sourceRoot":"","sources":["../../../../src/lib/dex/uniswapv3/universal-router.abi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAE3B,eAAO,MAAM,kBAAkB,EAAE,GAYvB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.universalRouterAbi = void 0;
|
|
4
|
+
exports.universalRouterAbi = [
|
|
5
|
+
{
|
|
6
|
+
type: 'function',
|
|
7
|
+
name: 'execute',
|
|
8
|
+
stateMutability: 'payable',
|
|
9
|
+
inputs: [
|
|
10
|
+
{ name: 'commands', type: 'bytes' },
|
|
11
|
+
{ name: 'inputs', type: 'bytes[]' },
|
|
12
|
+
{ name: 'deadline', type: 'uint256' },
|
|
13
|
+
],
|
|
14
|
+
outputs: [],
|
|
15
|
+
},
|
|
16
|
+
];
|
|
17
|
+
//# sourceMappingURL=universal-router.abi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"universal-router.abi.js","sourceRoot":"","sources":["../../../../src/lib/dex/uniswapv3/universal-router.abi.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAAQ;IACrC;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,SAAS;QACf,eAAe,EAAE,SAAS;QAC1B,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;YACnC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;SACtC;QACD,OAAO,EAAE,EAAE;KACZ;CACO,CAAC"}
|
|
@@ -85,7 +85,7 @@ exports.uniV3DexDeployments = {
|
|
|
85
85
|
dex: v3_dex_types_1.UniswapV3StyleDexEnum.RAMSES_CLMM,
|
|
86
86
|
chainId: enums_1.ChainIdEnum.AVALANCHE,
|
|
87
87
|
family: v3_dex_types_1.UniswapV3StyleDexFamilyEnum.SLIPSTREAM,
|
|
88
|
-
router: '
|
|
88
|
+
router: '0x5AcC35397D2ce81Ac54A4B1c6D9e1FB29F8EC6C6', // SwapRouter (immutable & verified)
|
|
89
89
|
quoter: '0x3265d621c7d993151C8EB2aCd4902CdA0499A8a0', // QuoterV3
|
|
90
90
|
deployer: '0x6a4113ed0915bCf5E48e758e8f4cEBFFC07C66f9', // RamsesV3PoolDeployer
|
|
91
91
|
factory: '0xAE6E5c62328ade73ceefD42228528b70c8157D0d', // RamsesV3Factory (CL)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"algebra.service.d.ts","sourceRoot":"","sources":["../../../src/protocols/algebra/algebra.service.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,aAAa,EACb,iBAAiB,
|
|
1
|
+
{"version":3,"file":"algebra.service.d.ts","sourceRoot":"","sources":["../../../src/protocols/algebra/algebra.service.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,aAAa,EACb,iBAAiB,EAQlB,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAgB,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAS7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAO3D;;;;;;;;GAQG;AACH,qBAAa,cAAe,YAAW,eAAe;IACpD;;OAEG;IACI,QAAQ,EAAE,YAAY,CAAwB;IAErD;;OAEG;IACI,WAAW,UAAQ;IAE1B;;OAEG;IACI,UAAU,UAAS;IAE1B;;OAEG;IACI,MAAM,gBAAgD;IAE7D;;OAEG;IACI,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAEzC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAkD;IAElE;;OAEG;IACI,WAAW,oDAAyB;gBAE/B,MAAM,CAAC,EAAE,sBAAsB,GAAG,aAAa;IA2CpD,eAAe,CAAC,CAAC,SAAS;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EAAE,OAAO,EAAE;QACpE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,GAAG,OAAO,IAAI,CAAC;IAMhB,iEAAiE;IACpD,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAqL1E,gFAAgF;IACnE,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAiK1E,OAAO,CAAC,4BAA4B;IA2EpC,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,uBAAuB;IA4B/B,OAAO,CAAC,iBAAiB;YAoCX,+BAA+B;IA+H7C,OAAO,CAAC,gBAAgB;CAezB"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AlgebraService = void 0;
|
|
4
4
|
const viem_1 = require("viem");
|
|
5
|
+
const algebra_types_1 = require("./algebra.types");
|
|
5
6
|
const algebra_factory_abi_1 = require("../../lib/dex/algebra/algebra-factory.abi");
|
|
6
7
|
const algebra_quoter_abi_1 = require("../../lib/dex/algebra/algebra-quoter.abi");
|
|
7
8
|
const algebra_router_abi_1 = require("../../lib/dex/algebra/algebra-router.abi");
|
|
@@ -15,6 +16,7 @@ const dex_deployment_key_1 = require("../../utils/dex-deployment-key");
|
|
|
15
16
|
const chainId_to_chain_1 = require("../../utils/chainId-to-chain");
|
|
16
17
|
const is_native_1 = require("../../utils/is-native");
|
|
17
18
|
const utils_1 = require("../../utils");
|
|
19
|
+
const constants_1 = require("../../utils/constants");
|
|
18
20
|
let logger;
|
|
19
21
|
/**
|
|
20
22
|
* AlgebraService: quotes Algebra-based CLMMs (Blackhole, …).
|
|
@@ -119,8 +121,9 @@ class AlgebraService {
|
|
|
119
121
|
const overridePairCandidate = overrides?.pairCandidate;
|
|
120
122
|
const overridePair = overridePairCandidate?.pair;
|
|
121
123
|
const overrideAmountOutMin = overridePairCandidate?.amountOutMin;
|
|
124
|
+
const overrideExpectedAmountOut = overridePairCandidate?.expectedAmountOut;
|
|
122
125
|
const overrideDeployer = overridePairCandidate?.deployer;
|
|
123
|
-
const useFastRoute = overridePair && overrideAmountOutMin && overrideDeployer;
|
|
126
|
+
const useFastRoute = overridePair && overrideAmountOutMin && overrideExpectedAmountOut && overrideDeployer;
|
|
124
127
|
if (useFastRoute) {
|
|
125
128
|
return this._buildFastRoutePriceResponse({
|
|
126
129
|
tokenIn: tokenInNorm,
|
|
@@ -130,7 +133,7 @@ class AlgebraService {
|
|
|
130
133
|
amountIn: amountInBI.toString(),
|
|
131
134
|
slippage,
|
|
132
135
|
overridePair,
|
|
133
|
-
|
|
136
|
+
overrideExpectedAmountOut,
|
|
134
137
|
overrideDeployer,
|
|
135
138
|
});
|
|
136
139
|
}
|
|
@@ -192,9 +195,8 @@ class AlgebraService {
|
|
|
192
195
|
throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, 'Algebra: failed to select a deployment.');
|
|
193
196
|
}
|
|
194
197
|
// Build the Algebra path for single-hop (token, deployer, token), reverse-encoded for Algebra
|
|
195
|
-
const
|
|
196
|
-
|
|
197
|
-
]);
|
|
198
|
+
const deployerForPath = this._deployerForPath(chosenDep, chosenPool.deployer, chosenPool.kind);
|
|
199
|
+
const path = this._buildAlgebraPath([{ tokenIn: tokenInNorm, deployer: deployerForPath, tokenOut: tokenOutNorm }], chosenDep.tag);
|
|
198
200
|
const proto = {
|
|
199
201
|
deploymentKey: (0, dex_deployment_key_1.dexDeploymentKey)({
|
|
200
202
|
dex: chosenDep.tag,
|
|
@@ -247,24 +249,27 @@ class AlgebraService {
|
|
|
247
249
|
}
|
|
248
250
|
else {
|
|
249
251
|
logger.debug(`AlgebraService fetchQuote fetching price response.`);
|
|
250
|
-
price = await this.fetchPrice(
|
|
251
|
-
...params,
|
|
252
|
-
amountIn: params.amountIn,
|
|
253
|
-
tokenIn,
|
|
254
|
-
tokenOut,
|
|
255
|
-
networkIn,
|
|
256
|
-
networkOut,
|
|
257
|
-
slippage,
|
|
258
|
-
});
|
|
252
|
+
price = await this.fetchPrice(params);
|
|
259
253
|
}
|
|
260
254
|
const proto = price.protocolResponse;
|
|
261
255
|
// Normalize for execution (wrap/unwrap decisions)
|
|
262
256
|
const { tokenInNorm, tokenOutNorm, expectNativeIn, expectNativeOut } = this._normalizeTokensForExec(chainId, tokenIn, tokenOut);
|
|
257
|
+
const overrides = params.overrideParamsAlgebra;
|
|
258
|
+
const overridePairCandidate = overrides?.pairCandidate;
|
|
259
|
+
const overrideAmountOutMin = overridePairCandidate?.amountOutMin;
|
|
263
260
|
// Slippage → minAmountOut
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
261
|
+
let minOut = undefined;
|
|
262
|
+
if (overrideAmountOutMin) {
|
|
263
|
+
// Already has slippage applied
|
|
264
|
+
minOut = overrideAmountOutMin;
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
// calculate minOut from price.amountOut and slippage
|
|
268
|
+
minOut = (0, min_amount_out_1.calculateMinAmountOut)({
|
|
269
|
+
amountOut: price.amountOut,
|
|
270
|
+
slippage: Number(slippage ?? 0),
|
|
271
|
+
});
|
|
272
|
+
}
|
|
268
273
|
// Build router calldata (exactInput with Algebra path)
|
|
269
274
|
const deployments = this.deployments[chainId] ?? [];
|
|
270
275
|
const dep = deployments.find(d => d.router.toLowerCase() === proto.router.toLowerCase() &&
|
|
@@ -274,8 +279,9 @@ class AlgebraService {
|
|
|
274
279
|
}
|
|
275
280
|
logger.debug(`AlgebraService building swap calldata.`);
|
|
276
281
|
const deadline = BigInt(Math.floor(Date.now() / 1000) + 30 * 60);
|
|
277
|
-
const
|
|
278
|
-
const
|
|
282
|
+
const deployerForPath = this._deployerForPath(dep, (0, viem_1.getAddress)(proto.deployer));
|
|
283
|
+
const singleHop = [{ tokenIn: tokenInNorm, deployer: deployerForPath, tokenOut: tokenOutNorm }];
|
|
284
|
+
const path = this._buildAlgebraPath(singleHop, dep.tag);
|
|
279
285
|
// exactInput params
|
|
280
286
|
const paramsExactInput = {
|
|
281
287
|
path,
|
|
@@ -351,7 +357,7 @@ class AlgebraService {
|
|
|
351
357
|
}
|
|
352
358
|
// ===== Internals =====
|
|
353
359
|
_buildFastRoutePriceResponse(params) {
|
|
354
|
-
const { tokenIn, tokenOut, networkIn, networkOut, amountIn, slippage, overridePair,
|
|
360
|
+
const { tokenIn, tokenOut, networkIn, networkOut, amountIn, slippage, overridePair, overrideExpectedAmountOut, overrideDeployer, } = params;
|
|
355
361
|
logger.debug(`AlgebraService fetchPrice called with override params.`);
|
|
356
362
|
// Resolve which deployment the pair belongs to, and the deployer needed to build Algebra path.
|
|
357
363
|
const ovrDeployer = (0, viem_1.getAddress)(overrideDeployer);
|
|
@@ -366,14 +372,15 @@ class AlgebraService {
|
|
|
366
372
|
deployer: (0, viem_1.getAddress)(ovrDeployer),
|
|
367
373
|
};
|
|
368
374
|
const dep = deployments[resolved.deploymentIndex];
|
|
369
|
-
const
|
|
375
|
+
const deployerForPath = this._deployerForPath(dep, ovrDeployer);
|
|
376
|
+
const path = this._buildAlgebraPath([{ tokenIn, deployer: deployerForPath, tokenOut }], dep.tag);
|
|
370
377
|
const proto = {
|
|
371
378
|
deploymentKey: (0, dex_deployment_key_1.dexDeploymentKey)({ dex: dep.tag, router: dep.router, network: networkIn }),
|
|
372
379
|
router: (0, viem_1.getAddress)(dep.router),
|
|
373
380
|
factory: (0, viem_1.getAddress)(dep.factory),
|
|
374
381
|
pool: (0, viem_1.getAddress)(overridePair),
|
|
375
382
|
deployer: (0, viem_1.getAddress)(resolved.deployer),
|
|
376
|
-
expectedAmountOut:
|
|
383
|
+
expectedAmountOut: overrideExpectedAmountOut, // treat as expected for price fast-path
|
|
377
384
|
sqrtPriceX96After: undefined,
|
|
378
385
|
initializedTicksCrossed: undefined,
|
|
379
386
|
gasEstimate: undefined,
|
|
@@ -386,7 +393,7 @@ class AlgebraService {
|
|
|
386
393
|
tokenIn,
|
|
387
394
|
tokenOut,
|
|
388
395
|
amountIn: amountIn,
|
|
389
|
-
amountOut:
|
|
396
|
+
amountOut: overrideExpectedAmountOut, // mirrors expectedAmountOut
|
|
390
397
|
slippage,
|
|
391
398
|
protocolResponse: proto,
|
|
392
399
|
};
|
|
@@ -420,15 +427,29 @@ class AlgebraService {
|
|
|
420
427
|
}
|
|
421
428
|
return { tokenInNorm, tokenOutNorm, expectNativeIn, expectNativeOut, wrapped };
|
|
422
429
|
}
|
|
423
|
-
_buildAlgebraPath(hops) {
|
|
424
|
-
|
|
425
|
-
|
|
430
|
+
_buildAlgebraPath(hops, dex) {
|
|
431
|
+
const firstHop = hops[0];
|
|
432
|
+
if (!firstHop) {
|
|
433
|
+
throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'No hops provided to build Algebra path.');
|
|
434
|
+
}
|
|
426
435
|
const reversed = [...hops].reverse();
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
436
|
+
let segs = undefined;
|
|
437
|
+
if (dex === algebra_types_1.AlgebraDexTagEnum.BLACKHOLE) {
|
|
438
|
+
segs = reversed.map(({ tokenIn, deployer, tokenOut }) => (0, viem_1.concatHex)([
|
|
439
|
+
(0, viem_1.padHex)((0, viem_1.getAddress)(tokenIn), { size: 20 }),
|
|
440
|
+
(0, viem_1.padHex)((0, viem_1.getAddress)(deployer), { size: 20 }),
|
|
441
|
+
(0, viem_1.padHex)((0, viem_1.getAddress)(tokenOut), { size: 20 }),
|
|
442
|
+
]));
|
|
443
|
+
}
|
|
444
|
+
else {
|
|
445
|
+
segs = reversed.map(({ tokenIn, tokenOut }) => (0, viem_1.concatHex)([
|
|
446
|
+
(0, viem_1.padHex)((0, viem_1.getAddress)(tokenIn), { size: 20 }),
|
|
447
|
+
(0, viem_1.padHex)((0, viem_1.getAddress)(tokenOut), { size: 20 }),
|
|
448
|
+
]));
|
|
449
|
+
}
|
|
450
|
+
if (!segs) {
|
|
451
|
+
throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'Failed to build Algebra path segments.');
|
|
452
|
+
}
|
|
432
453
|
return segs.reduce((a, b) => (0, viem_1.concatHex)([a, b]));
|
|
433
454
|
}
|
|
434
455
|
async _discoverPoolsAcrossDeployments(params) {
|
|
@@ -528,6 +549,18 @@ class AlgebraService {
|
|
|
528
549
|
logger.info(`AlgebraService discovered ${found.length} pools across deployments.`);
|
|
529
550
|
return found;
|
|
530
551
|
}
|
|
552
|
+
_deployerForPath(dep, deployer, kind) {
|
|
553
|
+
if (dep.tag !== algebra_types_1.AlgebraDexTagEnum.BLACKHOLE)
|
|
554
|
+
return deployer;
|
|
555
|
+
if (kind === 'default')
|
|
556
|
+
return constants_1.ZERO_ADDRESS;
|
|
557
|
+
if (kind === 'custom')
|
|
558
|
+
return deployer;
|
|
559
|
+
const def = dep.defaultDeployer ? (0, viem_1.getAddress)(dep.defaultDeployer) : undefined;
|
|
560
|
+
if (def && def.toLowerCase() === (0, viem_1.getAddress)(deployer).toLowerCase())
|
|
561
|
+
return constants_1.ZERO_ADDRESS;
|
|
562
|
+
return deployer;
|
|
563
|
+
}
|
|
531
564
|
}
|
|
532
565
|
exports.AlgebraService = AlgebraService;
|
|
533
566
|
//# sourceMappingURL=algebra.service.js.map
|