@sentio/sdk 2.0.0-rc.19 → 2.0.0-rc.20
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/codegen/codegen.d.ts +1 -3
- package/lib/aptos/codegen/codegen.js +12 -16
- package/lib/aptos/codegen/codegen.js.map +1 -1
- package/lib/aptos/network.js +1 -1
- package/lib/aptos/network.js.map +1 -1
- package/lib/aptos/run-codegen.js +2 -2
- package/lib/aptos/run-codegen.js.map +1 -1
- package/lib/core/big-decimal.d.ts +2 -0
- package/lib/core/big-decimal.js +8 -0
- package/lib/core/big-decimal.js.map +1 -1
- package/lib/{chain.d.ts → core/chain.d.ts} +0 -0
- package/lib/{chain.js → core/chain.js} +0 -0
- package/lib/core/chain.js.map +1 -0
- package/lib/core/index.d.ts +2 -4
- package/lib/core/index.js +2 -4
- package/lib/core/index.js.map +1 -1
- package/lib/core/numberish.d.ts +0 -2
- package/lib/core/numberish.js +0 -9
- package/lib/core/numberish.js.map +1 -1
- package/lib/core/sui-plugin.js +1 -1
- package/lib/core/sui-plugin.js.map +1 -1
- package/lib/core/sui-processor.d.ts +1 -1
- package/lib/core/sui-processor.js +1 -1
- package/lib/core/sui-processor.js.map +1 -1
- package/lib/eth/account-processor.d.ts +4 -4
- package/lib/eth/account-processor.js +4 -4
- package/lib/eth/account-processor.js.map +1 -1
- package/lib/eth/base-processor-template.d.ts +5 -5
- package/lib/eth/base-processor-template.js +1 -1
- package/lib/eth/base-processor-template.js.map +1 -1
- package/lib/eth/base-processor.d.ts +5 -5
- package/lib/eth/base-processor.js +1 -1
- package/lib/eth/base-processor.js.map +1 -1
- package/lib/{core → eth}/bind-options.d.ts +0 -0
- package/lib/{core → eth}/bind-options.js +0 -0
- package/lib/eth/bind-options.js.map +1 -0
- package/lib/eth/binds.d.ts +2 -2
- package/lib/eth/binds.js +1 -1
- package/lib/eth/binds.js.map +1 -1
- package/lib/{builtin → eth/builtin}/eacaggregatorproxy/index.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/eacaggregatorproxy/index.js +0 -0
- package/lib/eth/builtin/eacaggregatorproxy/index.js.map +1 -0
- package/lib/{builtin → eth/builtin}/eacaggregatorproxy/test-utils.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/eacaggregatorproxy/test-utils.js +0 -0
- package/lib/eth/builtin/eacaggregatorproxy/test-utils.js.map +1 -0
- package/lib/{builtin → eth/builtin}/erc1155/index.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/erc1155/index.js +0 -0
- package/lib/eth/builtin/erc1155/index.js.map +1 -0
- package/lib/{builtin → eth/builtin}/erc1155/test-utils.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/erc1155/test-utils.js +0 -0
- package/lib/eth/builtin/erc1155/test-utils.js.map +1 -0
- package/lib/{builtin → eth/builtin}/erc20/index.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/erc20/index.js +0 -0
- package/lib/eth/builtin/erc20/index.js.map +1 -0
- package/lib/{builtin → eth/builtin}/erc20/test-utils.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/erc20/test-utils.js +0 -0
- package/lib/eth/builtin/erc20/test-utils.js.map +1 -0
- package/lib/{builtin → eth/builtin}/erc20bytes/index.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/erc20bytes/index.js +0 -0
- package/lib/eth/builtin/erc20bytes/index.js.map +1 -0
- package/lib/{builtin → eth/builtin}/erc20bytes/test-utils.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/erc20bytes/test-utils.js +0 -0
- package/lib/eth/builtin/erc20bytes/test-utils.js.map +1 -0
- package/lib/{builtin → eth/builtin}/erc721/index.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/erc721/index.js +0 -0
- package/lib/eth/builtin/erc721/index.js.map +1 -0
- package/lib/{builtin → eth/builtin}/erc721/test-utils.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/erc721/test-utils.js +0 -0
- package/lib/eth/builtin/erc721/test-utils.js.map +1 -0
- package/lib/{builtin → eth/builtin}/index.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/index.js +0 -0
- package/lib/eth/builtin/index.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/EACAggregatorProxy.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/internal/EACAggregatorProxy.js +0 -0
- package/lib/eth/builtin/internal/EACAggregatorProxy.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/ERC1155.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/internal/ERC1155.js +0 -0
- package/lib/eth/builtin/internal/ERC1155.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/ERC20.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/internal/ERC20.js +0 -0
- package/lib/eth/builtin/internal/ERC20.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/ERC20Bytes.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/internal/ERC20Bytes.js +0 -0
- package/lib/eth/builtin/internal/ERC20Bytes.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/ERC721.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/internal/ERC721.js +0 -0
- package/lib/eth/builtin/internal/ERC721.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/WETH9.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/internal/WETH9.js +0 -0
- package/lib/eth/builtin/internal/WETH9.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/common.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/internal/common.js +0 -0
- package/lib/eth/builtin/internal/common.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/eacaggregatorproxy_processor.d.ts +1 -1
- package/lib/{builtin → eth/builtin}/internal/eacaggregatorproxy_processor.js +1 -1
- package/lib/eth/builtin/internal/eacaggregatorproxy_processor.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/erc1155_processor.d.ts +1 -1
- package/lib/{builtin → eth/builtin}/internal/erc1155_processor.js +1 -1
- package/lib/eth/builtin/internal/erc1155_processor.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/erc20_processor.d.ts +1 -1
- package/lib/{builtin → eth/builtin}/internal/erc20_processor.js +1 -1
- package/lib/eth/builtin/internal/erc20_processor.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/erc20bytes_processor.d.ts +1 -1
- package/lib/{builtin → eth/builtin}/internal/erc20bytes_processor.js +1 -1
- package/lib/eth/builtin/internal/erc20bytes_processor.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/erc721_processor.d.ts +1 -1
- package/lib/{builtin → eth/builtin}/internal/erc721_processor.js +1 -1
- package/lib/eth/builtin/internal/erc721_processor.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/factories/EACAggregatorProxy__factory.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/internal/factories/EACAggregatorProxy__factory.js +0 -0
- package/lib/eth/builtin/internal/factories/EACAggregatorProxy__factory.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/factories/ERC1155__factory.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/internal/factories/ERC1155__factory.js +0 -0
- package/lib/eth/builtin/internal/factories/ERC1155__factory.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/factories/ERC20Bytes__factory.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/internal/factories/ERC20Bytes__factory.js +0 -0
- package/lib/eth/builtin/internal/factories/ERC20Bytes__factory.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/factories/ERC20__factory.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/internal/factories/ERC20__factory.js +0 -0
- package/lib/eth/builtin/internal/factories/ERC20__factory.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/factories/ERC721__factory.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/internal/factories/ERC721__factory.js +0 -0
- package/lib/eth/builtin/internal/factories/ERC721__factory.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/factories/WETH9__factory.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/internal/factories/WETH9__factory.js +0 -0
- package/lib/eth/builtin/internal/factories/WETH9__factory.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/factories/index.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/internal/factories/index.js +0 -0
- package/lib/eth/builtin/internal/factories/index.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/index.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/internal/index.js +0 -0
- package/lib/eth/builtin/internal/index.js.map +1 -0
- package/lib/{builtin → eth/builtin}/internal/weth9_processor.d.ts +1 -1
- package/lib/{builtin → eth/builtin}/internal/weth9_processor.js +1 -1
- package/lib/eth/builtin/internal/weth9_processor.js.map +1 -0
- package/lib/{builtin → eth/builtin}/weth9/index.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/weth9/index.js +0 -0
- package/lib/eth/builtin/weth9/index.js.map +1 -0
- package/lib/{builtin → eth/builtin}/weth9/test-utils.d.ts +0 -0
- package/lib/{builtin → eth/builtin}/weth9/test-utils.js +0 -0
- package/lib/eth/builtin/weth9/test-utils.js.map +1 -0
- package/lib/eth/codegen/codegen.d.ts +1 -0
- package/lib/eth/codegen/codegen.js +53 -0
- package/lib/eth/codegen/codegen.js.map +1 -0
- package/lib/{target-ethers-sentio/index.d.cts → eth/codegen/ethers-sentio.d.ts} +1 -1
- package/lib/eth/codegen/ethers-sentio.js +57 -0
- package/lib/eth/codegen/ethers-sentio.js.map +1 -0
- package/lib/{target-ethers-sentio/event-handler.d.cts → eth/codegen/event-handler.d.ts} +0 -0
- package/lib/eth/codegen/event-handler.js +46 -0
- package/lib/eth/codegen/event-handler.js.map +1 -0
- package/lib/{target-ethers-sentio/file.d.cts → eth/codegen/file.d.ts} +0 -0
- package/lib/{target-ethers-sentio/file.cjs → eth/codegen/file.js} +27 -34
- package/lib/eth/codegen/file.js.map +1 -0
- package/lib/{target-ethers-sentio/functions-handler.d.cts → eth/codegen/functions-handler.d.ts} +0 -0
- package/lib/{target-ethers-sentio/functions-handler.cjs → eth/codegen/functions-handler.js} +13 -18
- package/lib/eth/codegen/functions-handler.js.map +1 -0
- package/lib/eth/codegen/index.d.ts +1 -0
- package/lib/eth/codegen/index.js +2 -0
- package/lib/eth/codegen/index.js.map +1 -0
- package/lib/{target-ethers-sentio/types.d.cts → eth/codegen/types.d.ts} +0 -0
- package/lib/{target-ethers-sentio/types.cjs → eth/codegen/types.js} +4 -10
- package/lib/eth/codegen/types.js.map +1 -0
- package/lib/{target-ethers-sentio/view-function.d.cts → eth/codegen/view-function.d.ts} +0 -0
- package/lib/{target-ethers-sentio/view-function.cjs → eth/codegen/view-function.js} +13 -20
- package/lib/eth/codegen/view-function.js.map +1 -0
- package/lib/{core → eth}/context.d.ts +3 -3
- package/lib/{core → eth}/context.js +3 -3
- package/lib/eth/context.js.map +1 -0
- package/lib/eth/error.d.ts +1 -0
- package/lib/eth/error.js +3 -0
- package/lib/eth/error.js.map +1 -0
- package/lib/eth/eth.d.ts +10 -2
- package/lib/eth/eth.js +43 -1
- package/lib/eth/eth.js.map +1 -1
- package/lib/eth/generic-processor.d.ts +2 -2
- package/lib/eth/generic-processor.js +1 -1
- package/lib/eth/generic-processor.js.map +1 -1
- package/lib/eth/generic-processor.test.js.map +1 -1
- package/lib/eth/index.d.ts +4 -1
- package/lib/eth/index.js +4 -1
- package/lib/eth/index.js.map +1 -1
- package/lib/eth/run-codegen.d.ts +2 -0
- package/lib/eth/run-codegen.js +12 -0
- package/lib/eth/run-codegen.js.map +1 -0
- package/lib/index.d.ts +1 -3
- package/lib/index.js +1 -5
- package/lib/index.js.map +1 -1
- package/lib/solana/codegen/codegen.d.ts +1 -1
- package/lib/solana/codegen/codegen.js +1 -1
- package/lib/solana/codegen/codegen.js.map +1 -1
- package/lib/solana/run-codegen.js +2 -2
- package/lib/solana/run-codegen.js.map +1 -1
- package/lib/testing/test-processor-server.js +1 -1
- package/lib/testing/test-processor-server.js.map +1 -1
- package/lib/testing/test-provider.js +1 -1
- package/lib/testing/test-provider.js.map +1 -1
- package/lib/tsup.config.ts +3 -0
- package/lib/utils/dex-price.js +2 -2
- package/lib/utils/dex-price.js.map +1 -1
- package/lib/utils/token.d.ts +0 -1
- package/lib/utils/token.js +17 -28
- package/lib/utils/token.js.map +1 -1
- package/package.json +22 -21
- package/src/aptos/codegen/codegen.ts +13 -22
- package/src/aptos/codegen/tsconfig.json +1 -1
- package/src/aptos/network.ts +1 -1
- package/src/aptos/run-codegen.ts +2 -2
- package/src/core/big-decimal.ts +11 -0
- package/src/{chain.ts → core/chain.ts} +0 -0
- package/src/core/index.ts +2 -5
- package/src/core/numberish.ts +0 -11
- package/src/core/sui-plugin.ts +1 -1
- package/src/core/sui-processor.ts +1 -1
- package/src/{abis → eth/abis}/EACAggregatorProxy.json +0 -0
- package/src/{abis → eth/abis}/ERC1155.json +0 -0
- package/src/{abis → eth/abis}/ERC20.json +0 -0
- package/src/{abis → eth/abis}/ERC20Bytes.json +0 -0
- package/src/{abis → eth/abis}/ERC721.json +0 -0
- package/src/{abis → eth/abis}/WETH9.json +0 -0
- package/src/eth/account-processor.ts +7 -7
- package/src/eth/base-processor-template.ts +5 -5
- package/src/eth/base-processor.ts +6 -6
- package/src/{core → eth}/bind-options.ts +0 -0
- package/src/eth/binds.ts +2 -2
- package/src/{builtin → eth/builtin}/eacaggregatorproxy/index.ts +0 -0
- package/src/{builtin → eth/builtin}/eacaggregatorproxy/test-utils.ts +0 -0
- package/src/{builtin → eth/builtin}/erc1155/index.ts +0 -0
- package/src/{builtin → eth/builtin}/erc1155/test-utils.ts +0 -0
- package/src/{builtin → eth/builtin}/erc20/index.ts +0 -0
- package/src/{builtin → eth/builtin}/erc20/test-utils.ts +0 -0
- package/src/{builtin → eth/builtin}/erc20bytes/index.ts +0 -0
- package/src/{builtin → eth/builtin}/erc20bytes/test-utils.ts +0 -0
- package/src/{builtin → eth/builtin}/erc721/index.ts +0 -0
- package/src/{builtin → eth/builtin}/erc721/test-utils.ts +0 -0
- package/src/{builtin → eth/builtin}/index.ts +0 -0
- package/src/{builtin → eth/builtin}/internal/EACAggregatorProxy.ts +0 -0
- package/src/{builtin → eth/builtin}/internal/ERC1155.ts +0 -0
- package/src/{builtin → eth/builtin}/internal/ERC20.ts +0 -0
- package/src/{builtin → eth/builtin}/internal/ERC20Bytes.ts +0 -0
- package/src/{builtin → eth/builtin}/internal/ERC721.ts +0 -0
- package/src/{builtin → eth/builtin}/internal/WETH9.ts +0 -0
- package/src/{builtin → eth/builtin}/internal/common.ts +0 -0
- package/src/{builtin → eth/builtin}/internal/eacaggregatorproxy_processor.ts +1 -1
- package/src/{builtin → eth/builtin}/internal/erc1155_processor.ts +1 -1
- package/src/{builtin → eth/builtin}/internal/erc20_processor.ts +1 -1
- package/src/{builtin → eth/builtin}/internal/erc20bytes_processor.ts +1 -1
- package/src/{builtin → eth/builtin}/internal/erc721_processor.ts +1 -1
- package/src/{builtin → eth/builtin}/internal/factories/EACAggregatorProxy__factory.ts +0 -0
- package/src/{builtin → eth/builtin}/internal/factories/ERC1155__factory.ts +0 -0
- package/src/{builtin → eth/builtin}/internal/factories/ERC20Bytes__factory.ts +0 -0
- package/src/{builtin → eth/builtin}/internal/factories/ERC20__factory.ts +0 -0
- package/src/{builtin → eth/builtin}/internal/factories/ERC721__factory.ts +0 -0
- package/src/{builtin → eth/builtin}/internal/factories/WETH9__factory.ts +0 -0
- package/src/{builtin → eth/builtin}/internal/factories/index.ts +0 -0
- package/src/{builtin → eth/builtin}/internal/index.ts +0 -0
- package/src/{builtin → eth/builtin}/internal/weth9_processor.ts +1 -1
- package/src/{builtin → eth/builtin}/weth9/index.ts +0 -0
- package/src/{builtin → eth/builtin}/weth9/test-utils.ts +0 -0
- package/src/eth/codegen/codegen.ts +62 -0
- package/src/{target-ethers-sentio/index.cts → eth/codegen/ethers-sentio.ts} +2 -2
- package/src/{target-ethers-sentio/event-handler.cts → eth/codegen/event-handler.ts} +2 -2
- package/src/{target-ethers-sentio/file.cts → eth/codegen/file.ts} +6 -6
- package/src/{target-ethers-sentio/functions-handler.cts → eth/codegen/functions-handler.ts} +4 -4
- package/src/eth/codegen/index.ts +1 -0
- package/src/eth/codegen/tsconfig.json +8 -0
- package/src/{target-ethers-sentio/types.cts → eth/codegen/types.ts} +1 -1
- package/src/{target-ethers-sentio/view-function.cts → eth/codegen/view-function.ts} +5 -3
- package/src/{core → eth}/context.ts +4 -4
- package/src/eth/error.ts +4 -0
- package/src/eth/eth.ts +53 -3
- package/src/eth/generic-processor.ts +2 -2
- package/src/eth/index.ts +5 -3
- package/src/eth/run-codegen.ts +12 -0
- package/src/index.ts +1 -6
- package/src/solana/codegen/codegen.ts +1 -1
- package/src/solana/codegen/tsconfig.json +1 -1
- package/src/solana/run-codegen.ts +2 -2
- package/src/testing/test-processor-server.ts +1 -1
- package/src/testing/test-provider.ts +1 -1
- package/src/tsup.config.ts +3 -0
- package/src/utils/dex-price.ts +2 -2
- package/src/utils/token.ts +19 -30
- package/lib/builtin/eacaggregatorproxy/index.js.map +0 -1
- package/lib/builtin/eacaggregatorproxy/test-utils.js.map +0 -1
- package/lib/builtin/erc1155/index.js.map +0 -1
- package/lib/builtin/erc1155/test-utils.js.map +0 -1
- package/lib/builtin/erc20/index.js.map +0 -1
- package/lib/builtin/erc20/test-utils.js.map +0 -1
- package/lib/builtin/erc20bytes/index.js.map +0 -1
- package/lib/builtin/erc20bytes/test-utils.js.map +0 -1
- package/lib/builtin/erc721/index.js.map +0 -1
- package/lib/builtin/erc721/test-utils.js.map +0 -1
- package/lib/builtin/index.js.map +0 -1
- package/lib/builtin/internal/EACAggregatorProxy.js.map +0 -1
- package/lib/builtin/internal/ERC1155.js.map +0 -1
- package/lib/builtin/internal/ERC20.js.map +0 -1
- package/lib/builtin/internal/ERC20Bytes.js.map +0 -1
- package/lib/builtin/internal/ERC721.js.map +0 -1
- package/lib/builtin/internal/WETH9.js.map +0 -1
- package/lib/builtin/internal/common.js.map +0 -1
- package/lib/builtin/internal/eacaggregatorproxy_processor.js.map +0 -1
- package/lib/builtin/internal/erc1155_processor.js.map +0 -1
- package/lib/builtin/internal/erc20_processor.js.map +0 -1
- package/lib/builtin/internal/erc20bytes_processor.js.map +0 -1
- package/lib/builtin/internal/erc721_processor.js.map +0 -1
- package/lib/builtin/internal/factories/EACAggregatorProxy__factory.js.map +0 -1
- package/lib/builtin/internal/factories/ERC1155__factory.js.map +0 -1
- package/lib/builtin/internal/factories/ERC20Bytes__factory.js.map +0 -1
- package/lib/builtin/internal/factories/ERC20__factory.js.map +0 -1
- package/lib/builtin/internal/factories/ERC721__factory.js.map +0 -1
- package/lib/builtin/internal/factories/WETH9__factory.js.map +0 -1
- package/lib/builtin/internal/factories/index.js.map +0 -1
- package/lib/builtin/internal/index.js.map +0 -1
- package/lib/builtin/internal/weth9_processor.js.map +0 -1
- package/lib/builtin/weth9/index.js.map +0 -1
- package/lib/builtin/weth9/test-utils.js.map +0 -1
- package/lib/chain.js.map +0 -1
- package/lib/core/bind-options.js.map +0 -1
- package/lib/core/context.js.map +0 -1
- package/lib/error.d.ts +0 -7
- package/lib/error.js +0 -36
- package/lib/error.js.map +0 -1
- package/lib/target-ethers-sentio/event-handler.cjs +0 -52
- package/lib/target-ethers-sentio/event-handler.cjs.map +0 -1
- package/lib/target-ethers-sentio/file.cjs.map +0 -1
- package/lib/target-ethers-sentio/functions-handler.cjs.map +0 -1
- package/lib/target-ethers-sentio/index.cjs +0 -61
- package/lib/target-ethers-sentio/index.cjs.map +0 -1
- package/lib/target-ethers-sentio/types.cjs.map +0 -1
- package/lib/target-ethers-sentio/view-function.cjs.map +0 -1
- package/src/error.ts +0 -43
- package/src/target-ethers-sentio/.eslintrc.json +0 -14
- package/src/target-ethers-sentio/tsconfig.json +0 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weth9_processor.js","sourceRoot":"","sources":["../../../../src/eth/builtin/internal/weth9_processor.ts"],"names":[],"mappings":"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","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nimport { 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 { WETH9, WETH9__factory } from \"./index.js\";\nimport {\n ApprovalEvent,\n ApprovalEventFilter,\n TransferEvent,\n TransferEventFilter,\n DepositEvent,\n DepositEventFilter,\n WithdrawalEvent,\n WithdrawalEventFilter,\n} from \"./WETH9.js\";\n\nexport interface NameCallObject {}\n\nexport type NameCallTrace = TypedCallTrace<[], NameCallObject> & Trace;\n\nexport interface ApproveCallObject {\n guy: string;\n wad: bigint;\n}\n\nexport type ApproveCallTrace = TypedCallTrace<\n [string, bigint],\n ApproveCallObject\n> &\n Trace;\n\nexport interface TotalSupplyCallObject {}\n\nexport type TotalSupplyCallTrace = TypedCallTrace<[], TotalSupplyCallObject> &\n Trace;\n\nexport interface TransferFromCallObject {\n src: string;\n dst: string;\n wad: bigint;\n}\n\nexport type TransferFromCallTrace = TypedCallTrace<\n [string, string, bigint],\n TransferFromCallObject\n> &\n Trace;\n\nexport interface WithdrawCallObject {\n wad: bigint;\n}\n\nexport type WithdrawCallTrace = TypedCallTrace<[bigint], WithdrawCallObject> &\n Trace;\n\nexport interface DecimalsCallObject {}\n\nexport type DecimalsCallTrace = TypedCallTrace<[], DecimalsCallObject> & Trace;\n\nexport interface BalanceOfCallObject {}\n\nexport type BalanceOfCallTrace = TypedCallTrace<[string], BalanceOfCallObject> &\n Trace;\n\nexport interface SymbolCallObject {}\n\nexport type SymbolCallTrace = TypedCallTrace<[], SymbolCallObject> & Trace;\n\nexport interface TransferCallObject {\n dst: string;\n wad: bigint;\n}\n\nexport type TransferCallTrace = TypedCallTrace<\n [string, bigint],\n TransferCallObject\n> &\n Trace;\n\nexport interface DepositCallObject {}\n\nexport type DepositCallTrace = TypedCallTrace<[], DepositCallObject> & Trace;\n\nexport interface AllowanceCallObject {}\n\nexport type AllowanceCallTrace = TypedCallTrace<\n [string, string],\n AllowanceCallObject\n> &\n Trace;\n\nconst templateContract = WETH9__factory.connect(\"0x0\", DummyProvider);\n\nexport class WETH9ContractView extends ContractView<WETH9> {\n constructor(contract: WETH9) {\n super(contract);\n }\n\n async name(overrides?: Overrides): Promise<string> {\n try {\n return await this.contract.getFunction(\"name()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async totalSupply(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"totalSupply()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async decimals(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"decimals()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async balanceOf(arg0: string, overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"balanceOf(address)\")(\n arg0,\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async symbol(overrides?: Overrides): Promise<string> {\n try {\n return await this.contract.getFunction(\"symbol()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async allowance(\n arg0: string,\n arg1: string,\n overrides?: Overrides\n ): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"allowance(address,address)\")(\n arg0,\n arg1,\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n}\n\nexport class WETH9BoundContractView extends BoundContractView<\n WETH9,\n WETH9ContractView\n> {\n async name(overrides?: Overrides): Promise<string> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.name(overrides || {});\n }\n\n async totalSupply(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.totalSupply(overrides || {});\n }\n\n async decimals(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.decimals(overrides || {});\n }\n\n async balanceOf(arg0: string, overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.balanceOf(arg0, overrides || {});\n }\n\n async symbol(overrides?: Overrides): Promise<string> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.symbol(overrides || {});\n }\n\n async allowance(\n arg0: string,\n arg1: string,\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.allowance(arg0, arg1, overrides || {});\n }\n}\n\nexport type WETH9Context = ContractContext<WETH9, WETH9BoundContractView>;\n\nexport class WETH9Processor extends BaseProcessor<\n WETH9,\n WETH9BoundContractView\n> {\n onEventApproval(\n handler: (event: ApprovalEvent, ctx: WETH9Context) => void,\n filter?: ApprovalEventFilter | ApprovalEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"Approval(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventTransfer(\n handler: (event: TransferEvent, ctx: WETH9Context) => void,\n filter?: TransferEventFilter | TransferEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"Transfer(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventDeposit(\n handler: (event: DepositEvent, ctx: WETH9Context) => void,\n filter?: DepositEventFilter | DepositEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"Deposit(address,uint256)\"](null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventWithdrawal(\n handler: (event: WithdrawalEvent, ctx: WETH9Context) => void,\n filter?: WithdrawalEventFilter | WithdrawalEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"Withdrawal(address,uint256)\"](\n null,\n null\n );\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onCallName(\n handler: (call: NameCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x06fdde03\", handler, fetchConfig);\n }\n\n onCallApprove(\n handler: (call: ApproveCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x095ea7b3\", handler, fetchConfig);\n }\n\n onCallTotalSupply(\n handler: (call: TotalSupplyCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x18160ddd\", handler, fetchConfig);\n }\n\n onCallTransferFrom(\n handler: (call: TransferFromCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x23b872dd\", handler, fetchConfig);\n }\n\n onCallWithdraw(\n handler: (call: WithdrawCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x2e1a7d4d\", handler, fetchConfig);\n }\n\n onCallDecimals(\n handler: (call: DecimalsCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x313ce567\", handler, fetchConfig);\n }\n\n onCallBalanceOf(\n handler: (call: BalanceOfCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x70a08231\", handler, fetchConfig);\n }\n\n onCallSymbol(\n handler: (call: SymbolCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x95d89b41\", handler, fetchConfig);\n }\n\n onCallTransfer(\n handler: (call: TransferCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xa9059cbb\", handler, fetchConfig);\n }\n\n onCallDeposit(\n handler: (call: DepositCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xd0e30db0\", handler, fetchConfig);\n }\n\n onCallAllowance(\n handler: (call: AllowanceCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xdd62ed3e\", handler, fetchConfig);\n }\n\n public static filters = {\n Approval(src?: string | null, guy?: string | null, wad?: null) {\n return templateContract.filters[\"Approval(address,address,uint256)\"](\n src,\n guy,\n wad\n );\n },\n Transfer(src?: string | null, dst?: string | null, wad?: null) {\n return templateContract.filters[\"Transfer(address,address,uint256)\"](\n src,\n dst,\n wad\n );\n },\n Deposit(dst?: string | null, wad?: null) {\n return templateContract.filters[\"Deposit(address,uint256)\"](dst, wad);\n },\n Withdrawal(src?: string | null, wad?: null) {\n return templateContract.filters[\"Withdrawal(address,uint256)\"](src, wad);\n },\n };\n\n protected CreateBoundContractView(): WETH9BoundContractView {\n const view = getWETH9Contract(this.config.address, this.config.network);\n return new WETH9BoundContractView(view);\n }\n\n public static bind(options: BindOptions): WETH9Processor {\n if (!options.name) {\n options.name = \"WETH9\";\n }\n let processor = getProcessor(options) as WETH9Processor;\n if (!processor) {\n processor = new WETH9Processor(options);\n addProcessor(options, processor);\n }\n return processor;\n }\n}\n\nexport class WETH9ProcessorTemplate extends BaseProcessorTemplate<\n WETH9,\n WETH9BoundContractView\n> {\n bindInternal(options: BindOptions) {\n if (!options.name) {\n options.name = \"WETH9\";\n }\n let processor = getProcessor(options) as WETH9Processor;\n if (!processor) {\n processor = new WETH9Processor(options);\n addProcessor(options, processor);\n }\n return processor;\n }\n\n onEventApproval(\n handler: (event: ApprovalEvent, ctx: WETH9Context) => void,\n filter?: ApprovalEventFilter | ApprovalEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"Approval(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventTransfer(\n handler: (event: TransferEvent, ctx: WETH9Context) => void,\n filter?: TransferEventFilter | TransferEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"Transfer(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventDeposit(\n handler: (event: DepositEvent, ctx: WETH9Context) => void,\n filter?: DepositEventFilter | DepositEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"Deposit(address,uint256)\"](null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventWithdrawal(\n handler: (event: WithdrawalEvent, ctx: WETH9Context) => void,\n filter?: WithdrawalEventFilter | WithdrawalEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"Withdrawal(address,uint256)\"](\n null,\n null\n );\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n}\n\nexport function getWETH9Contract(\n address: string,\n network: Networkish = 1\n): WETH9ContractView {\n let contract = getContractByABI(\n \"WETH9\",\n address,\n network\n ) as WETH9ContractView;\n if (!contract) {\n const rawContract = WETH9__factory.connect(address, getProvider(network));\n contract = new WETH9ContractView(rawContract);\n addContractByABI(\"WETH9\", address, network, contract);\n }\n return contract;\n}\n"]}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/eth/builtin/weth9/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AAEpB,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nexport * from \"../internal/weth9_processor.js\";\nexport * from \"../internal/WETH9.js\";\nexport * from \"./test-utils.js\";\n"]}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../../../src/eth/builtin/weth9/test-utils.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,gBAAgB,GAKjB,MAAM,YAAY,CAAC;AACpB,MAAM,SAAS,GAAG;IAChB,SAAS,EACP,oEAAoE;IACtE,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,KAAK;IACd,eAAe,EACb,oEAAoE;IACtE,gBAAgB,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,UAAU,eAAe,CAC7B,eAAuB,EACvB,KAA0B;IAE1B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAC9D,mCAAmC,EACnC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAClC,CAAC;IACF,OAAO;QACL,GAAG,SAAS;QACZ,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,eAAuB,EACvB,KAA0B;IAE1B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAC9D,mCAAmC,EACnC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAClC,CAAC;IACF,OAAO;QACL,GAAG,SAAS;QACZ,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,eAAuB,EACvB,KAAyB;IAEzB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAC9D,0BAA0B,EAC1B,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CACvB,CAAC;IACF,OAAO;QACL,GAAG,SAAS;QACZ,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,eAAuB,EACvB,KAA4B;IAE5B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAC9D,6BAA6B,EAC7B,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CACvB,CAAC;IACF,OAAO;QACL,GAAG,SAAS;QACZ,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nimport { LogParams } from \"ethers/providers\";\nimport {\n getWETH9Contract,\n ApprovalEventObject,\n TransferEventObject,\n DepositEventObject,\n WithdrawalEventObject,\n} from \"./index.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 mockApprovalLog(\n contractAddress: string,\n event: ApprovalEventObject\n): LogParams {\n const contract = getWETH9Contract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"Approval(address,address,uint256)\",\n [event.src, event.guy, event.wad]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockTransferLog(\n contractAddress: string,\n event: TransferEventObject\n): LogParams {\n const contract = getWETH9Contract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"Transfer(address,address,uint256)\",\n [event.src, event.dst, event.wad]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockDepositLog(\n contractAddress: string,\n event: DepositEventObject\n): LogParams {\n const contract = getWETH9Contract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"Deposit(address,uint256)\",\n [event.dst, event.wad]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockWithdrawalLog(\n contractAddress: string,\n event: WithdrawalEventObject\n): LogParams {\n const contract = getWETH9Contract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"Withdrawal(address,uint256)\",\n [event.src, event.wad]\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 @@
|
|
|
1
|
+
export declare function codegen(abisDir: string, outDir: string): Promise<void>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { loadFileDescriptions, processOutput, skipEmptyAbis } from 'typechain/dist/typechain/io.js';
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import { DEFAULT_FLAGS } from 'typechain';
|
|
4
|
+
import EthersSentio from './ethers-sentio.js';
|
|
5
|
+
import * as prettier from 'prettier';
|
|
6
|
+
import path from 'path';
|
|
7
|
+
import mkdirp from 'mkdirp';
|
|
8
|
+
export async function codegen(abisDir, outDir) {
|
|
9
|
+
if (!fs.existsSync(abisDir)) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
console.log('Generated', await codegenInternal(abisDir, outDir), 'files');
|
|
13
|
+
}
|
|
14
|
+
async function codegenInternal(abisDir, outDir) {
|
|
15
|
+
let allFiles = fs.readdirSync(abisDir);
|
|
16
|
+
if (allFiles.length === 0) {
|
|
17
|
+
return 0;
|
|
18
|
+
}
|
|
19
|
+
allFiles = allFiles.map((f) => path.resolve(abisDir, f));
|
|
20
|
+
allFiles = skipEmptyAbis(allFiles);
|
|
21
|
+
if (allFiles.length === 0) {
|
|
22
|
+
return 0;
|
|
23
|
+
}
|
|
24
|
+
const outInternal = path.resolve(outDir, 'internal');
|
|
25
|
+
if (!fs.existsSync(outInternal)) {
|
|
26
|
+
fs.mkdirSync(outInternal, { recursive: true });
|
|
27
|
+
}
|
|
28
|
+
// skip empty paths
|
|
29
|
+
const config = {
|
|
30
|
+
cwd: process.cwd(),
|
|
31
|
+
flags: DEFAULT_FLAGS,
|
|
32
|
+
inputDir: abisDir,
|
|
33
|
+
target: '',
|
|
34
|
+
outDir: outInternal,
|
|
35
|
+
allFiles: allFiles,
|
|
36
|
+
filesToProcess: allFiles,
|
|
37
|
+
};
|
|
38
|
+
const services = {
|
|
39
|
+
fs,
|
|
40
|
+
prettier,
|
|
41
|
+
mkdirp: mkdirp.sync,
|
|
42
|
+
};
|
|
43
|
+
let filesGenerated = 0;
|
|
44
|
+
const target = new EthersSentio(config);
|
|
45
|
+
const fileDescriptions = loadFileDescriptions(services, config.filesToProcess);
|
|
46
|
+
filesGenerated += processOutput(services, config, await target.beforeRun());
|
|
47
|
+
for (const fd of fileDescriptions) {
|
|
48
|
+
filesGenerated += processOutput(services, config, await target.transformFile(fd));
|
|
49
|
+
}
|
|
50
|
+
filesGenerated += processOutput(services, config, target.afterRun());
|
|
51
|
+
return filesGenerated;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=codegen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/eth/codegen/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACnG,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,EAAU,aAAa,EAAY,MAAM,WAAW,CAAA;AAC3D,OAAO,YAAY,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAA;AACpC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAe,EAAE,MAAc;IAC3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QAC3B,OAAM;KACP;IACD,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;AAC3E,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAAe,EAAE,MAAc;IAC5D,IAAI,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACtC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,OAAO,CAAC,CAAA;KACT;IACD,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;IAExD,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IAClC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,OAAO,CAAC,CAAA;KACT;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;QAC/B,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;KAC/C;IAED,mBAAmB;IACnB,MAAM,MAAM,GAAW;QACrB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,aAAa;QACpB,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,WAAW;QACnB,QAAQ,EAAE,QAAQ;QAClB,cAAc,EAAE,QAAQ;KACzB,CAAA;IACD,MAAM,QAAQ,GAAa;QACzB,EAAE;QACF,QAAQ;QACR,MAAM,EAAE,MAAM,CAAC,IAAI;KACpB,CAAA;IACD,IAAI,cAAc,GAAG,CAAC,CAAA;IAEtB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;IAEvC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;IAE9E,cAAc,IAAI,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;IAE3E,KAAK,MAAM,EAAE,IAAI,gBAAgB,EAAE;QACjC,cAAc,IAAI,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAA;KAClF;IAED,cAAc,IAAI,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;IAEpE,OAAO,cAAc,CAAA;AACvB,CAAC","sourcesContent":["import { loadFileDescriptions, processOutput, skipEmptyAbis } from 'typechain/dist/typechain/io.js'\nimport * as fs from 'fs'\nimport { Config, DEFAULT_FLAGS, Services } from 'typechain'\nimport EthersSentio from './ethers-sentio.js'\nimport * as prettier from 'prettier'\nimport path from 'path'\nimport mkdirp from 'mkdirp'\n\nexport async function codegen(abisDir: string, outDir: string) {\n if (!fs.existsSync(abisDir)) {\n return\n }\n console.log('Generated', await codegenInternal(abisDir, outDir), 'files')\n}\n\nasync function codegenInternal(abisDir: string, outDir: string): Promise<number> {\n let allFiles = fs.readdirSync(abisDir)\n if (allFiles.length === 0) {\n return 0\n }\n allFiles = allFiles.map((f) => path.resolve(abisDir, f))\n\n allFiles = skipEmptyAbis(allFiles)\n if (allFiles.length === 0) {\n return 0\n }\n const outInternal = path.resolve(outDir, 'internal')\n if (!fs.existsSync(outInternal)) {\n fs.mkdirSync(outInternal, { recursive: true })\n }\n\n // skip empty paths\n const config: Config = {\n cwd: process.cwd(),\n flags: DEFAULT_FLAGS,\n inputDir: abisDir,\n target: '',\n outDir: outInternal,\n allFiles: allFiles,\n filesToProcess: allFiles,\n }\n const services: Services = {\n fs,\n prettier,\n mkdirp: mkdirp.sync,\n }\n let filesGenerated = 0\n\n const target = new EthersSentio(config)\n\n const fileDescriptions = loadFileDescriptions(services, config.filesToProcess)\n\n filesGenerated += processOutput(services, config, await target.beforeRun())\n\n for (const fd of fileDescriptions) {\n filesGenerated += processOutput(services, config, await target.transformFile(fd))\n }\n\n filesGenerated += processOutput(services, config, target.afterRun())\n\n return filesGenerated\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Ethers from '@sentio/ethers-v6';
|
|
2
2
|
import { Config, FileDescription } from 'typechain';
|
|
3
|
-
export default class EthersSentio extends Ethers {
|
|
3
|
+
export default class EthersSentio extends Ethers.default {
|
|
4
4
|
constructor(config: Config);
|
|
5
5
|
transformAbiOrFullJsonFile(file: FileDescription): FileDescription[] | void;
|
|
6
6
|
afterRun(): FileDescription[];
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import Ethers from '@sentio/ethers-v6';
|
|
2
|
+
import { extractAbi, extractDocumentation, parse, shortenFullJsonFilePath } from 'typechain';
|
|
3
|
+
import { dirname, join, relative } from 'path';
|
|
4
|
+
import { codeGenIndex, codeGenSentioFile, codeGenTestUtilsFile } from './file.js';
|
|
5
|
+
export default class EthersSentio extends Ethers.default {
|
|
6
|
+
constructor(config) {
|
|
7
|
+
if (!config.outDir) {
|
|
8
|
+
throw new Error('Out put path not specificed');
|
|
9
|
+
}
|
|
10
|
+
super(config);
|
|
11
|
+
}
|
|
12
|
+
// TODO(pc): also have to override transformBinFile, transformFile
|
|
13
|
+
transformAbiOrFullJsonFile(file) {
|
|
14
|
+
const abi = extractAbi(file.contents);
|
|
15
|
+
if (abi.length === 0) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const documentation = extractDocumentation(file.contents);
|
|
19
|
+
const jsonPath = relative(this.cfg.inputDir, shortenFullJsonFilePath(file.path, this.cfg.allFiles));
|
|
20
|
+
const contract = parse(abi, jsonPath, documentation);
|
|
21
|
+
const files = super.transformAbiOrFullJsonFile(file);
|
|
22
|
+
if (files !== undefined) {
|
|
23
|
+
// files.forEach(this.transformFilePath)
|
|
24
|
+
// for (const file of files) {
|
|
25
|
+
// this.transformFilePath(file)
|
|
26
|
+
// }
|
|
27
|
+
return [
|
|
28
|
+
...files,
|
|
29
|
+
{
|
|
30
|
+
path: join(dirname(files[0].path), `${contract.name.toLowerCase()}_processor.ts`),
|
|
31
|
+
contents: codeGenSentioFile(contract),
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
path: join(dirname(files[0].path), '..', contract.name.toLowerCase(), 'index.ts'),
|
|
35
|
+
contents: codeGenIndex(contract),
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
path: join(dirname(files[0].path), '..', contract.name.toLowerCase(), 'test-utils.ts'),
|
|
39
|
+
contents: codeGenTestUtilsFile(contract),
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
afterRun() {
|
|
45
|
+
const files = super.afterRun();
|
|
46
|
+
for (const [idx, file] of files.entries()) {
|
|
47
|
+
if (file.path.endsWith('__factory.ts')) {
|
|
48
|
+
file.contents = '// @ts-nocheck\n' + file.contents;
|
|
49
|
+
}
|
|
50
|
+
if (file.path.endsWith('factories/index.ts')) {
|
|
51
|
+
file.contents = file.contents.replaceAll("__factory'", "__factory.js'");
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return files;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=ethers-sentio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ethers-sentio.js","sourceRoot":"","sources":["../../../src/eth/codegen/ethers-sentio.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAA;AACtC,OAAO,EAAU,UAAU,EAAE,oBAAoB,EAAmB,KAAK,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AACrH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEjF,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,MAAM,CAAC,OAAO;IACtD,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;SAC/C;QACD,KAAK,CAAC,MAAM,CAAC,CAAA;IACf,CAAC;IAED,kEAAkE;IACzD,0BAA0B,CAAC,IAAqB;QACvD,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACrC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,OAAM;SACP;QAED,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;QACnG,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAA;QACpD,MAAM,KAAK,GAAG,KAAK,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAA;QAEpD,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,wCAAwC;YACxC,8BAA8B;YAC9B,iCAAiC;YACjC,IAAI;YAEJ,OAAO;gBACL,GAAG,KAAK;gBACR;oBACE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC;oBACjF,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC;iBACtC;gBACD;oBACE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC;oBACjF,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC;iBACjC;gBACD;oBACE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,eAAe,CAAC;oBACtF,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC;iBACzC;aACF,CAAA;SACF;IACH,CAAC;IAEQ,QAAQ;QACf,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;QAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;YACzC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBACtC,IAAI,CAAC,QAAQ,GAAG,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAA;aACnD;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;gBAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;aACxE;SACF;QACD,OAAO,KAAK,CAAA;IACd,CAAC;CACF","sourcesContent":["import Ethers from '@sentio/ethers-v6'\nimport { Config, extractAbi, extractDocumentation, FileDescription, parse, shortenFullJsonFilePath } from 'typechain'\nimport { dirname, join, relative } from 'path'\nimport { codeGenIndex, codeGenSentioFile, codeGenTestUtilsFile } from './file.js'\n\nexport default class EthersSentio extends Ethers.default {\n constructor(config: Config) {\n if (!config.outDir) {\n throw new Error('Out put path not specificed')\n }\n super(config)\n }\n\n // TODO(pc): also have to override transformBinFile, transformFile\n override transformAbiOrFullJsonFile(file: FileDescription): FileDescription[] | void {\n const abi = extractAbi(file.contents)\n if (abi.length === 0) {\n return\n }\n\n const documentation = extractDocumentation(file.contents)\n\n const jsonPath = relative(this.cfg.inputDir, shortenFullJsonFilePath(file.path, this.cfg.allFiles))\n const contract = parse(abi, jsonPath, documentation)\n const files = super.transformAbiOrFullJsonFile(file)\n\n if (files !== undefined) {\n // files.forEach(this.transformFilePath)\n // for (const file of files) {\n // this.transformFilePath(file)\n // }\n\n return [\n ...files,\n {\n path: join(dirname(files[0].path), `${contract.name.toLowerCase()}_processor.ts`),\n contents: codeGenSentioFile(contract),\n },\n {\n path: join(dirname(files[0].path), '..', contract.name.toLowerCase(), 'index.ts'),\n contents: codeGenIndex(contract),\n },\n {\n path: join(dirname(files[0].path), '..', contract.name.toLowerCase(), 'test-utils.ts'),\n contents: codeGenTestUtilsFile(contract),\n },\n ]\n }\n }\n\n override afterRun() {\n const files = super.afterRun()\n for (const [idx, file] of files.entries()) {\n if (file.path.endsWith('__factory.ts')) {\n file.contents = '// @ts-nocheck\\n' + file.contents\n }\n if (file.path.endsWith('factories/index.ts')) {\n file.contents = file.contents.replaceAll(\"__factory'\", \"__factory.js'\")\n }\n }\n return files\n }\n}\n"]}
|
|
File without changes
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { getFullSignatureAsSymbolForEvent } from 'typechain';
|
|
2
|
+
import { getFullSignatureForEventPatched } from './types.js';
|
|
3
|
+
import { generateEventInputs } from '@sentio/ethers-v6/dist/codegen/events.js';
|
|
4
|
+
export function generateEventHandler(event, contractName, includeArgTypes) {
|
|
5
|
+
const eventName = includeArgTypes ? getFullSignatureAsSymbolForEvent(event) : event.name;
|
|
6
|
+
const eventNamePrefix = includeArgTypes ? eventName + '_' : eventName;
|
|
7
|
+
const filterName = getFullSignatureForEventPatched(event);
|
|
8
|
+
return `
|
|
9
|
+
onEvent${eventName}(
|
|
10
|
+
handler: (event: ${eventNamePrefix}Event, ctx: ${contractName}Context) => void,
|
|
11
|
+
filter?: ${eventNamePrefix}EventFilter | ${eventNamePrefix}EventFilter[],
|
|
12
|
+
fetchConfig?: EthFetchConfig
|
|
13
|
+
) {
|
|
14
|
+
if (!filter) {
|
|
15
|
+
filter = templateContract.filters['${filterName}'](${event.inputs.map(() => 'null').join(',')})
|
|
16
|
+
}
|
|
17
|
+
return super.onEvent(handler, filter!, fetchConfig)
|
|
18
|
+
}
|
|
19
|
+
`;
|
|
20
|
+
}
|
|
21
|
+
export function generateEventHandlers(events, contractName) {
|
|
22
|
+
if (events.length === 1) {
|
|
23
|
+
return generateEventHandler(events[0], contractName, false);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return events.map((e) => generateEventHandler(e, contractName, true)).join('\n');
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function generateEventFilter(event, includeArgTypes) {
|
|
30
|
+
const eventName = includeArgTypes ? getFullSignatureAsSymbolForEvent(event) : event.name;
|
|
31
|
+
const filterName = getFullSignatureForEventPatched(event);
|
|
32
|
+
return `
|
|
33
|
+
${eventName}(${generateEventInputs(event.inputs)}) { return templateContract.filters['${filterName}'](${event.inputs
|
|
34
|
+
.map((i) => i.name)
|
|
35
|
+
.join(',')}) }
|
|
36
|
+
`;
|
|
37
|
+
}
|
|
38
|
+
export function generateEventFilters(events) {
|
|
39
|
+
if (events.length === 1) {
|
|
40
|
+
return [generateEventFilter(events[0], false)];
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
return events.map((e) => generateEventFilter(e, true));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=event-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-handler.js","sourceRoot":"","sources":["../../../src/eth/codegen/event-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,gCAAgC,EAAE,MAAM,WAAW,CAAA;AACxF,OAAO,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAE9E,MAAM,UAAU,oBAAoB,CAAC,KAAuB,EAAE,YAAoB,EAAE,eAAwB;IAC1G,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,gCAAgC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAA;IACxF,MAAM,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;IAErE,MAAM,UAAU,GAAG,+BAA+B,CAAC,KAAK,CAAC,CAAA;IACzD,OAAO;WACE,SAAS;uBACG,eAAe,eAAe,YAAY;eAClD,eAAe,iBAAiB,eAAe;;;;2CAInB,UAAU,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;;;GAIhG,CAAA;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAA0B,EAAE,YAAoB;IACpF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,CAAA;KAC5D;SAAM;QACL,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACjF;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAuB,EAAE,eAAwB;IAC5E,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,gCAAgC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAA;IAExF,MAAM,UAAU,GAAG,+BAA+B,CAAC,KAAK,CAAC,CAAA;IACzD,OAAO;MACH,SAAS,IAAI,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,wCAAwC,UAAU,MAAM,KAAK,CAAC,MAAM;SACnH,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,GAAG,CAAC;GACX,CAAA;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAA0B;IAC7D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;KAC/C;SAAM;QACL,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;KACvD;AACH,CAAC","sourcesContent":["import { EventDeclaration, Contract, getFullSignatureAsSymbolForEvent } from 'typechain'\nimport { getFullSignatureForEventPatched } from './types.js'\nimport { generateEventInputs } from '@sentio/ethers-v6/dist/codegen/events.js'\n\nexport function generateEventHandler(event: EventDeclaration, contractName: string, includeArgTypes: boolean): string {\n const eventName = includeArgTypes ? getFullSignatureAsSymbolForEvent(event) : event.name\n const eventNamePrefix = includeArgTypes ? eventName + '_' : eventName\n\n const filterName = getFullSignatureForEventPatched(event)\n return `\n onEvent${eventName}(\n handler: (event: ${eventNamePrefix}Event, ctx: ${contractName}Context) => void,\n filter?: ${eventNamePrefix}EventFilter | ${eventNamePrefix}EventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters['${filterName}'](${event.inputs.map(() => 'null').join(',')})\n }\n return super.onEvent(handler, filter!, fetchConfig)\n }\n `\n}\n\nexport function generateEventHandlers(events: EventDeclaration[], contractName: string): string {\n if (events.length === 1) {\n return generateEventHandler(events[0], contractName, false)\n } else {\n return events.map((e) => generateEventHandler(e, contractName, true)).join('\\n')\n }\n}\n\nfunction generateEventFilter(event: EventDeclaration, includeArgTypes: boolean): string {\n const eventName = includeArgTypes ? getFullSignatureAsSymbolForEvent(event) : event.name\n\n const filterName = getFullSignatureForEventPatched(event)\n return `\n ${eventName}(${generateEventInputs(event.inputs)}) { return templateContract.filters['${filterName}'](${event.inputs\n .map((i) => i.name)\n .join(',')}) }\n `\n}\n\nexport function generateEventFilters(events: EventDeclaration[]): string[] {\n if (events.length === 1) {\n return [generateEventFilter(events[0], false)]\n } else {\n return events.map((e) => generateEventFilter(e, true))\n }\n}\n"]}
|
|
File without changes
|
|
@@ -1,23 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const functions_handler_cjs_1 = require("./functions-handler.cjs");
|
|
8
|
-
const event_handler_cjs_1 = require("./event-handler.cjs");
|
|
9
|
-
const view_function_cjs_1 = require("./view-function.cjs");
|
|
10
|
-
function codeGenIndex(contract) {
|
|
1
|
+
import { createImportsForUsedIdentifiers, getFullSignatureAsSymbolForEvent, getFullSignatureForEvent, } from 'typechain';
|
|
2
|
+
import { reservedKeywords } from '@sentio/ethers-v6/dist/codegen/reserved-keywords.js';
|
|
3
|
+
import { codegenCallTraceTypes, generateCallHandlers } from './functions-handler.js';
|
|
4
|
+
import { generateEventFilters, generateEventHandlers } from './event-handler.js';
|
|
5
|
+
import { generateBoundViewFunctions, generateViewFunctions } from './view-function.js';
|
|
6
|
+
export function codeGenIndex(contract) {
|
|
11
7
|
return `
|
|
12
8
|
export * from '../internal/${contract.name.toLowerCase()}_processor.js'
|
|
13
9
|
export * from '../internal/${contract.name}.js'
|
|
14
10
|
export * from './test-utils.js'
|
|
15
11
|
`;
|
|
16
12
|
}
|
|
17
|
-
|
|
18
|
-
function codeGenSentioFile(contract) {
|
|
13
|
+
export function codeGenSentioFile(contract) {
|
|
19
14
|
const source = `
|
|
20
|
-
${Object.values(contract.functions).map(
|
|
15
|
+
${Object.values(contract.functions).map(codegenCallTraceTypes).join('\n')}
|
|
21
16
|
|
|
22
17
|
const templateContract = ${contract.name}__factory.connect("0x0", DummyProvider)
|
|
23
18
|
|
|
@@ -27,16 +22,16 @@ function codeGenSentioFile(contract) {
|
|
|
27
22
|
}
|
|
28
23
|
|
|
29
24
|
${Object.values(contract.functions)
|
|
30
|
-
.filter((f) => !
|
|
31
|
-
.map((fs) =>
|
|
25
|
+
.filter((f) => !reservedKeywords.has(f[0].name))
|
|
26
|
+
.map((fs) => generateViewFunctions(fs))
|
|
32
27
|
.join('\n')}
|
|
33
28
|
}
|
|
34
29
|
|
|
35
30
|
export class ${contract.name}BoundContractView extends BoundContractView<${contract.name},
|
|
36
31
|
${contract.name}ContractView> {
|
|
37
32
|
${Object.values(contract.functions)
|
|
38
|
-
.filter((f) => !
|
|
39
|
-
.map((fs) =>
|
|
33
|
+
.filter((f) => !reservedKeywords.has(f[0].name))
|
|
34
|
+
.map((fs) => generateBoundViewFunctions(fs))
|
|
40
35
|
.join('\n')}
|
|
41
36
|
}
|
|
42
37
|
|
|
@@ -44,16 +39,16 @@ function codeGenSentioFile(contract) {
|
|
|
44
39
|
|
|
45
40
|
export class ${contract.name}Processor extends BaseProcessor<${contract.name}, ${contract.name}BoundContractView> {
|
|
46
41
|
${Object.values(contract.events)
|
|
47
|
-
.map((events) =>
|
|
42
|
+
.map((events) => generateEventHandlers(events, contract.name))
|
|
48
43
|
.join('\n')}
|
|
49
44
|
|
|
50
45
|
${Object.values(contract.functions)
|
|
51
|
-
.map((f) =>
|
|
46
|
+
.map((f) => generateCallHandlers(f, contract.name))
|
|
52
47
|
.join('\n')}
|
|
53
48
|
|
|
54
49
|
public static filters = {
|
|
55
50
|
${Object.values(contract.events)
|
|
56
|
-
.map((events) =>
|
|
51
|
+
.map((events) => generateEventFilters(events))
|
|
57
52
|
.join(',')}
|
|
58
53
|
}
|
|
59
54
|
|
|
@@ -89,12 +84,12 @@ export class ${contract.name}ProcessorTemplate extends BaseProcessorTemplate<${c
|
|
|
89
84
|
}
|
|
90
85
|
|
|
91
86
|
${Object.values(contract.events)
|
|
92
|
-
.map((events) =>
|
|
87
|
+
.map((events) => generateEventHandlers(events, contract.name))
|
|
93
88
|
.join('\n')}
|
|
94
89
|
|
|
95
90
|
${Object.values(contract.functions)
|
|
96
91
|
.map((functions) => {
|
|
97
|
-
|
|
92
|
+
generateCallHandlers(functions, contract.name);
|
|
98
93
|
})
|
|
99
94
|
.join('\n')}
|
|
100
95
|
}
|
|
@@ -116,8 +111,8 @@ export class ${contract.name}ProcessorTemplate extends BaseProcessorTemplate<${c
|
|
|
116
111
|
}
|
|
117
112
|
else {
|
|
118
113
|
return events.flatMap((e) => [
|
|
119
|
-
`${
|
|
120
|
-
`${
|
|
114
|
+
`${getFullSignatureAsSymbolForEvent(e)}_Event`,
|
|
115
|
+
`${getFullSignatureAsSymbolForEvent(e)}_EventFilter`,
|
|
121
116
|
]);
|
|
122
117
|
}
|
|
123
118
|
});
|
|
@@ -136,10 +131,10 @@ export class ${contract.name}ProcessorTemplate extends BaseProcessorTemplate<${c
|
|
|
136
131
|
});
|
|
137
132
|
// dedup namespace
|
|
138
133
|
const uniqueStructImports = [...new Set(structImports)];
|
|
139
|
-
const imports =
|
|
134
|
+
const imports = createImportsForUsedIdentifiers({
|
|
140
135
|
ethers: ['BigNumberish', 'Overrides', 'BytesLike'],
|
|
141
136
|
'ethers/providers': ['Networkish'],
|
|
142
|
-
'@sentio/sdk': [
|
|
137
|
+
'@sentio/sdk/eth': [
|
|
143
138
|
'addContractByABI',
|
|
144
139
|
'getContractByABI',
|
|
145
140
|
'addProcessor',
|
|
@@ -164,8 +159,7 @@ export class ${contract.name}ProcessorTemplate extends BaseProcessorTemplate<${c
|
|
|
164
159
|
}, source);
|
|
165
160
|
return imports + source;
|
|
166
161
|
}
|
|
167
|
-
|
|
168
|
-
function codeGenTestUtilsFile(contract) {
|
|
162
|
+
export function codeGenTestUtilsFile(contract) {
|
|
169
163
|
const source = `
|
|
170
164
|
const mockField = {
|
|
171
165
|
blockHash:
|
|
@@ -188,7 +182,7 @@ function codeGenTestUtilsFile(contract) {
|
|
|
188
182
|
})
|
|
189
183
|
.join('\n')}
|
|
190
184
|
`;
|
|
191
|
-
const imports =
|
|
185
|
+
const imports = createImportsForUsedIdentifiers({
|
|
192
186
|
'ethers/providers': ['LogParams'],
|
|
193
187
|
'./index.js': [
|
|
194
188
|
`get${contract.name}Contract`,
|
|
@@ -197,25 +191,24 @@ function codeGenTestUtilsFile(contract) {
|
|
|
197
191
|
return `${events[0].name}EventObject`;
|
|
198
192
|
}
|
|
199
193
|
else {
|
|
200
|
-
return events.flatMap((e) => `${
|
|
194
|
+
return events.flatMap((e) => `${getFullSignatureAsSymbolForEvent(e)}_EventObject`);
|
|
201
195
|
}
|
|
202
196
|
}),
|
|
203
197
|
],
|
|
204
198
|
}, source);
|
|
205
199
|
return imports + source;
|
|
206
200
|
}
|
|
207
|
-
exports.codeGenTestUtilsFile = codeGenTestUtilsFile;
|
|
208
201
|
function generateMockEventLogFunction(event, contractName, includeArgTypes) {
|
|
209
202
|
let eventName = event.name;
|
|
210
203
|
if (includeArgTypes) {
|
|
211
|
-
eventName =
|
|
204
|
+
eventName = getFullSignatureAsSymbolForEvent(event) + '_';
|
|
212
205
|
}
|
|
213
206
|
const eventArgs = event.inputs.map((input, i) => `event.${input.name ?? `arg${i.toString()}`}`);
|
|
214
207
|
return `
|
|
215
208
|
export function mock${eventName}Log(contractAddress: string, event: ${eventName}EventObject): LogParams {
|
|
216
209
|
const contract = get${contractName}Contract(contractAddress)
|
|
217
210
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
|
218
|
-
'${
|
|
211
|
+
'${getFullSignatureForEvent(event)}',
|
|
219
212
|
[${eventArgs.join(', ')}]
|
|
220
213
|
)
|
|
221
214
|
return {
|
|
@@ -228,4 +221,4 @@ function generateMockEventLogFunction(event, contractName, includeArgTypes) {
|
|
|
228
221
|
}
|
|
229
222
|
`;
|
|
230
223
|
}
|
|
231
|
-
//# sourceMappingURL=file.
|
|
224
|
+
//# sourceMappingURL=file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/eth/codegen/file.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Contract,\n createImportsForUsedIdentifiers,\n EventDeclaration,\n getFullSignatureAsSymbolForEvent,\n getFullSignatureForEvent,\n} from 'typechain'\n\nimport { reservedKeywords } from '@sentio/ethers-v6/dist/codegen/reserved-keywords.js'\nimport { codegenCallTraceTypes, generateCallHandlers } from './functions-handler.js'\nimport { generateEventFilters, generateEventHandlers } from './event-handler.js'\nimport { generateBoundViewFunctions, generateViewFunctions } from './view-function.js'\n\nexport function codeGenIndex(contract: Contract): string {\n return ` \n export * from '../internal/${contract.name.toLowerCase()}_processor.js'\n export * from '../internal/${contract.name}.js'\n export * from './test-utils.js'\n `\n}\n\nexport function codeGenSentioFile(contract: Contract): string {\n const source = `\n ${Object.values(contract.functions).map(codegenCallTraceTypes).join('\\n')}\n\n const templateContract = ${contract.name}__factory.connect(\"0x0\", DummyProvider)\n\n export class ${contract.name}ContractView extends ContractView<${contract.name}> {\n constructor (contract: ${contract.name}) {\n super(contract);\n }\n\n ${Object.values(contract.functions)\n .filter((f) => !reservedKeywords.has(f[0].name))\n .map((fs) => generateViewFunctions(fs))\n .join('\\n')}\n }\n \n export class ${contract.name}BoundContractView extends BoundContractView<${contract.name}, \n ${contract.name}ContractView> {\n ${Object.values(contract.functions)\n .filter((f) => !reservedKeywords.has(f[0].name))\n .map((fs) => generateBoundViewFunctions(fs))\n .join('\\n')}\n }\n\n export type ${contract.name}Context = ContractContext<${contract.name}, ${contract.name}BoundContractView>\n\n export class ${contract.name}Processor extends BaseProcessor<${contract.name}, ${contract.name}BoundContractView> {\n ${Object.values(contract.events)\n .map((events) => generateEventHandlers(events, contract.name))\n .join('\\n')}\n\n ${Object.values(contract.functions)\n .map((f) => generateCallHandlers(f, contract.name))\n .join('\\n')}\n\n public static filters = {\n ${Object.values(contract.events)\n .map((events) => generateEventFilters(events))\n .join(',')}\n }\n \n protected CreateBoundContractView(): ${contract.name}BoundContractView {\n const view = get${contract.name}Contract(this.config.address, this.config.network)\n return new ${contract.name}BoundContractView(view)\n }\n\n public static bind(options: BindOptions): ${contract.name}Processor {\n if (!options.name) {\n options.name = \"${contract.name}\"\n }\n let processor = getProcessor(options) as ${contract.name}Processor\n if (!processor) {\n processor = new ${contract.name}Processor(options)\n addProcessor(options, processor)\n }\n return processor\n }\n}\n\nexport class ${contract.name}ProcessorTemplate extends BaseProcessorTemplate<${contract.name}, ${\n contract.name\n }BoundContractView> {\n bindInternal(options: BindOptions) {\n if (!options.name) {\n options.name = \"${contract.name}\"\n }\n let processor = getProcessor(options) as ${contract.name}Processor\n if (!processor) {\n processor = new ${contract.name}Processor(options)\n addProcessor(options, processor)\n }\n return processor\n }\n\n ${Object.values(contract.events)\n .map((events) => generateEventHandlers(events, contract.name))\n .join('\\n')}\n \n ${Object.values(contract.functions)\n .map((functions) => {\n generateCallHandlers(functions, contract.name)\n })\n .join('\\n')}\n }\n\n\n export function get${contract.name}Contract(address: string, network: Networkish = 1): ${contract.name}ContractView {\n let contract = getContractByABI(\"${contract.name}\", address, network) as ${contract.name}ContractView\n if (!contract) {\n const rawContract = ${contract.name}__factory.connect(address, getProvider(network))\n contract = new ${contract.name}ContractView(rawContract)\n addContractByABI(\"${contract.name}\", address, network, contract)\n }\n return contract\n }\n `\n const eventsImports = Object.values(contract.events).flatMap((events) => {\n if (events.length === 1) {\n return [`${events[0].name}Event`, `${events[0].name}EventFilter`]\n } else {\n return events.flatMap((e) => [\n `${getFullSignatureAsSymbolForEvent(e)}_Event`,\n `${getFullSignatureAsSymbolForEvent(e)}_EventFilter`,\n ])\n }\n })\n\n const structImports = Object.values(contract.structs).flatMap((structs) => {\n return structs.flatMap((s) => {\n if (!s.structName) {\n return []\n }\n if (s.structName.namespace) {\n return [s.structName.namespace]\n } else {\n return [s.structName.identifier + 'StructOutput', s.structName.identifier + 'Struct']\n }\n })\n })\n // dedup namespace\n const uniqueStructImports = [...new Set(structImports)]\n\n const imports = createImportsForUsedIdentifiers(\n {\n ethers: ['BigNumberish', 'Overrides', 'BytesLike'],\n 'ethers/providers': ['Networkish'],\n '@sentio/sdk/eth': [\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 ],\n '@sentio/protos': ['EthFetchConfig'],\n './common.js': ['PromiseOrValue'],\n './index.js': [`${contract.name}`, `${contract.name}__factory`],\n [`./${contract.name}.js`]: eventsImports.concat(uniqueStructImports),\n },\n source\n )\n\n return imports + source\n}\n\nexport function codeGenTestUtilsFile(contract: Contract): string {\n const source = `\n const mockField = {\n blockHash:\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n blockNumber: 0,\n logIndex: 0,\n removed: false,\n transactionHash:\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n transactionIndex: 0,\n }\n ${Object.values(contract.events)\n .map((events) => {\n if (events.length === 1) {\n return generateMockEventLogFunction(events[0], contract.name, false)\n } else {\n return events.map((e) => generateMockEventLogFunction(e, contract.name, true)).join('\\n')\n }\n })\n .join('\\n')}\n `\n\n const imports = createImportsForUsedIdentifiers(\n {\n 'ethers/providers': ['LogParams'],\n './index.js': [\n `get${contract.name}Contract`,\n ...Object.values(contract.events).flatMap((events) => {\n if (events.length === 1) {\n return `${events[0].name}EventObject`\n } else {\n return events.flatMap((e) => `${getFullSignatureAsSymbolForEvent(e)}_EventObject`)\n }\n }),\n ],\n },\n source\n )\n\n return imports + source\n}\n\nfunction generateMockEventLogFunction(event: EventDeclaration, contractName: string, includeArgTypes: boolean): string {\n let eventName = event.name\n if (includeArgTypes) {\n eventName = getFullSignatureAsSymbolForEvent(event) + '_'\n }\n\n const eventArgs = event.inputs.map((input, i) => `event.${input.name ?? `arg${i.toString()}`}`)\n\n return `\n export function mock${eventName}Log(contractAddress: string, event: ${eventName}EventObject): LogParams {\n const contract = get${contractName}Contract(contractAddress)\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n '${getFullSignatureForEvent(event)}',\n [${eventArgs.join(', ')}]\n )\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n }\n }\n `\n}\n"]}
|
package/lib/{target-ethers-sentio/functions-handler.d.cts → eth/codegen/functions-handler.d.ts}
RENAMED
|
File without changes
|
|
@@ -1,29 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const typechain_1 = require("typechain");
|
|
7
|
-
const types_cjs_1 = require("./types.cjs");
|
|
8
|
-
function generateCallHandlers(fns, contractName) {
|
|
1
|
+
import { generateOutputComplexTypeAsArray, generateOutputComplexTypesAsObject, } from '@sentio/ethers-v6/dist/codegen/types.js';
|
|
2
|
+
import sha3 from 'js-sha3';
|
|
3
|
+
import { getSignatureForFn } from 'typechain';
|
|
4
|
+
import { getFullSignatureAsSymbolForFunction } from './types.js';
|
|
5
|
+
export function generateCallHandlers(fns, contractName) {
|
|
9
6
|
if (fns.length === 1) {
|
|
10
7
|
return generateCallHandler(fns[0], contractName);
|
|
11
8
|
}
|
|
12
|
-
return fns.map((fn) => generateCallHandler(fn, contractName,
|
|
9
|
+
return fns.map((fn) => generateCallHandler(fn, contractName, getFullSignatureAsSymbolForFunction(fn))).join('\n');
|
|
13
10
|
}
|
|
14
|
-
|
|
15
|
-
function codegenCallTraceTypes(fns) {
|
|
11
|
+
export function codegenCallTraceTypes(fns) {
|
|
16
12
|
if (fns.length === 1) {
|
|
17
13
|
return codegenCallTraceType(fns[0]);
|
|
18
14
|
}
|
|
19
|
-
return fns.map((fn) => codegenCallTraceType(fn,
|
|
15
|
+
return fns.map((fn) => codegenCallTraceType(fn, getFullSignatureAsSymbolForFunction(fn))).join('\n');
|
|
20
16
|
}
|
|
21
|
-
exports.codegenCallTraceTypes = codegenCallTraceTypes;
|
|
22
17
|
function codegenCallTraceType(fn, overloadedName) {
|
|
23
18
|
const identifier = capitalizeFirstChar(overloadedName ?? fn.name);
|
|
24
19
|
const components = fn.inputs.map((input, i) => ({ name: input.name ?? `arg${i.toString()}`, type: input.type }));
|
|
25
|
-
const arrayOutput =
|
|
26
|
-
const objectOutput =
|
|
20
|
+
const arrayOutput = generateOutputComplexTypeAsArray(components, { useStructs: true });
|
|
21
|
+
const objectOutput = generateOutputComplexTypesAsObject(components, { useStructs: true }) || '{}';
|
|
27
22
|
return `
|
|
28
23
|
export interface ${identifier}CallObject ${objectOutput}
|
|
29
24
|
|
|
@@ -31,10 +26,10 @@ function codegenCallTraceType(fn, overloadedName) {
|
|
|
31
26
|
`;
|
|
32
27
|
}
|
|
33
28
|
function generateCallHandler(fn, contractName, overloadedName) {
|
|
34
|
-
const signature =
|
|
29
|
+
const signature = getSignatureForFn(fn);
|
|
35
30
|
// utils.toUtf8Bytes(signature))
|
|
36
31
|
const test = new TextEncoder().encode(signature);
|
|
37
|
-
const sighash =
|
|
32
|
+
const sighash = '0x' + sha3.keccak_256(test).substring(0, 8);
|
|
38
33
|
return `
|
|
39
34
|
onCall${capitalizeFirstChar(overloadedName ?? fn.name)}(
|
|
40
35
|
handler: (call: ${capitalizeFirstChar(overloadedName ?? fn.name)}CallTrace, ctx: ${contractName}Context) => void,
|
|
@@ -50,4 +45,4 @@ function capitalizeFirstChar(input) {
|
|
|
50
45
|
}
|
|
51
46
|
return input[0].toUpperCase() + (input.length > 1 ? input.substring(1) : '');
|
|
52
47
|
}
|
|
53
|
-
//# sourceMappingURL=functions-handler.
|
|
48
|
+
//# sourceMappingURL=functions-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions-handler.js","sourceRoot":"","sources":["../../../src/eth/codegen/functions-handler.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n generateOutputComplexTypeAsArray,\n generateOutputComplexTypesAsObject,\n} from '@sentio/ethers-v6/dist/codegen/types.js'\nimport sha3 from 'js-sha3'\nimport { FunctionDeclaration, getSignatureForFn } from 'typechain'\nimport { getFullSignatureAsSymbolForFunction } from './types.js'\n\nexport function generateCallHandlers(fns: FunctionDeclaration[], contractName: string): string {\n if (fns.length === 1) {\n return generateCallHandler(fns[0], contractName)\n }\n\n return fns.map((fn) => generateCallHandler(fn, contractName, getFullSignatureAsSymbolForFunction(fn))).join('\\n')\n}\n\nexport function codegenCallTraceTypes(fns: FunctionDeclaration[]): string {\n if (fns.length === 1) {\n return codegenCallTraceType(fns[0])\n }\n\n return fns.map((fn) => codegenCallTraceType(fn, getFullSignatureAsSymbolForFunction(fn))).join('\\n')\n}\n\nfunction codegenCallTraceType(fn: FunctionDeclaration, overloadedName?: string): string {\n const identifier = capitalizeFirstChar(overloadedName ?? fn.name)\n\n const components = fn.inputs.map((input, i) => ({ name: input.name ?? `arg${i.toString()}`, type: input.type }))\n const arrayOutput = generateOutputComplexTypeAsArray(components, { useStructs: true })\n const objectOutput = generateOutputComplexTypesAsObject(components, { useStructs: true }) || '{}'\n\n return `\n export interface ${identifier}CallObject ${objectOutput}\n \n export type ${identifier}CallTrace = TypedCallTrace<${arrayOutput}, ${identifier}CallObject> & Trace\n `\n}\n\nfunction generateCallHandler(fn: FunctionDeclaration, contractName: string, overloadedName?: string): string {\n const signature = getSignatureForFn(fn)\n // utils.toUtf8Bytes(signature))\n\n const test = new TextEncoder().encode(signature)\n const sighash = '0x' + sha3.keccak_256(test).substring(0, 8)\n\n return `\n onCall${capitalizeFirstChar(overloadedName ?? fn.name)}(\n handler: (call: ${capitalizeFirstChar(overloadedName ?? fn.name)}CallTrace, ctx: ${contractName}Context) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"${sighash}\", handler, fetchConfig);\n }\n`\n}\n\nfunction capitalizeFirstChar(input: string): string {\n if (!input) {\n return input\n }\n return input[0].toUpperCase() + (input.length > 1 ? input.substring(1) : '')\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './codegen.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/eth/codegen/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA","sourcesContent":["export * from './codegen.js'\n"]}
|
|
File without changes
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getFullSignatureForFunction = exports.getFullSignatureForEventPatched = exports.getFullSignatureAsSymbolForFunction = void 0;
|
|
4
|
-
function getFullSignatureAsSymbolForFunction(fn) {
|
|
1
|
+
export function getFullSignatureAsSymbolForFunction(fn) {
|
|
5
2
|
return `${fn.name}_${fn.inputs
|
|
6
3
|
.map((e) => {
|
|
7
4
|
if (e.type.type === 'array') {
|
|
@@ -13,7 +10,6 @@ function getFullSignatureAsSymbolForFunction(fn) {
|
|
|
13
10
|
})
|
|
14
11
|
.join('_')}`;
|
|
15
12
|
}
|
|
16
|
-
exports.getFullSignatureAsSymbolForFunction = getFullSignatureAsSymbolForFunction;
|
|
17
13
|
function formatType(type) {
|
|
18
14
|
if (type.type === 'array') {
|
|
19
15
|
return formatType(type.itemType) + '[]';
|
|
@@ -26,21 +22,19 @@ function formatType(type) {
|
|
|
26
22
|
}
|
|
27
23
|
}
|
|
28
24
|
// TODO contribute upstream
|
|
29
|
-
function getFullSignatureForEventPatched(event) {
|
|
25
|
+
export function getFullSignatureForEventPatched(event) {
|
|
30
26
|
return `${event.name}(${event.inputs
|
|
31
27
|
.map((e) => {
|
|
32
28
|
return formatType(e.type);
|
|
33
29
|
})
|
|
34
30
|
.join(',')})`;
|
|
35
31
|
}
|
|
36
|
-
exports.getFullSignatureForEventPatched = getFullSignatureForEventPatched;
|
|
37
32
|
// TODO check existed func
|
|
38
|
-
function getFullSignatureForFunction(fn) {
|
|
33
|
+
export function getFullSignatureForFunction(fn) {
|
|
39
34
|
return `${fn.name}(${fn.inputs
|
|
40
35
|
.map((e) => {
|
|
41
36
|
return formatType(e.type);
|
|
42
37
|
})
|
|
43
38
|
.join(',')})`;
|
|
44
39
|
}
|
|
45
|
-
|
|
46
|
-
//# sourceMappingURL=types.cjs.map
|
|
40
|
+
//# sourceMappingURL=types.js.map
|