@sentio/sdk 2.3.6-rc.1 → 2.4.0-rc.1
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/lib/aptos/tests/aptos.test.js.map +1 -1
- package/lib/eth/account-processor.d.ts +2 -2
- package/lib/eth/account-processor.js +2 -2
- package/lib/eth/account-processor.js.map +1 -1
- package/lib/eth/builtin/eacaggregatorproxy.d.ts +2 -2
- package/lib/eth/builtin/eacaggregatorproxy.js +2 -2
- package/lib/eth/builtin/eacaggregatorproxy.js.map +1 -1
- package/lib/eth/builtin/erc1155.d.ts +2 -2
- package/lib/eth/builtin/erc1155.js +2 -2
- package/lib/eth/builtin/erc1155.js.map +1 -1
- package/lib/eth/builtin/erc20.d.ts +2 -2
- package/lib/eth/builtin/erc20.js +2 -2
- package/lib/eth/builtin/erc20.js.map +1 -1
- package/lib/eth/builtin/erc20bytes.d.ts +2 -2
- package/lib/eth/builtin/erc20bytes.js +2 -2
- package/lib/eth/builtin/erc20bytes.js.map +1 -1
- package/lib/eth/builtin/erc721.d.ts +2 -2
- package/lib/eth/builtin/erc721.js +2 -2
- package/lib/eth/builtin/erc721.js.map +1 -1
- package/lib/eth/builtin/internal/{eacaggregatorproxy_processor.d.ts → eacaggregatorproxy-processor.d.ts} +0 -0
- package/lib/eth/builtin/internal/{eacaggregatorproxy_processor.js → eacaggregatorproxy-processor.js} +1 -1
- package/lib/eth/builtin/internal/{eacaggregatorproxy_processor.js.map → eacaggregatorproxy-processor.js.map} +1 -1
- package/lib/eth/builtin/internal/{eacaggregatorproxy_test-utils.d.ts → eacaggregatorproxy-test-utils.d.ts} +0 -0
- package/lib/eth/builtin/internal/{eacaggregatorproxy_test-utils.js → eacaggregatorproxy-test-utils.js} +2 -2
- package/lib/eth/builtin/internal/{eacaggregatorproxy_test-utils.js.map → eacaggregatorproxy-test-utils.js.map} +1 -1
- package/lib/eth/builtin/internal/{erc1155_processor.d.ts → erc1155-processor.d.ts} +0 -0
- package/lib/eth/builtin/internal/{erc1155_processor.js → erc1155-processor.js} +1 -1
- package/lib/eth/builtin/internal/{erc1155_processor.js.map → erc1155-processor.js.map} +1 -1
- package/lib/eth/builtin/internal/{erc1155_test-utils.d.ts → erc1155-test-utils.d.ts} +0 -0
- package/lib/eth/builtin/internal/{erc1155_test-utils.js → erc1155-test-utils.js} +2 -2
- package/lib/eth/builtin/internal/{erc1155_test-utils.js.map → erc1155-test-utils.js.map} +1 -1
- package/lib/eth/builtin/internal/{erc20_processor.d.ts → erc20-processor.d.ts} +0 -0
- package/lib/eth/builtin/internal/{erc20_processor.js → erc20-processor.js} +1 -1
- package/lib/eth/builtin/internal/{erc20_processor.js.map → erc20-processor.js.map} +1 -1
- package/lib/eth/builtin/internal/{erc20_test-utils.d.ts → erc20-test-utils.d.ts} +0 -0
- package/lib/eth/builtin/internal/{erc20_test-utils.js → erc20-test-utils.js} +2 -2
- package/lib/eth/builtin/internal/{erc20_test-utils.js.map → erc20-test-utils.js.map} +1 -1
- package/lib/eth/builtin/internal/{erc20bytes_processor.d.ts → erc20bytes-processor.d.ts} +0 -0
- package/lib/eth/builtin/internal/{erc20bytes_processor.js → erc20bytes-processor.js} +1 -1
- package/lib/eth/builtin/internal/{erc20bytes_processor.js.map → erc20bytes-processor.js.map} +1 -1
- package/lib/eth/builtin/internal/{erc20bytes_test-utils.d.ts → erc20bytes-test-utils.d.ts} +0 -0
- package/lib/eth/builtin/internal/{erc20bytes_test-utils.js → erc20bytes-test-utils.js} +2 -2
- package/lib/eth/builtin/internal/{erc20bytes_test-utils.js.map → erc20bytes-test-utils.js.map} +1 -1
- package/lib/eth/builtin/internal/{erc721_processor.d.ts → erc721-processor.d.ts} +0 -0
- package/lib/eth/builtin/internal/{erc721_processor.js → erc721-processor.js} +1 -1
- package/lib/eth/builtin/internal/{erc721_processor.js.map → erc721-processor.js.map} +1 -1
- package/lib/eth/builtin/internal/{erc721_test-utils.d.ts → erc721-test-utils.d.ts} +0 -0
- package/lib/eth/builtin/internal/{erc721_test-utils.js → erc721-test-utils.js} +2 -2
- package/lib/eth/builtin/internal/{erc721_test-utils.js.map → erc721-test-utils.js.map} +1 -1
- package/lib/eth/builtin/internal/{weth9_processor.d.ts → weth9-processor.d.ts} +0 -0
- package/lib/eth/builtin/internal/{weth9_processor.js → weth9-processor.js} +1 -1
- package/lib/eth/builtin/internal/{weth9_processor.js.map → weth9-processor.js.map} +1 -1
- package/lib/eth/builtin/internal/{weth9_test-utils.d.ts → weth9-test-utils.d.ts} +0 -0
- package/lib/eth/builtin/internal/{weth9_test-utils.js → weth9-test-utils.js} +2 -2
- package/lib/eth/builtin/internal/{weth9_test-utils.js.map → weth9-test-utils.js.map} +1 -1
- package/lib/eth/builtin/weth9.d.ts +2 -2
- package/lib/eth/builtin/weth9.js +2 -2
- package/lib/eth/builtin/weth9.js.map +1 -1
- package/lib/eth/codegen/ethers-sentio.js +2 -2
- package/lib/eth/codegen/ethers-sentio.js.map +1 -1
- package/lib/eth/codegen/file.js +3 -3
- package/lib/eth/codegen/file.js.map +1 -1
- package/lib/eth/generic-processor.test.js.map +1 -1
- package/lib/eth/tests/account.test.d.ts +1 -0
- package/lib/eth/tests/account.test.js.map +1 -0
- package/lib/eth/tests/codegen.test.d.ts +1 -0
- package/lib/eth/tests/codegen.test.js.map +1 -0
- package/lib/eth/tests/erc20-template.test.d.ts +1 -0
- package/lib/eth/tests/erc20-template.test.js.map +1 -0
- package/lib/eth/tests/erc20.d.ts +1 -0
- package/lib/eth/tests/erc20.js +52 -0
- package/lib/eth/tests/erc20.js.map +1 -0
- package/lib/eth/tests/erc20.test.d.ts +1 -0
- package/lib/eth/tests/erc20.test.js.map +1 -0
- package/lib/eth/tests/error-capture.test.d.ts +1 -0
- package/lib/eth/tests/error-capture.test.js.map +1 -0
- package/lib/eth/tests/logger.test.d.ts +1 -0
- package/lib/eth/tests/logger.test.js.map +1 -0
- package/lib/eth/tests/types/anyswaprouter.d.ts +3 -0
- package/lib/eth/tests/types/anyswaprouter.js +7 -0
- package/lib/eth/tests/types/anyswaprouter.js.map +1 -0
- package/lib/eth/tests/types/commitmentpool.d.ts +3 -0
- package/lib/eth/tests/types/commitmentpool.js +7 -0
- package/lib/eth/tests/types/commitmentpool.js.map +1 -0
- package/lib/eth/tests/types/index.d.ts +12 -0
- package/lib/eth/tests/types/index.js +16 -0
- package/lib/eth/tests/types/index.js.map +1 -0
- package/lib/eth/tests/types/internal/AnyswapRouter.d.ts +122 -0
- package/lib/eth/tests/types/internal/AnyswapRouter.js +2 -0
- package/lib/eth/tests/types/internal/AnyswapRouter.js.map +1 -0
- package/lib/eth/tests/types/internal/CommitmentPool.d.ts +176 -0
- package/lib/eth/tests/types/internal/CommitmentPool.js +2 -0
- package/lib/eth/tests/types/internal/CommitmentPool.js.map +1 -0
- package/lib/eth/tests/types/internal/MembershipStakerV3.d.ts +81 -0
- package/lib/eth/tests/types/internal/MembershipStakerV3.js +2 -0
- package/lib/eth/tests/types/internal/MembershipStakerV3.js.map +1 -0
- package/lib/eth/tests/types/internal/Pyth.d.ts +204 -0
- package/lib/eth/tests/types/internal/Pyth.js +2 -0
- package/lib/eth/tests/types/internal/Pyth.js.map +1 -0
- package/lib/eth/tests/types/internal/Seaport.d.ts +350 -0
- package/lib/eth/tests/types/internal/Seaport.js +2 -0
- package/lib/eth/tests/types/internal/Seaport.js.map +1 -0
- package/lib/eth/tests/types/internal/TokenExchange.d.ts +128 -0
- package/lib/eth/tests/types/internal/TokenExchange.js +2 -0
- package/lib/eth/tests/types/internal/TokenExchange.js.map +1 -0
- package/lib/eth/tests/types/internal/anyswaprouter-processor.d.ts +463 -0
- package/lib/eth/tests/types/internal/anyswaprouter-processor.js +425 -0
- package/lib/eth/tests/types/internal/anyswaprouter-processor.js.map +1 -0
- package/lib/eth/tests/types/internal/anyswaprouter-test-utils.d.ts +9 -0
- package/lib/eth/tests/types/internal/anyswaprouter-test-utils.js +124 -0
- package/lib/eth/tests/types/internal/anyswaprouter-test-utils.js.map +1 -0
- package/lib/eth/tests/types/internal/commitmentpool-processor.d.ts +348 -0
- package/lib/eth/tests/types/internal/commitmentpool-processor.js +607 -0
- package/lib/eth/tests/types/internal/commitmentpool-processor.js.map +1 -0
- package/lib/eth/tests/types/internal/commitmentpool-test-utils.d.ts +9 -0
- package/lib/eth/tests/types/internal/commitmentpool-test-utils.js +87 -0
- package/lib/eth/tests/types/internal/commitmentpool-test-utils.js.map +1 -0
- package/lib/eth/tests/types/internal/common.d.ts +10 -0
- package/lib/eth/tests/types/internal/common.js +8 -0
- package/lib/eth/tests/types/internal/common.js.map +1 -0
- package/lib/eth/tests/types/internal/factories/AnyswapRouter__factory.d.ts +988 -0
- package/lib/eth/tests/types/internal/factories/AnyswapRouter__factory.js +1269 -0
- package/lib/eth/tests/types/internal/factories/AnyswapRouter__factory.js.map +1 -0
- package/lib/eth/tests/types/internal/factories/CommitmentPool__factory.d.ts +792 -0
- package/lib/eth/tests/types/internal/factories/CommitmentPool__factory.js +1040 -0
- package/lib/eth/tests/types/internal/factories/CommitmentPool__factory.js.map +1 -0
- package/lib/eth/tests/types/internal/factories/MembershipStakerV3__factory.d.ts +549 -0
- package/lib/eth/tests/types/internal/factories/MembershipStakerV3__factory.js +721 -0
- package/lib/eth/tests/types/internal/factories/MembershipStakerV3__factory.js.map +1 -0
- package/lib/eth/tests/types/internal/factories/Pyth__factory.d.ts +1130 -0
- package/lib/eth/tests/types/internal/factories/Pyth__factory.js +1486 -0
- package/lib/eth/tests/types/internal/factories/Pyth__factory.js.map +1 -0
- package/lib/eth/tests/types/internal/factories/Seaport__factory.d.ts +2018 -0
- package/lib/eth/tests/types/internal/factories/Seaport__factory.js +2610 -0
- package/lib/eth/tests/types/internal/factories/Seaport__factory.js.map +1 -0
- package/lib/eth/tests/types/internal/factories/TokenExchange__factory.d.ts +651 -0
- package/lib/eth/tests/types/internal/factories/TokenExchange__factory.js +853 -0
- package/lib/eth/tests/types/internal/factories/TokenExchange__factory.js.map +1 -0
- package/lib/eth/tests/types/internal/factories/index.d.ts +6 -0
- package/lib/eth/tests/types/internal/factories/index.js +10 -0
- package/lib/eth/tests/types/internal/factories/index.js.map +1 -0
- package/lib/eth/tests/types/internal/index.d.ts +13 -0
- package/lib/eth/tests/types/internal/index.js +8 -0
- package/lib/eth/tests/types/internal/index.js.map +1 -0
- package/lib/eth/tests/types/internal/membershipstakerv3-processor.d.ts +287 -0
- package/lib/eth/tests/types/internal/membershipstakerv3-processor.js +596 -0
- package/lib/eth/tests/types/internal/membershipstakerv3-processor.js.map +1 -0
- package/lib/eth/tests/types/internal/membershipstakerv3-test-utils.d.ts +11 -0
- package/lib/eth/tests/types/internal/membershipstakerv3-test-utils.js +109 -0
- package/lib/eth/tests/types/internal/membershipstakerv3-test-utils.js.map +1 -0
- package/lib/eth/tests/types/internal/pyth-processor.d.ts +422 -0
- package/lib/eth/tests/types/internal/pyth-processor.js +890 -0
- package/lib/eth/tests/types/internal/pyth-processor.js.map +1 -0
- package/lib/eth/tests/types/internal/pyth-test-utils.d.ts +13 -0
- package/lib/eth/tests/types/internal/pyth-test-utils.js +131 -0
- package/lib/eth/tests/types/internal/pyth-test-utils.js.map +1 -0
- package/lib/eth/tests/types/internal/seaport-processor.d.ts +211 -0
- package/lib/eth/tests/types/internal/seaport-processor.js +237 -0
- package/lib/eth/tests/types/internal/seaport-processor.js.map +1 -0
- package/lib/eth/tests/types/internal/seaport-test-utils.d.ts +6 -0
- package/lib/eth/tests/types/internal/seaport-test-utils.js +61 -0
- package/lib/eth/tests/types/internal/seaport-test-utils.js.map +1 -0
- package/lib/eth/tests/types/internal/tokenexchange-processor.d.ts +334 -0
- package/lib/eth/tests/types/internal/tokenexchange-processor.js +667 -0
- package/lib/eth/tests/types/internal/tokenexchange-processor.js.map +1 -0
- package/lib/eth/tests/types/internal/tokenexchange-test-utils.d.ts +13 -0
- package/lib/eth/tests/types/internal/tokenexchange-test-utils.js +149 -0
- package/lib/eth/tests/types/internal/tokenexchange-test-utils.js.map +1 -0
- package/lib/eth/tests/types/membershipstakerv3.d.ts +3 -0
- package/lib/eth/tests/types/membershipstakerv3.js +7 -0
- package/lib/eth/tests/types/membershipstakerv3.js.map +1 -0
- package/lib/eth/tests/types/pyth.d.ts +3 -0
- package/lib/eth/tests/types/pyth.js +7 -0
- package/lib/eth/tests/types/pyth.js.map +1 -0
- package/lib/eth/tests/types/seaport.d.ts +3 -0
- package/lib/eth/tests/types/seaport.js +7 -0
- package/lib/eth/tests/types/seaport.js.map +1 -0
- package/lib/eth/tests/types/tokenexchange.d.ts +3 -0
- package/lib/eth/tests/types/tokenexchange.js +7 -0
- package/lib/eth/tests/types/tokenexchange.js.map +1 -0
- package/lib/solana/builtin/types.d.ts +8 -8
- package/lib/solana/tests/solana.test.js.map +1 -1
- package/lib/sui/sui-processor.js +2 -8
- package/lib/sui/sui-processor.js.map +1 -1
- package/lib/sui/tests/sui.test.js.map +1 -1
- package/lib/sui/utils.d.ts +2 -0
- package/lib/sui/utils.js +11 -0
- package/lib/sui/utils.js.map +1 -0
- package/lib/testing/aptos-facet.d.ts +12 -0
- package/lib/testing/aptos-facet.js +91 -0
- package/lib/testing/aptos-facet.js.map +1 -0
- package/lib/testing/eth-facet.d.ts +27 -0
- package/lib/testing/eth-facet.js +211 -0
- package/lib/testing/eth-facet.js.map +1 -0
- package/lib/testing/solana-facet.d.ts +7 -0
- package/lib/testing/solana-facet.js +22 -0
- package/lib/testing/solana-facet.js.map +1 -0
- package/lib/testing/sui-facet.d.ts +12 -0
- package/lib/testing/sui-facet.js +103 -0
- package/lib/testing/sui-facet.js.map +1 -0
- package/lib/testing/test-processor-server.d.ts +9 -23
- package/lib/testing/test-processor-server.js +13 -227
- package/lib/testing/test-processor-server.js.map +1 -1
- package/lib/utils/dex-price.js +1 -1
- package/lib/utils/dex-price.js.map +1 -1
- package/lib/utils/token.js +1 -1
- package/lib/utils/token.js.map +1 -1
- package/package.json +5 -5
- package/src/eth/account-processor.ts +2 -5
- package/src/eth/builtin/eacaggregatorproxy.ts +2 -2
- package/src/eth/builtin/erc1155.ts +2 -2
- package/src/eth/builtin/erc20.ts +2 -2
- package/src/eth/builtin/erc20bytes.ts +2 -2
- package/src/eth/builtin/erc721.ts +2 -2
- package/src/eth/builtin/internal/{eacaggregatorproxy_processor.ts → eacaggregatorproxy-processor.ts} +0 -0
- package/src/eth/builtin/internal/{eacaggregatorproxy_test-utils.ts → eacaggregatorproxy-test-utils.ts} +1 -1
- package/src/eth/builtin/internal/{erc1155_processor.ts → erc1155-processor.ts} +0 -0
- package/src/eth/builtin/internal/{erc1155_test-utils.ts → erc1155-test-utils.ts} +1 -1
- package/src/eth/builtin/internal/{erc20_processor.ts → erc20-processor.ts} +0 -0
- package/src/eth/builtin/internal/{erc20_test-utils.ts → erc20-test-utils.ts} +1 -1
- package/src/eth/builtin/internal/{erc20bytes_processor.ts → erc20bytes-processor.ts} +0 -0
- package/src/eth/builtin/internal/{erc20bytes_test-utils.ts → erc20bytes-test-utils.ts} +1 -1
- package/src/eth/builtin/internal/{erc721_processor.ts → erc721-processor.ts} +0 -0
- package/src/eth/builtin/internal/{erc721_test-utils.ts → erc721-test-utils.ts} +1 -1
- package/src/eth/builtin/internal/{weth9_processor.ts → weth9-processor.ts} +0 -0
- package/src/eth/builtin/internal/{weth9_test-utils.ts → weth9-test-utils.ts} +1 -1
- package/src/eth/builtin/weth9.ts +2 -2
- package/src/eth/codegen/ethers-sentio.ts +2 -2
- package/src/eth/codegen/file.ts +3 -3
- package/src/eth/tests/abis/eth/CommitmentPool.json +1034 -0
- package/src/eth/tests/abis/eth/MembershipStakerV3.json +706 -0
- package/src/eth/tests/abis/eth/Pyth.json +1471 -0
- package/src/eth/tests/abis/eth/Seaport.json +2595 -0
- package/src/eth/tests/abis/eth/TokenExchange.json +838 -0
- package/src/eth/tests/abis/eth/anyswapRouter.json +490 -0
- package/src/eth/tests/erc20.ts +63 -0
- package/src/eth/tests/types/anyswaprouter.ts +7 -0
- package/src/eth/tests/types/commitmentpool.ts +7 -0
- package/src/eth/tests/types/index.ts +33 -0
- package/src/eth/tests/types/internal/AnyswapRouter.ts +122 -0
- package/src/eth/tests/types/internal/CommitmentPool.ts +208 -0
- package/src/eth/tests/types/internal/MembershipStakerV3.ts +108 -0
- package/src/eth/tests/types/internal/Pyth.ts +246 -0
- package/src/eth/tests/types/internal/Seaport.ts +389 -0
- package/src/eth/tests/types/internal/TokenExchange.ts +142 -0
- package/src/eth/tests/types/internal/anyswaprouter-processor.ts +1396 -0
- package/src/eth/tests/types/internal/anyswaprouter-test-utils.ts +187 -0
- package/src/eth/tests/types/internal/commitmentpool-processor.ts +1575 -0
- package/src/eth/tests/types/internal/commitmentpool-test-utils.ts +150 -0
- package/src/eth/tests/types/internal/common.ts +23 -0
- package/src/eth/tests/types/internal/factories/AnyswapRouter__factory.ts +1278 -0
- package/src/eth/tests/types/internal/factories/CommitmentPool__factory.ts +1049 -0
- package/src/eth/tests/types/internal/factories/MembershipStakerV3__factory.ts +730 -0
- package/src/eth/tests/types/internal/factories/Pyth__factory.ts +1492 -0
- package/src/eth/tests/types/internal/factories/Seaport__factory.ts +2616 -0
- package/src/eth/tests/types/internal/factories/TokenExchange__factory.ts +862 -0
- package/src/eth/tests/types/internal/factories/index.ts +9 -0
- package/src/eth/tests/types/internal/index.ts +16 -0
- package/src/eth/tests/types/internal/membershipstakerv3-processor.ts +1399 -0
- package/src/eth/tests/types/internal/membershipstakerv3-test-utils.ts +188 -0
- package/src/eth/tests/types/internal/pyth-processor.ts +2043 -0
- package/src/eth/tests/types/internal/pyth-test-utils.ts +226 -0
- package/src/eth/tests/types/internal/seaport-processor.ts +678 -0
- package/src/eth/tests/types/internal/seaport-test-utils.ts +100 -0
- package/src/eth/tests/types/internal/tokenexchange-processor.ts +1570 -0
- package/src/eth/tests/types/internal/tokenexchange-test-utils.ts +244 -0
- package/src/eth/tests/types/membershipstakerv3.ts +7 -0
- package/src/eth/tests/types/pyth.ts +7 -0
- package/src/eth/tests/types/seaport.ts +7 -0
- package/src/eth/tests/types/tokenexchange.ts +7 -0
- package/src/sui/sui-processor.ts +2 -7
- package/src/sui/utils.ts +11 -0
- package/src/testing/aptos-facet.ts +111 -0
- package/src/testing/eth-facet.ts +233 -0
- package/src/testing/solana-facet.ts +25 -0
- package/src/testing/sui-facet.ts +119 -0
- package/src/testing/test-processor-server.ts +15 -252
- package/src/utils/dex-price.ts +1 -1
- package/src/utils/token.ts +1 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenexchange-processor.js","sourceRoot":"","sources":["../../../../../src/eth/tests/types/internal/tokenexchange-processor.ts"],"names":[],"mappings":"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","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nimport { BigNumberish, Overrides } from \"ethers\";\nimport { Networkish } from \"ethers/providers\";\nimport {\n addContractByABI,\n getContractByABI,\n addProcessor,\n getProcessor,\n getProvider,\n transformEtherError,\n Trace,\n BindOptions,\n BaseProcessor,\n BaseProcessorTemplate,\n BoundContractView,\n ContractContext,\n ContractView,\n DummyProvider,\n TypedCallTrace,\n toBlockTag,\n} from \"@sentio/sdk/eth\";\nimport { EthFetchConfig } from \"@sentio/protos\";\n\nimport { TokenExchange, TokenExchange__factory } from \"./index.js\";\nimport {\n TokenExchangeEvent,\n TokenExchangeEventFilter,\n AddLiquidityEvent,\n AddLiquidityEventFilter,\n RemoveLiquidityEvent,\n RemoveLiquidityEventFilter,\n RemoveLiquidityOneEvent,\n RemoveLiquidityOneEventFilter,\n RemoveLiquidityImbalanceEvent,\n RemoveLiquidityImbalanceEventFilter,\n CommitNewAdminEvent,\n CommitNewAdminEventFilter,\n NewAdminEvent,\n NewAdminEventFilter,\n CommitNewFeeEvent,\n CommitNewFeeEventFilter,\n NewFeeEvent,\n NewFeeEventFilter,\n RampAEvent,\n RampAEventFilter,\n StopRampAEvent,\n StopRampAEventFilter,\n} from \"./TokenExchange.js\";\n\nexport interface ACallObject {}\n\nexport type ACallTrace = TypedCallTrace<[], ACallObject> & Trace;\n\nexport interface Get_virtual_priceCallObject {}\n\nexport type Get_virtual_priceCallTrace = TypedCallTrace<\n [],\n Get_virtual_priceCallObject\n> &\n Trace;\n\nexport interface Calc_token_amountCallObject {\n amounts: [bigint, bigint, bigint];\n deposit: boolean;\n}\n\nexport type Calc_token_amountCallTrace = TypedCallTrace<\n [[bigint, bigint, bigint], boolean],\n Calc_token_amountCallObject\n> &\n Trace;\n\nexport interface Add_liquidityCallObject {\n amounts: [bigint, bigint, bigint];\n min_mint_amount: bigint;\n}\n\nexport type Add_liquidityCallTrace = TypedCallTrace<\n [[bigint, bigint, bigint], bigint],\n Add_liquidityCallObject\n> &\n Trace;\n\nexport interface Get_dyCallObject {\n i: bigint;\n j: bigint;\n dx: bigint;\n}\n\nexport type Get_dyCallTrace = TypedCallTrace<\n [bigint, bigint, bigint],\n Get_dyCallObject\n> &\n Trace;\n\nexport interface Get_dy_underlyingCallObject {\n i: bigint;\n j: bigint;\n dx: bigint;\n}\n\nexport type Get_dy_underlyingCallTrace = TypedCallTrace<\n [bigint, bigint, bigint],\n Get_dy_underlyingCallObject\n> &\n Trace;\n\nexport interface ExchangeCallObject {\n i: bigint;\n j: bigint;\n dx: bigint;\n min_dy: bigint;\n}\n\nexport type ExchangeCallTrace = TypedCallTrace<\n [bigint, bigint, bigint, bigint],\n ExchangeCallObject\n> &\n Trace;\n\nexport interface Remove_liquidityCallObject {\n _amount: bigint;\n min_amounts: [bigint, bigint, bigint];\n}\n\nexport type Remove_liquidityCallTrace = TypedCallTrace<\n [bigint, [bigint, bigint, bigint]],\n Remove_liquidityCallObject\n> &\n Trace;\n\nexport interface Remove_liquidity_imbalanceCallObject {\n amounts: [bigint, bigint, bigint];\n max_burn_amount: bigint;\n}\n\nexport type Remove_liquidity_imbalanceCallTrace = TypedCallTrace<\n [[bigint, bigint, bigint], bigint],\n Remove_liquidity_imbalanceCallObject\n> &\n Trace;\n\nexport interface Calc_withdraw_one_coinCallObject {\n _token_amount: bigint;\n i: bigint;\n}\n\nexport type Calc_withdraw_one_coinCallTrace = TypedCallTrace<\n [bigint, bigint],\n Calc_withdraw_one_coinCallObject\n> &\n Trace;\n\nexport interface Remove_liquidity_one_coinCallObject {\n _token_amount: bigint;\n i: bigint;\n min_amount: bigint;\n}\n\nexport type Remove_liquidity_one_coinCallTrace = TypedCallTrace<\n [bigint, bigint, bigint],\n Remove_liquidity_one_coinCallObject\n> &\n Trace;\n\nexport interface Ramp_ACallObject {\n _future_A: bigint;\n _future_time: bigint;\n}\n\nexport type Ramp_ACallTrace = TypedCallTrace<\n [bigint, bigint],\n Ramp_ACallObject\n> &\n Trace;\n\nexport interface Stop_ramp_ACallObject {}\n\nexport type Stop_ramp_ACallTrace = TypedCallTrace<[], Stop_ramp_ACallObject> &\n Trace;\n\nexport interface Commit_new_feeCallObject {\n new_fee: bigint;\n new_admin_fee: bigint;\n}\n\nexport type Commit_new_feeCallTrace = TypedCallTrace<\n [bigint, bigint],\n Commit_new_feeCallObject\n> &\n Trace;\n\nexport interface Apply_new_feeCallObject {}\n\nexport type Apply_new_feeCallTrace = TypedCallTrace<\n [],\n Apply_new_feeCallObject\n> &\n Trace;\n\nexport interface Revert_new_parametersCallObject {}\n\nexport type Revert_new_parametersCallTrace = TypedCallTrace<\n [],\n Revert_new_parametersCallObject\n> &\n Trace;\n\nexport interface Commit_transfer_ownershipCallObject {\n _owner: string;\n}\n\nexport type Commit_transfer_ownershipCallTrace = TypedCallTrace<\n [string],\n Commit_transfer_ownershipCallObject\n> &\n Trace;\n\nexport interface Apply_transfer_ownershipCallObject {}\n\nexport type Apply_transfer_ownershipCallTrace = TypedCallTrace<\n [],\n Apply_transfer_ownershipCallObject\n> &\n Trace;\n\nexport interface Revert_transfer_ownershipCallObject {}\n\nexport type Revert_transfer_ownershipCallTrace = TypedCallTrace<\n [],\n Revert_transfer_ownershipCallObject\n> &\n Trace;\n\nexport interface Admin_balancesCallObject {\n i: bigint;\n}\n\nexport type Admin_balancesCallTrace = TypedCallTrace<\n [bigint],\n Admin_balancesCallObject\n> &\n Trace;\n\nexport interface Withdraw_admin_feesCallObject {}\n\nexport type Withdraw_admin_feesCallTrace = TypedCallTrace<\n [],\n Withdraw_admin_feesCallObject\n> &\n Trace;\n\nexport interface Donate_admin_feesCallObject {}\n\nexport type Donate_admin_feesCallTrace = TypedCallTrace<\n [],\n Donate_admin_feesCallObject\n> &\n Trace;\n\nexport interface Kill_meCallObject {}\n\nexport type Kill_meCallTrace = TypedCallTrace<[], Kill_meCallObject> & Trace;\n\nexport interface Unkill_meCallObject {}\n\nexport type Unkill_meCallTrace = TypedCallTrace<[], Unkill_meCallObject> &\n Trace;\n\nexport interface CoinsCallObject {\n arg0: bigint;\n}\n\nexport type CoinsCallTrace = TypedCallTrace<[bigint], CoinsCallObject> & Trace;\n\nexport interface BalancesCallObject {\n arg0: bigint;\n}\n\nexport type BalancesCallTrace = TypedCallTrace<[bigint], BalancesCallObject> &\n Trace;\n\nexport interface FeeCallObject {}\n\nexport type FeeCallTrace = TypedCallTrace<[], FeeCallObject> & Trace;\n\nexport interface Admin_feeCallObject {}\n\nexport type Admin_feeCallTrace = TypedCallTrace<[], Admin_feeCallObject> &\n Trace;\n\nexport interface OwnerCallObject {}\n\nexport type OwnerCallTrace = TypedCallTrace<[], OwnerCallObject> & Trace;\n\nexport interface Initial_ACallObject {}\n\nexport type Initial_ACallTrace = TypedCallTrace<[], Initial_ACallObject> &\n Trace;\n\nexport interface Future_ACallObject {}\n\nexport type Future_ACallTrace = TypedCallTrace<[], Future_ACallObject> & Trace;\n\nexport interface Initial_A_timeCallObject {}\n\nexport type Initial_A_timeCallTrace = TypedCallTrace<\n [],\n Initial_A_timeCallObject\n> &\n Trace;\n\nexport interface Future_A_timeCallObject {}\n\nexport type Future_A_timeCallTrace = TypedCallTrace<\n [],\n Future_A_timeCallObject\n> &\n Trace;\n\nexport interface Admin_actions_deadlineCallObject {}\n\nexport type Admin_actions_deadlineCallTrace = TypedCallTrace<\n [],\n Admin_actions_deadlineCallObject\n> &\n Trace;\n\nexport interface Transfer_ownership_deadlineCallObject {}\n\nexport type Transfer_ownership_deadlineCallTrace = TypedCallTrace<\n [],\n Transfer_ownership_deadlineCallObject\n> &\n Trace;\n\nexport interface Future_feeCallObject {}\n\nexport type Future_feeCallTrace = TypedCallTrace<[], Future_feeCallObject> &\n Trace;\n\nexport interface Future_admin_feeCallObject {}\n\nexport type Future_admin_feeCallTrace = TypedCallTrace<\n [],\n Future_admin_feeCallObject\n> &\n Trace;\n\nexport interface Future_ownerCallObject {}\n\nexport type Future_ownerCallTrace = TypedCallTrace<[], Future_ownerCallObject> &\n Trace;\n\nconst templateContract = TokenExchange__factory.connect(\"0x0\", DummyProvider);\n\nexport class TokenExchangeContractView extends ContractView<TokenExchange> {\n constructor(contract: TokenExchange) {\n super(contract);\n }\n\n async A(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"A()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async get_virtual_price(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"get_virtual_price()\")(\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async calc_token_amount(\n amounts: [BigNumberish, BigNumberish, BigNumberish],\n deposit: boolean,\n overrides?: Overrides\n ): Promise<bigint> {\n try {\n return await this.contract.getFunction(\n \"calc_token_amount(uint256[],bool)\"\n )(amounts, deposit, overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async get_dy(\n i: BigNumberish,\n j: BigNumberish,\n dx: BigNumberish,\n overrides?: Overrides\n ): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"get_dy(int128,int128,uint256)\")(\n i,\n j,\n dx,\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async get_dy_underlying(\n i: BigNumberish,\n j: BigNumberish,\n dx: BigNumberish,\n overrides?: Overrides\n ): Promise<bigint> {\n try {\n return await this.contract.getFunction(\n \"get_dy_underlying(int128,int128,uint256)\"\n )(i, j, dx, overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async calc_withdraw_one_coin(\n _token_amount: BigNumberish,\n i: BigNumberish,\n overrides?: Overrides\n ): Promise<bigint> {\n try {\n return await this.contract.getFunction(\n \"calc_withdraw_one_coin(uint256,int128)\"\n )(_token_amount, i, overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async admin_balances(\n i: BigNumberish,\n overrides?: Overrides\n ): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"admin_balances(uint256)\")(\n i,\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async coins(arg0: BigNumberish, overrides?: Overrides): Promise<string> {\n try {\n return await this.contract.getFunction(\"coins(uint256)\")(\n arg0,\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async balances(arg0: BigNumberish, overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"balances(uint256)\")(\n arg0,\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async fee(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"fee()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async admin_fee(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"admin_fee()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async owner(overrides?: Overrides): Promise<string> {\n try {\n return await this.contract.getFunction(\"owner()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async initial_A(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"initial_A()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async future_A(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"future_A()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async initial_A_time(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"initial_A_time()\")(\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async future_A_time(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"future_A_time()\")(\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async admin_actions_deadline(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"admin_actions_deadline()\")(\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async transfer_ownership_deadline(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"transfer_ownership_deadline()\")(\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async future_fee(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"future_fee()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async future_admin_fee(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"future_admin_fee()\")(\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async future_owner(overrides?: Overrides): Promise<string> {\n try {\n return await this.contract.getFunction(\"future_owner()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n}\n\nexport class TokenExchangeBoundContractView extends BoundContractView<\n TokenExchange,\n TokenExchangeContractView\n> {\n async A(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.A(overrides || {});\n }\n\n async get_virtual_price(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.get_virtual_price(overrides || {});\n }\n\n async calc_token_amount(\n amounts: [BigNumberish, BigNumberish, BigNumberish],\n deposit: boolean,\n overrides?: Overrides\n ): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.calc_token_amount(amounts, deposit, overrides || {});\n }\n\n async get_dy(\n i: BigNumberish,\n j: BigNumberish,\n dx: BigNumberish,\n overrides?: Overrides\n ): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.get_dy(i, j, dx, overrides || {});\n }\n\n async get_dy_underlying(\n i: BigNumberish,\n j: BigNumberish,\n dx: BigNumberish,\n overrides?: Overrides\n ): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.get_dy_underlying(i, j, dx, overrides || {});\n }\n\n async calc_withdraw_one_coin(\n _token_amount: BigNumberish,\n i: BigNumberish,\n overrides?: Overrides\n ): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.calc_withdraw_one_coin(\n _token_amount,\n i,\n overrides || {}\n );\n }\n\n async admin_balances(\n i: BigNumberish,\n overrides?: Overrides\n ): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.admin_balances(i, overrides || {});\n }\n\n async coins(arg0: BigNumberish, overrides?: Overrides): Promise<string> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.coins(arg0, overrides || {});\n }\n\n async balances(arg0: BigNumberish, overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.balances(arg0, overrides || {});\n }\n\n async fee(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.fee(overrides || {});\n }\n\n async admin_fee(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.admin_fee(overrides || {});\n }\n\n async owner(overrides?: Overrides): Promise<string> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.owner(overrides || {});\n }\n\n async initial_A(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.initial_A(overrides || {});\n }\n\n async future_A(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.future_A(overrides || {});\n }\n\n async initial_A_time(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.initial_A_time(overrides || {});\n }\n\n async future_A_time(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.future_A_time(overrides || {});\n }\n\n async admin_actions_deadline(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.admin_actions_deadline(overrides || {});\n }\n\n async transfer_ownership_deadline(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.transfer_ownership_deadline(overrides || {});\n }\n\n async future_fee(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.future_fee(overrides || {});\n }\n\n async future_admin_fee(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.future_admin_fee(overrides || {});\n }\n\n async future_owner(overrides?: Overrides): Promise<string> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.future_owner(overrides || {});\n }\n}\n\nexport type TokenExchangeContext = ContractContext<\n TokenExchange,\n TokenExchangeBoundContractView\n>;\n\nexport class TokenExchangeProcessor extends BaseProcessor<\n TokenExchange,\n TokenExchangeBoundContractView\n> {\n onEventTokenExchange(\n handler: (event: TokenExchangeEvent, ctx: TokenExchangeContext) => void,\n filter?: TokenExchangeEventFilter | TokenExchangeEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"TokenExchange(address,int128,uint256,int128,uint256)\"\n ](null, null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventAddLiquidity(\n handler: (event: AddLiquidityEvent, ctx: TokenExchangeContext) => void,\n filter?: AddLiquidityEventFilter | AddLiquidityEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"AddLiquidity(address,uint256[],uint256[],uint256,uint256)\"\n ](null, null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventRemoveLiquidity(\n handler: (event: RemoveLiquidityEvent, ctx: TokenExchangeContext) => void,\n filter?: RemoveLiquidityEventFilter | RemoveLiquidityEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"RemoveLiquidity(address,uint256[],uint256[],uint256)\"\n ](null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventRemoveLiquidityOne(\n handler: (\n event: RemoveLiquidityOneEvent,\n ctx: TokenExchangeContext\n ) => void,\n filter?: RemoveLiquidityOneEventFilter | RemoveLiquidityOneEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"RemoveLiquidityOne(address,uint256,uint256)\"\n ](null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventRemoveLiquidityImbalance(\n handler: (\n event: RemoveLiquidityImbalanceEvent,\n ctx: TokenExchangeContext\n ) => void,\n filter?:\n | RemoveLiquidityImbalanceEventFilter\n | RemoveLiquidityImbalanceEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"RemoveLiquidityImbalance(address,uint256[],uint256[],uint256,uint256)\"\n ](null, null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventCommitNewAdmin(\n handler: (event: CommitNewAdminEvent, ctx: TokenExchangeContext) => void,\n filter?: CommitNewAdminEventFilter | CommitNewAdminEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"CommitNewAdmin(uint256,address)\"](\n null,\n null\n );\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventNewAdmin(\n handler: (event: NewAdminEvent, ctx: TokenExchangeContext) => void,\n filter?: NewAdminEventFilter | NewAdminEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"NewAdmin(address)\"](null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventCommitNewFee(\n handler: (event: CommitNewFeeEvent, ctx: TokenExchangeContext) => void,\n filter?: CommitNewFeeEventFilter | CommitNewFeeEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"CommitNewFee(uint256,uint256,uint256)\"\n ](null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventNewFee(\n handler: (event: NewFeeEvent, ctx: TokenExchangeContext) => void,\n filter?: NewFeeEventFilter | NewFeeEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"NewFee(uint256,uint256)\"](null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventRampA(\n handler: (event: RampAEvent, ctx: TokenExchangeContext) => void,\n filter?: RampAEventFilter | RampAEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"RampA(uint256,uint256,uint256,uint256)\"\n ](null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventStopRampA(\n handler: (event: StopRampAEvent, ctx: TokenExchangeContext) => void,\n filter?: StopRampAEventFilter | StopRampAEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"StopRampA(uint256,uint256)\"](\n null,\n null\n );\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onCallA(\n handler: (call: ACallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xf446c1d0\", handler, fetchConfig);\n }\n\n onCallGet_virtual_price(\n handler: (\n call: Get_virtual_priceCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xbb7b8b80\", handler, fetchConfig);\n }\n\n onCallCalc_token_amount(\n handler: (\n call: Calc_token_amountCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x3883e119\", handler, fetchConfig);\n }\n\n onCallAdd_liquidity(\n handler: (call: Add_liquidityCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x4515cef3\", handler, fetchConfig);\n }\n\n onCallGet_dy(\n handler: (call: Get_dyCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x5e0d443f\", handler, fetchConfig);\n }\n\n onCallGet_dy_underlying(\n handler: (\n call: Get_dy_underlyingCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x07211ef7\", handler, fetchConfig);\n }\n\n onCallExchange(\n handler: (call: ExchangeCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x3df02124\", handler, fetchConfig);\n }\n\n onCallRemove_liquidity(\n handler: (\n call: Remove_liquidityCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xecb586a5\", handler, fetchConfig);\n }\n\n onCallRemove_liquidity_imbalance(\n handler: (\n call: Remove_liquidity_imbalanceCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x9fdaea0c\", handler, fetchConfig);\n }\n\n onCallCalc_withdraw_one_coin(\n handler: (\n call: Calc_withdraw_one_coinCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xcc2b27d7\", handler, fetchConfig);\n }\n\n onCallRemove_liquidity_one_coin(\n handler: (\n call: Remove_liquidity_one_coinCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x1a4d01d2\", handler, fetchConfig);\n }\n\n onCallRamp_A(\n handler: (call: Ramp_ACallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x3c157e64\", handler, fetchConfig);\n }\n\n onCallStop_ramp_A(\n handler: (call: Stop_ramp_ACallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x551a6588\", handler, fetchConfig);\n }\n\n onCallCommit_new_fee(\n handler: (call: Commit_new_feeCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x5b5a1467\", handler, fetchConfig);\n }\n\n onCallApply_new_fee(\n handler: (call: Apply_new_feeCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x4f12fe97\", handler, fetchConfig);\n }\n\n onCallRevert_new_parameters(\n handler: (\n call: Revert_new_parametersCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x226840fb\", handler, fetchConfig);\n }\n\n onCallCommit_transfer_ownership(\n handler: (\n call: Commit_transfer_ownershipCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x6b441a40\", handler, fetchConfig);\n }\n\n onCallApply_transfer_ownership(\n handler: (\n call: Apply_transfer_ownershipCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x6a1c05ae\", handler, fetchConfig);\n }\n\n onCallRevert_transfer_ownership(\n handler: (\n call: Revert_transfer_ownershipCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x86fbf193\", handler, fetchConfig);\n }\n\n onCallAdmin_balances(\n handler: (call: Admin_balancesCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xe2e7d264\", handler, fetchConfig);\n }\n\n onCallWithdraw_admin_fees(\n handler: (\n call: Withdraw_admin_feesCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x30c54085\", handler, fetchConfig);\n }\n\n onCallDonate_admin_fees(\n handler: (\n call: Donate_admin_feesCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x524c3901\", handler, fetchConfig);\n }\n\n onCallKill_me(\n handler: (call: Kill_meCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xe3698853\", handler, fetchConfig);\n }\n\n onCallUnkill_me(\n handler: (call: Unkill_meCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x3046f972\", handler, fetchConfig);\n }\n\n onCallCoins(\n handler: (call: CoinsCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xc6610657\", handler, fetchConfig);\n }\n\n onCallBalances(\n handler: (call: BalancesCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x4903b0d1\", handler, fetchConfig);\n }\n\n onCallFee(\n handler: (call: FeeCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xddca3f43\", handler, fetchConfig);\n }\n\n onCallAdmin_fee(\n handler: (call: Admin_feeCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xfee3f7f9\", handler, fetchConfig);\n }\n\n onCallOwner(\n handler: (call: OwnerCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x8da5cb5b\", handler, fetchConfig);\n }\n\n onCallInitial_A(\n handler: (call: Initial_ACallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x5409491a\", handler, fetchConfig);\n }\n\n onCallFuture_A(\n handler: (call: Future_ACallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xb4b577ad\", handler, fetchConfig);\n }\n\n onCallInitial_A_time(\n handler: (call: Initial_A_timeCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x2081066c\", handler, fetchConfig);\n }\n\n onCallFuture_A_time(\n handler: (call: Future_A_timeCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x14052288\", handler, fetchConfig);\n }\n\n onCallAdmin_actions_deadline(\n handler: (\n call: Admin_actions_deadlineCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x405e28f8\", handler, fetchConfig);\n }\n\n onCallTransfer_ownership_deadline(\n handler: (\n call: Transfer_ownership_deadlineCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xe0a0b586\", handler, fetchConfig);\n }\n\n onCallFuture_fee(\n handler: (call: Future_feeCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x58680d0b\", handler, fetchConfig);\n }\n\n onCallFuture_admin_fee(\n handler: (\n call: Future_admin_feeCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xe3824462\", handler, fetchConfig);\n }\n\n onCallFuture_owner(\n handler: (call: Future_ownerCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x1ec0cdc1\", handler, fetchConfig);\n }\n\n public static filters = {\n TokenExchange(\n buyer?: string | null,\n sold_id?: null,\n tokens_sold?: null,\n bought_id?: null,\n tokens_bought?: null\n ) {\n return templateContract.filters[\n \"TokenExchange(address,int128,uint256,int128,uint256)\"\n ](buyer, sold_id, tokens_sold, bought_id, tokens_bought);\n },\n AddLiquidity(\n provider?: string | null,\n token_amounts?: null,\n fees?: null,\n invariant?: null,\n token_supply?: null\n ) {\n return templateContract.filters[\n \"AddLiquidity(address,uint256[],uint256[],uint256,uint256)\"\n ](provider, token_amounts, fees, invariant, token_supply);\n },\n RemoveLiquidity(\n provider?: string | null,\n token_amounts?: null,\n fees?: null,\n token_supply?: null\n ) {\n return templateContract.filters[\n \"RemoveLiquidity(address,uint256[],uint256[],uint256)\"\n ](provider, token_amounts, fees, token_supply);\n },\n RemoveLiquidityOne(\n provider?: string | null,\n token_amount?: null,\n coin_amount?: null\n ) {\n return templateContract.filters[\n \"RemoveLiquidityOne(address,uint256,uint256)\"\n ](provider, token_amount, coin_amount);\n },\n RemoveLiquidityImbalance(\n provider?: string | null,\n token_amounts?: null,\n fees?: null,\n invariant?: null,\n token_supply?: null\n ) {\n return templateContract.filters[\n \"RemoveLiquidityImbalance(address,uint256[],uint256[],uint256,uint256)\"\n ](provider, token_amounts, fees, invariant, token_supply);\n },\n CommitNewAdmin(deadline?: BigNumberish | null, admin?: string | null) {\n return templateContract.filters[\"CommitNewAdmin(uint256,address)\"](\n deadline,\n admin\n );\n },\n NewAdmin(admin?: string | null) {\n return templateContract.filters[\"NewAdmin(address)\"](admin);\n },\n CommitNewFee(deadline?: BigNumberish | null, fee?: null, admin_fee?: null) {\n return templateContract.filters[\"CommitNewFee(uint256,uint256,uint256)\"](\n deadline,\n fee,\n admin_fee\n );\n },\n NewFee(fee?: null, admin_fee?: null) {\n return templateContract.filters[\"NewFee(uint256,uint256)\"](\n fee,\n admin_fee\n );\n },\n RampA(old_A?: null, new_A?: null, initial_time?: null, future_time?: null) {\n return templateContract.filters[\"RampA(uint256,uint256,uint256,uint256)\"](\n old_A,\n new_A,\n initial_time,\n future_time\n );\n },\n StopRampA(A?: null, t?: null) {\n return templateContract.filters[\"StopRampA(uint256,uint256)\"](A, t);\n },\n };\n\n protected CreateBoundContractView(): TokenExchangeBoundContractView {\n const view = getTokenExchangeContract(\n this.config.address,\n this.config.network\n );\n return new TokenExchangeBoundContractView(this.config.address, view);\n }\n\n public static bind(options: BindOptions): TokenExchangeProcessor {\n if (!options.name) {\n options.name = \"TokenExchange\";\n }\n let processor = getProcessor(options) as TokenExchangeProcessor;\n if (!processor) {\n processor = new TokenExchangeProcessor(options);\n addProcessor(options, processor);\n }\n return processor;\n }\n}\n\nexport class TokenExchangeProcessorTemplate extends BaseProcessorTemplate<\n TokenExchange,\n TokenExchangeBoundContractView\n> {\n bindInternal(options: BindOptions) {\n if (!options.name) {\n options.name = \"TokenExchange\";\n }\n let processor = getProcessor(options) as TokenExchangeProcessor;\n if (!processor) {\n processor = new TokenExchangeProcessor(options);\n addProcessor(options, processor);\n }\n return processor;\n }\n\n onEventTokenExchange(\n handler: (event: TokenExchangeEvent, ctx: TokenExchangeContext) => void,\n filter?: TokenExchangeEventFilter | TokenExchangeEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"TokenExchange(address,int128,uint256,int128,uint256)\"\n ](null, null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventAddLiquidity(\n handler: (event: AddLiquidityEvent, ctx: TokenExchangeContext) => void,\n filter?: AddLiquidityEventFilter | AddLiquidityEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"AddLiquidity(address,uint256[],uint256[],uint256,uint256)\"\n ](null, null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventRemoveLiquidity(\n handler: (event: RemoveLiquidityEvent, ctx: TokenExchangeContext) => void,\n filter?: RemoveLiquidityEventFilter | RemoveLiquidityEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"RemoveLiquidity(address,uint256[],uint256[],uint256)\"\n ](null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventRemoveLiquidityOne(\n handler: (\n event: RemoveLiquidityOneEvent,\n ctx: TokenExchangeContext\n ) => void,\n filter?: RemoveLiquidityOneEventFilter | RemoveLiquidityOneEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"RemoveLiquidityOne(address,uint256,uint256)\"\n ](null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventRemoveLiquidityImbalance(\n handler: (\n event: RemoveLiquidityImbalanceEvent,\n ctx: TokenExchangeContext\n ) => void,\n filter?:\n | RemoveLiquidityImbalanceEventFilter\n | RemoveLiquidityImbalanceEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"RemoveLiquidityImbalance(address,uint256[],uint256[],uint256,uint256)\"\n ](null, null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventCommitNewAdmin(\n handler: (event: CommitNewAdminEvent, ctx: TokenExchangeContext) => void,\n filter?: CommitNewAdminEventFilter | CommitNewAdminEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"CommitNewAdmin(uint256,address)\"](\n null,\n null\n );\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventNewAdmin(\n handler: (event: NewAdminEvent, ctx: TokenExchangeContext) => void,\n filter?: NewAdminEventFilter | NewAdminEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"NewAdmin(address)\"](null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventCommitNewFee(\n handler: (event: CommitNewFeeEvent, ctx: TokenExchangeContext) => void,\n filter?: CommitNewFeeEventFilter | CommitNewFeeEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"CommitNewFee(uint256,uint256,uint256)\"\n ](null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventNewFee(\n handler: (event: NewFeeEvent, ctx: TokenExchangeContext) => void,\n filter?: NewFeeEventFilter | NewFeeEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"NewFee(uint256,uint256)\"](null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventRampA(\n handler: (event: RampAEvent, ctx: TokenExchangeContext) => void,\n filter?: RampAEventFilter | RampAEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"RampA(uint256,uint256,uint256,uint256)\"\n ](null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventStopRampA(\n handler: (event: StopRampAEvent, ctx: TokenExchangeContext) => void,\n filter?: StopRampAEventFilter | StopRampAEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"StopRampA(uint256,uint256)\"](\n null,\n null\n );\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n}\n\nexport function getTokenExchangeContract(\n address: string,\n network: Networkish = 1\n): TokenExchangeContractView {\n let contract = getContractByABI(\n \"TokenExchange\",\n address,\n network\n ) as TokenExchangeContractView;\n if (!contract) {\n const rawContract = TokenExchange__factory.connect(\n address,\n getProvider(network)\n );\n contract = new TokenExchangeContractView(rawContract);\n addContractByABI(\"TokenExchange\", address, network, contract);\n }\n return contract;\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { LogParams } from "ethers/providers";
|
|
2
|
+
import { TokenExchangeEventObject, AddLiquidityEventObject, RemoveLiquidityEventObject, RemoveLiquidityOneEventObject, RemoveLiquidityImbalanceEventObject, CommitNewAdminEventObject, NewAdminEventObject, CommitNewFeeEventObject, NewFeeEventObject, RampAEventObject, StopRampAEventObject } from "./TokenExchange.js";
|
|
3
|
+
export declare function mockTokenExchangeLog(contractAddress: string, event: TokenExchangeEventObject): LogParams;
|
|
4
|
+
export declare function mockAddLiquidityLog(contractAddress: string, event: AddLiquidityEventObject): LogParams;
|
|
5
|
+
export declare function mockRemoveLiquidityLog(contractAddress: string, event: RemoveLiquidityEventObject): LogParams;
|
|
6
|
+
export declare function mockRemoveLiquidityOneLog(contractAddress: string, event: RemoveLiquidityOneEventObject): LogParams;
|
|
7
|
+
export declare function mockRemoveLiquidityImbalanceLog(contractAddress: string, event: RemoveLiquidityImbalanceEventObject): LogParams;
|
|
8
|
+
export declare function mockCommitNewAdminLog(contractAddress: string, event: CommitNewAdminEventObject): LogParams;
|
|
9
|
+
export declare function mockNewAdminLog(contractAddress: string, event: NewAdminEventObject): LogParams;
|
|
10
|
+
export declare function mockCommitNewFeeLog(contractAddress: string, event: CommitNewFeeEventObject): LogParams;
|
|
11
|
+
export declare function mockNewFeeLog(contractAddress: string, event: NewFeeEventObject): LogParams;
|
|
12
|
+
export declare function mockRampALog(contractAddress: string, event: RampAEventObject): LogParams;
|
|
13
|
+
export declare function mockStopRampALog(contractAddress: string, event: StopRampAEventObject): LogParams;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { getTokenExchangeContract } from "./tokenexchange-processor.js";
|
|
2
|
+
const mockField = {
|
|
3
|
+
blockHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
4
|
+
blockNumber: 0,
|
|
5
|
+
logIndex: 0,
|
|
6
|
+
removed: false,
|
|
7
|
+
transactionHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
8
|
+
transactionIndex: 0,
|
|
9
|
+
};
|
|
10
|
+
export function mockTokenExchangeLog(contractAddress, event) {
|
|
11
|
+
const contract = getTokenExchangeContract(contractAddress);
|
|
12
|
+
const encodedLog = contract.rawContract.interface.encodeEventLog("TokenExchange(address,int128,uint256,int128,uint256)", [
|
|
13
|
+
event.buyer,
|
|
14
|
+
event.sold_id,
|
|
15
|
+
event.tokens_sold,
|
|
16
|
+
event.bought_id,
|
|
17
|
+
event.tokens_bought,
|
|
18
|
+
]);
|
|
19
|
+
return {
|
|
20
|
+
...mockField,
|
|
21
|
+
index: 0,
|
|
22
|
+
address: contractAddress,
|
|
23
|
+
data: encodedLog.data,
|
|
24
|
+
topics: encodedLog.topics,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export function mockAddLiquidityLog(contractAddress, event) {
|
|
28
|
+
const contract = getTokenExchangeContract(contractAddress);
|
|
29
|
+
const encodedLog = contract.rawContract.interface.encodeEventLog("AddLiquidity(address,uint256[3],uint256[3],uint256,uint256)", [
|
|
30
|
+
event.provider,
|
|
31
|
+
event.token_amounts,
|
|
32
|
+
event.fees,
|
|
33
|
+
event.invariant,
|
|
34
|
+
event.token_supply,
|
|
35
|
+
]);
|
|
36
|
+
return {
|
|
37
|
+
...mockField,
|
|
38
|
+
index: 0,
|
|
39
|
+
address: contractAddress,
|
|
40
|
+
data: encodedLog.data,
|
|
41
|
+
topics: encodedLog.topics,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export function mockRemoveLiquidityLog(contractAddress, event) {
|
|
45
|
+
const contract = getTokenExchangeContract(contractAddress);
|
|
46
|
+
const encodedLog = contract.rawContract.interface.encodeEventLog("RemoveLiquidity(address,uint256[3],uint256[3],uint256)", [event.provider, event.token_amounts, event.fees, event.token_supply]);
|
|
47
|
+
return {
|
|
48
|
+
...mockField,
|
|
49
|
+
index: 0,
|
|
50
|
+
address: contractAddress,
|
|
51
|
+
data: encodedLog.data,
|
|
52
|
+
topics: encodedLog.topics,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export function mockRemoveLiquidityOneLog(contractAddress, event) {
|
|
56
|
+
const contract = getTokenExchangeContract(contractAddress);
|
|
57
|
+
const encodedLog = contract.rawContract.interface.encodeEventLog("RemoveLiquidityOne(address,uint256,uint256)", [event.provider, event.token_amount, event.coin_amount]);
|
|
58
|
+
return {
|
|
59
|
+
...mockField,
|
|
60
|
+
index: 0,
|
|
61
|
+
address: contractAddress,
|
|
62
|
+
data: encodedLog.data,
|
|
63
|
+
topics: encodedLog.topics,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
export function mockRemoveLiquidityImbalanceLog(contractAddress, event) {
|
|
67
|
+
const contract = getTokenExchangeContract(contractAddress);
|
|
68
|
+
const encodedLog = contract.rawContract.interface.encodeEventLog("RemoveLiquidityImbalance(address,uint256[3],uint256[3],uint256,uint256)", [
|
|
69
|
+
event.provider,
|
|
70
|
+
event.token_amounts,
|
|
71
|
+
event.fees,
|
|
72
|
+
event.invariant,
|
|
73
|
+
event.token_supply,
|
|
74
|
+
]);
|
|
75
|
+
return {
|
|
76
|
+
...mockField,
|
|
77
|
+
index: 0,
|
|
78
|
+
address: contractAddress,
|
|
79
|
+
data: encodedLog.data,
|
|
80
|
+
topics: encodedLog.topics,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
export function mockCommitNewAdminLog(contractAddress, event) {
|
|
84
|
+
const contract = getTokenExchangeContract(contractAddress);
|
|
85
|
+
const encodedLog = contract.rawContract.interface.encodeEventLog("CommitNewAdmin(uint256,address)", [event.deadline, event.admin]);
|
|
86
|
+
return {
|
|
87
|
+
...mockField,
|
|
88
|
+
index: 0,
|
|
89
|
+
address: contractAddress,
|
|
90
|
+
data: encodedLog.data,
|
|
91
|
+
topics: encodedLog.topics,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
export function mockNewAdminLog(contractAddress, event) {
|
|
95
|
+
const contract = getTokenExchangeContract(contractAddress);
|
|
96
|
+
const encodedLog = contract.rawContract.interface.encodeEventLog("NewAdmin(address)", [event.admin]);
|
|
97
|
+
return {
|
|
98
|
+
...mockField,
|
|
99
|
+
index: 0,
|
|
100
|
+
address: contractAddress,
|
|
101
|
+
data: encodedLog.data,
|
|
102
|
+
topics: encodedLog.topics,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
export function mockCommitNewFeeLog(contractAddress, event) {
|
|
106
|
+
const contract = getTokenExchangeContract(contractAddress);
|
|
107
|
+
const encodedLog = contract.rawContract.interface.encodeEventLog("CommitNewFee(uint256,uint256,uint256)", [event.deadline, event.fee, event.admin_fee]);
|
|
108
|
+
return {
|
|
109
|
+
...mockField,
|
|
110
|
+
index: 0,
|
|
111
|
+
address: contractAddress,
|
|
112
|
+
data: encodedLog.data,
|
|
113
|
+
topics: encodedLog.topics,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
export function mockNewFeeLog(contractAddress, event) {
|
|
117
|
+
const contract = getTokenExchangeContract(contractAddress);
|
|
118
|
+
const encodedLog = contract.rawContract.interface.encodeEventLog("NewFee(uint256,uint256)", [event.fee, event.admin_fee]);
|
|
119
|
+
return {
|
|
120
|
+
...mockField,
|
|
121
|
+
index: 0,
|
|
122
|
+
address: contractAddress,
|
|
123
|
+
data: encodedLog.data,
|
|
124
|
+
topics: encodedLog.topics,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
export function mockRampALog(contractAddress, event) {
|
|
128
|
+
const contract = getTokenExchangeContract(contractAddress);
|
|
129
|
+
const encodedLog = contract.rawContract.interface.encodeEventLog("RampA(uint256,uint256,uint256,uint256)", [event.old_A, event.new_A, event.initial_time, event.future_time]);
|
|
130
|
+
return {
|
|
131
|
+
...mockField,
|
|
132
|
+
index: 0,
|
|
133
|
+
address: contractAddress,
|
|
134
|
+
data: encodedLog.data,
|
|
135
|
+
topics: encodedLog.topics,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
export function mockStopRampALog(contractAddress, event) {
|
|
139
|
+
const contract = getTokenExchangeContract(contractAddress);
|
|
140
|
+
const encodedLog = contract.rawContract.interface.encodeEventLog("StopRampA(uint256,uint256)", [event.A, event.t]);
|
|
141
|
+
return {
|
|
142
|
+
...mockField,
|
|
143
|
+
index: 0,
|
|
144
|
+
address: contractAddress,
|
|
145
|
+
data: encodedLog.data,
|
|
146
|
+
topics: encodedLog.topics,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=tokenexchange-test-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenexchange-test-utils.js","sourceRoot":"","sources":["../../../../../src/eth/tests/types/internal/tokenexchange-test-utils.ts"],"names":[],"mappings":"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","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nimport { LogParams } from \"ethers/providers\";\nimport {\n TokenExchangeEventObject,\n AddLiquidityEventObject,\n RemoveLiquidityEventObject,\n RemoveLiquidityOneEventObject,\n RemoveLiquidityImbalanceEventObject,\n CommitNewAdminEventObject,\n NewAdminEventObject,\n CommitNewFeeEventObject,\n NewFeeEventObject,\n RampAEventObject,\n StopRampAEventObject,\n} from \"./TokenExchange.js\";\nimport { getTokenExchangeContract } from \"./tokenexchange-processor.js\";\nconst mockField = {\n blockHash:\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n blockNumber: 0,\n logIndex: 0,\n removed: false,\n transactionHash:\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n transactionIndex: 0,\n};\n\nexport function mockTokenExchangeLog(\n contractAddress: string,\n event: TokenExchangeEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"TokenExchange(address,int128,uint256,int128,uint256)\",\n [\n event.buyer,\n event.sold_id,\n event.tokens_sold,\n event.bought_id,\n event.tokens_bought,\n ]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockAddLiquidityLog(\n contractAddress: string,\n event: AddLiquidityEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"AddLiquidity(address,uint256[3],uint256[3],uint256,uint256)\",\n [\n event.provider,\n event.token_amounts,\n event.fees,\n event.invariant,\n event.token_supply,\n ]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockRemoveLiquidityLog(\n contractAddress: string,\n event: RemoveLiquidityEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"RemoveLiquidity(address,uint256[3],uint256[3],uint256)\",\n [event.provider, event.token_amounts, event.fees, event.token_supply]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockRemoveLiquidityOneLog(\n contractAddress: string,\n event: RemoveLiquidityOneEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"RemoveLiquidityOne(address,uint256,uint256)\",\n [event.provider, event.token_amount, event.coin_amount]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockRemoveLiquidityImbalanceLog(\n contractAddress: string,\n event: RemoveLiquidityImbalanceEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"RemoveLiquidityImbalance(address,uint256[3],uint256[3],uint256,uint256)\",\n [\n event.provider,\n event.token_amounts,\n event.fees,\n event.invariant,\n event.token_supply,\n ]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockCommitNewAdminLog(\n contractAddress: string,\n event: CommitNewAdminEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"CommitNewAdmin(uint256,address)\",\n [event.deadline, event.admin]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockNewAdminLog(\n contractAddress: string,\n event: NewAdminEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"NewAdmin(address)\",\n [event.admin]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockCommitNewFeeLog(\n contractAddress: string,\n event: CommitNewFeeEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"CommitNewFee(uint256,uint256,uint256)\",\n [event.deadline, event.fee, event.admin_fee]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockNewFeeLog(\n contractAddress: string,\n event: NewFeeEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"NewFee(uint256,uint256)\",\n [event.fee, event.admin_fee]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockRampALog(\n contractAddress: string,\n event: RampAEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"RampA(uint256,uint256,uint256,uint256)\",\n [event.old_A, event.new_A, event.initial_time, event.future_time]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockStopRampALog(\n contractAddress: string,\n event: StopRampAEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"StopRampA(uint256,uint256)\",\n [event.A, event.t]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/* Autogenerated file. Do not edit manually. */
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
export * from "./internal/membershipstakerv3-processor.js";
|
|
5
|
+
export * from "./internal/MembershipStakerV3.js";
|
|
6
|
+
export * from "./internal/membershipstakerv3-test-utils.js";
|
|
7
|
+
//# sourceMappingURL=membershipstakerv3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"membershipstakerv3.js","sourceRoot":"","sources":["../../../../src/eth/tests/types/membershipstakerv3.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AAEpB,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kCAAkC,CAAC;AACjD,cAAc,6CAA6C,CAAC","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nexport * from \"./internal/membershipstakerv3-processor.js\";\nexport * from \"./internal/MembershipStakerV3.js\";\nexport * from \"./internal/membershipstakerv3-test-utils.js\";\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pyth.js","sourceRoot":"","sources":["../../../../src/eth/tests/types/pyth.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AAEpB,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nexport * from \"./internal/pyth-processor.js\";\nexport * from \"./internal/Pyth.js\";\nexport * from \"./internal/pyth-test-utils.js\";\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/* Autogenerated file. Do not edit manually. */
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
export * from "./internal/seaport-processor.js";
|
|
5
|
+
export * from "./internal/Seaport.js";
|
|
6
|
+
export * from "./internal/seaport-test-utils.js";
|
|
7
|
+
//# sourceMappingURL=seaport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seaport.js","sourceRoot":"","sources":["../../../../src/eth/tests/types/seaport.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AAEpB,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nexport * from \"./internal/seaport-processor.js\";\nexport * from \"./internal/Seaport.js\";\nexport * from \"./internal/seaport-test-utils.js\";\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/* Autogenerated file. Do not edit manually. */
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
export * from "./internal/tokenexchange-processor.js";
|
|
5
|
+
export * from "./internal/TokenExchange.js";
|
|
6
|
+
export * from "./internal/tokenexchange-test-utils.js";
|
|
7
|
+
//# sourceMappingURL=tokenexchange.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenexchange.js","sourceRoot":"","sources":["../../../../src/eth/tests/types/tokenexchange.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AAEpB,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wCAAwC,CAAC","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nexport * from \"./internal/tokenexchange-processor.js\";\nexport * from \"./internal/TokenExchange.js\";\nexport * from \"./internal/tokenexchange-test-utils.js\";\n"]}
|
|
@@ -32,9 +32,9 @@ declare const InitializeMint: import("superstruct").Struct<{
|
|
|
32
32
|
}>;
|
|
33
33
|
declare const InitializeAccount: import("superstruct").Struct<{
|
|
34
34
|
account: String;
|
|
35
|
+
owner: String;
|
|
35
36
|
mint: String;
|
|
36
37
|
rentSysvar: String;
|
|
37
|
-
owner: String;
|
|
38
38
|
}, {
|
|
39
39
|
account: import("superstruct").Struct<String, null>;
|
|
40
40
|
mint: import("superstruct").Struct<String, null>;
|
|
@@ -43,9 +43,9 @@ declare const InitializeAccount: import("superstruct").Struct<{
|
|
|
43
43
|
}>;
|
|
44
44
|
declare const InitializeAccount2: import("superstruct").Struct<{
|
|
45
45
|
account: String;
|
|
46
|
+
owner: String;
|
|
46
47
|
mint: String;
|
|
47
48
|
rentSysvar: String;
|
|
48
|
-
owner: String;
|
|
49
49
|
}, {
|
|
50
50
|
account: import("superstruct").Struct<String, null>;
|
|
51
51
|
mint: import("superstruct").Struct<String, null>;
|
|
@@ -54,8 +54,8 @@ declare const InitializeAccount2: import("superstruct").Struct<{
|
|
|
54
54
|
}>;
|
|
55
55
|
declare const InitializeAccount3: import("superstruct").Struct<{
|
|
56
56
|
account: String;
|
|
57
|
-
mint: String;
|
|
58
57
|
owner: String;
|
|
58
|
+
mint: String;
|
|
59
59
|
}, {
|
|
60
60
|
account: import("superstruct").Struct<String, null>;
|
|
61
61
|
mint: import("superstruct").Struct<String, null>;
|
|
@@ -93,8 +93,8 @@ declare const Approve: import("superstruct").Struct<{
|
|
|
93
93
|
amount: string | number;
|
|
94
94
|
source: String;
|
|
95
95
|
delegate: String;
|
|
96
|
-
signers?: String[] | undefined;
|
|
97
96
|
owner?: String | undefined;
|
|
97
|
+
signers?: String[] | undefined;
|
|
98
98
|
multisigOwner?: String | undefined;
|
|
99
99
|
}, {
|
|
100
100
|
source: import("superstruct").Struct<String, null>;
|
|
@@ -107,8 +107,8 @@ declare const Approve: import("superstruct").Struct<{
|
|
|
107
107
|
export type Revoke = Infer<typeof Revoke>;
|
|
108
108
|
declare const Revoke: import("superstruct").Struct<{
|
|
109
109
|
source: String;
|
|
110
|
-
signers?: String[] | undefined;
|
|
111
110
|
owner?: String | undefined;
|
|
111
|
+
signers?: String[] | undefined;
|
|
112
112
|
multisigOwner?: String | undefined;
|
|
113
113
|
}, {
|
|
114
114
|
source: import("superstruct").Struct<String, null>;
|
|
@@ -172,8 +172,8 @@ declare const Burn: import("superstruct").Struct<{
|
|
|
172
172
|
declare const CloseAccount: import("superstruct").Struct<{
|
|
173
173
|
account: String;
|
|
174
174
|
destination: String;
|
|
175
|
-
signers?: String[] | undefined;
|
|
176
175
|
owner?: String | undefined;
|
|
176
|
+
signers?: String[] | undefined;
|
|
177
177
|
multisigOwner?: String | undefined;
|
|
178
178
|
}, {
|
|
179
179
|
account: import("superstruct").Struct<String, null>;
|
|
@@ -251,8 +251,8 @@ declare const ApproveChecked: import("superstruct").Struct<{
|
|
|
251
251
|
decimals: number;
|
|
252
252
|
uiAmountString: string;
|
|
253
253
|
};
|
|
254
|
-
signers?: String[] | undefined;
|
|
255
254
|
owner?: String | undefined;
|
|
255
|
+
signers?: String[] | undefined;
|
|
256
256
|
multisigOwner?: String | undefined;
|
|
257
257
|
}, {
|
|
258
258
|
source: import("superstruct").Struct<String, null>;
|
|
@@ -405,8 +405,8 @@ declare const Reallocate: import("superstruct").Struct<{
|
|
|
405
405
|
export type MemoTransferExtension = Infer<typeof MemoTransferExtension>;
|
|
406
406
|
declare const MemoTransferExtension: import("superstruct").Struct<{
|
|
407
407
|
account: String;
|
|
408
|
-
signers?: String[] | undefined;
|
|
409
408
|
owner?: String | undefined;
|
|
409
|
+
signers?: String[] | undefined;
|
|
410
410
|
multisigOwner?: String | undefined;
|
|
411
411
|
}, {
|
|
412
412
|
account: import("superstruct").Struct<String, null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana.test.js","sourceRoot":"","sources":["../../../src/solana/tests/solana.test.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5E,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,KAAK,IAAI,EAAE;QACjD,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAC1C,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,YAAY,GAAG;YACnB;gBACE,eAAe,EAAE,6EAA6E;gBAC9F,IAAI,EAAE,MAAM;gBACZ,gBAAgB,EAAE,6CAA6C;gBAC/D,QAAQ,EAAE,CAAC,MAAM,CAAC;aACnB;YACD;gBACE,eAAe,EAAE,6EAA6E;gBAC9F,IAAI,EAAE,EAAE;gBACR,gBAAgB,EAAE,6CAA6C;gBAC/D,QAAQ,EAAE,CAAC,MAAM,CAAC;aACnB;SACF,CAAA;QAED,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"solana.test.js","sourceRoot":"","sources":["../../../src/solana/tests/solana.test.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO move out of this package\n\nimport { expect } from 'chai'\n\nimport { HandlerType } from '@sentio/sdk'\n\nimport { TestProcessorServer, firstCounterValue } from '@sentio/sdk/testing'\n\ndescribe('Test Solana Example', () => {\n const service = new TestProcessorServer(async () => {\n await import('./wormhole-token-bridge.js')\n })\n\n beforeAll(async () => {\n await service.start({ templateInstances: [] })\n })\n\n test('check configuration ', async () => {\n const config = await service.getConfig({})\n expect(config.contractConfigs).length(2)\n })\n\n test('Check wormhole token bridge instruction dispatch', async () => {\n const instructions = [\n {\n instructionData: '33G5T8yXAQWdH8FX7fTy1mBJ6e4dUKfQWbViSrT7qJjpS8UAA3ftEQx9sNzrkaJm56xtENhDsWf',\n slot: 12345n,\n programAccountId: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',\n accounts: ['worm'],\n },\n {\n instructionData: '33G5T8yXAQWdH8FX7fTy1mBJ6e4dUKfQWbViSrT7qJjpS8UAA3ftEQx9sNzrkaJm56xtENhDsWf',\n slot: 1n,\n programAccountId: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',\n accounts: ['worm'],\n },\n ]\n\n const res = await service.solana.testInstructions(instructions)\n expect(res.result?.counters).length(4)\n expect(res.result?.gauges).length(0)\n expect(res.result?.counters[0].metadata?.blockNumber).equal(12345n)\n expect(firstCounterValue(res.result, 'total_transfer_amount')).equal(1000000n)\n expect(firstCounterValue(res.result, 'worm')).equal(1000000n)\n expect(res.result?.counters[0].runtimeInfo?.from).equals(HandlerType.SOL_INSTRUCTION)\n })\n\n test('Check SPLToken parsed instruction dispatch', async () => {\n const parsedIns = {\n info: {\n account: '2SDN4vEJdCdW3pGyhx2km9gB3LeHzMGLrG2j4uVNZfrx',\n amount: '12000000000000',\n mint: '7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs',\n mintAuthority: 'BCD75RNBHrJJpW4dXVagL5mPjzRLnVZq4YirJdjEYMV7',\n },\n type: 'mintTo',\n }\n const instructions = [\n {\n instructionData: '',\n slot: 0n,\n programAccountId: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',\n parsed: parsedIns,\n accounts: [],\n },\n ]\n const res = await service.solana.testInstructions(instructions)\n expect(res.result?.counters).length(1)\n expect(res.result?.gauges).length(0)\n expect(res.result?.counters[0].metadata?.blockNumber).equal(0n)\n expect(firstCounterValue(res.result, 'totalWeth_supply')?.toString()).equal('12000000000000')\n expect(res.result?.counters[0].runtimeInfo?.from).equals(HandlerType.SOL_INSTRUCTION)\n })\n})\n"]}
|
package/lib/sui/sui-processor.js
CHANGED
|
@@ -3,7 +3,7 @@ import { ListStateStorage } from '@sentio/runtime';
|
|
|
3
3
|
import { SuiNetwork, getChainId } from './network.js';
|
|
4
4
|
import { ServerError, Status } from 'nice-grpc';
|
|
5
5
|
import { SuiContext } from './context.js';
|
|
6
|
-
import {
|
|
6
|
+
import { getMoveCalls } from './utils.js';
|
|
7
7
|
class IndexConfigure {
|
|
8
8
|
address;
|
|
9
9
|
network;
|
|
@@ -88,13 +88,7 @@ export class SuiBaseProcessor {
|
|
|
88
88
|
const tx = data.transaction;
|
|
89
89
|
const ctx = new SuiContext(processor.moduleName, processor.config.network, processor.config.address, data.timestamp || new Date(0), data.slot, tx);
|
|
90
90
|
if (tx) {
|
|
91
|
-
const calls =
|
|
92
|
-
const call = getMoveCallTransaction(tx);
|
|
93
|
-
if (call) {
|
|
94
|
-
return [call];
|
|
95
|
-
}
|
|
96
|
-
return [];
|
|
97
|
-
});
|
|
91
|
+
const calls = getMoveCalls(tx);
|
|
98
92
|
if (calls.length !== 1) {
|
|
99
93
|
throw new ServerError(Status.INVALID_ARGUMENT, 'Unexpected number of call transactions ' + calls.length);
|
|
100
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sui-processor.js","sourceRoot":"","sources":["../../src/sui/sui-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"sui-processor.js","sourceRoot":"","sources":["../../src/sui/sui-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Data_SuiCall, Data_SuiEvent, MoveFetchConfig } from '@sentio/protos'\nimport { ListStateStorage } from '@sentio/runtime'\nimport { SuiNetwork, getChainId } from './network.js'\nimport { ServerError, Status } from 'nice-grpc'\nimport { SuiContext } from './context.js'\nimport { MoveEvent, SuiTransactionResponse, getMoveCallTransaction, MoveCall } from '@mysten/sui.js'\nimport { CallHandler, EventFilter, EventHandler, FunctionNameAndCallFilter } from '../move/index.js'\nimport { getMoveCalls } from './utils.js'\n\nclass IndexConfigure {\n address: string\n network: SuiNetwork\n startTimestamp: number\n}\n\nexport class SuiBindOptions {\n address: string\n network?: SuiNetwork\n startTimestamp?: number\n}\n\nexport class SuiProcessorState extends ListStateStorage<SuiBaseProcessor> {\n static INSTANCE = new SuiProcessorState()\n}\n\nexport class SuiBaseProcessor {\n readonly moduleName: string\n config: IndexConfigure\n\n eventHandlers: EventHandler<Data_SuiEvent>[] = []\n callHandlers: CallHandler<Data_SuiCall>[] = []\n\n constructor(name: string, options: SuiBindOptions) {\n this.config = configure(options)\n SuiProcessorState.INSTANCE.addValue(this)\n }\n\n getChainId(): string {\n return getChainId(this.config.network)\n }\n\n public onMoveEvent(\n handler: (event: MoveEvent, ctx: SuiContext) => void,\n filter: EventFilter | EventFilter[],\n fetchConfig?: MoveFetchConfig\n ): SuiBaseProcessor {\n let _filters: EventFilter[] = []\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n\n const processor = this\n\n this.eventHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'event is null')\n }\n const txn = data.transaction as SuiTransactionResponse\n if (!txn.effects.events || !txn.effects.events.length) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'no event in the transactions')\n }\n\n const ctx = new SuiContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n data.timestamp || new Date(0),\n data.slot,\n txn\n )\n\n const events = txn.effects.events\n txn.effects.events = []\n for (const evt of events) {\n if ('moveEvent' in evt) {\n const eventInstance = evt.moveEvent as MoveEvent\n const decoded = eventInstance // TODO\n // const decoded = MOVE_CODER.decodeEvent<any>(eventInstance)\n await handler(decoded || eventInstance, ctx)\n }\n }\n\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n\n public onEntryFunctionCall(\n handler: (call: MoveCall, ctx: SuiContext) => void,\n filter: FunctionNameAndCallFilter | FunctionNameAndCallFilter[],\n fetchConfig?: MoveFetchConfig\n ): SuiBaseProcessor {\n let _filters: FunctionNameAndCallFilter[] = []\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n const processor = this\n\n this.callHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')\n }\n const tx = data.transaction as SuiTransactionResponse\n\n const ctx = new SuiContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n data.timestamp || new Date(0),\n data.slot,\n tx\n )\n if (tx) {\n const calls: MoveCall[] = getMoveCalls(tx)\n if (calls.length !== 1) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'Unexpected number of call transactions ' + calls.length)\n }\n const payload = calls[0]\n const decoded = payload // MOVE_CODER.decodeFunctionPayload(payload)\n await handler(decoded, ctx)\n }\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n}\n\nfunction configure(options: SuiBindOptions): IndexConfigure {\n return {\n startTimestamp: options.startTimestamp || 0,\n address: options.address,\n network: options.network || SuiNetwork.MAIN_NET,\n }\n}\n"]}
|