@sentio/sdk 2.5.0 → 2.5.1-rc.2
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.js +3 -3
- package/lib/aptos/codegen/codegen.js.map +1 -1
- package/lib/aptos/move-coder.js +2 -2
- package/lib/aptos/move-coder.js.map +1 -1
- package/lib/aptos/move-types.d.ts +5 -5
- package/lib/aptos/move-types.js +15 -15
- package/lib/aptos/move-types.js.map +1 -1
- package/lib/eth/codegen/event-handler.js.map +1 -1
- package/lib/eth/codegen/functions-handler.js +4 -9
- package/lib/eth/codegen/functions-handler.js.map +1 -1
- package/lib/eth/context.js.map +1 -1
- package/lib/eth/index.d.ts +0 -1
- package/lib/eth/index.js +0 -1
- package/lib/eth/index.js.map +1 -1
- package/lib/move/abstract-codegen.d.ts +12 -12
- package/lib/move/abstract-codegen.js +30 -36
- package/lib/move/abstract-codegen.js.map +1 -1
- package/lib/move/abstract-move-coder.d.ts +4 -4
- package/lib/move/abstract-move-coder.js +3 -3
- package/lib/move/abstract-move-coder.js.map +1 -1
- package/lib/move/account.d.ts +4 -7
- package/lib/move/account.js +2 -14
- package/lib/move/account.js.map +1 -1
- package/lib/move/internal-models.d.ts +34 -0
- package/lib/move/internal-models.js +7 -0
- package/lib/move/internal-models.js.map +1 -0
- package/lib/move/ts-type.js +1 -3
- package/lib/move/ts-type.js.map +1 -1
- package/lib/move/types.d.ts +1 -0
- package/lib/move/types.js +13 -25
- package/lib/move/types.js.map +1 -1
- package/lib/sui/codegen/codegen.js +5 -5
- package/lib/sui/codegen/codegen.js.map +1 -1
- package/lib/sui/move-coder.js +2 -2
- package/lib/sui/move-coder.js.map +1 -1
- package/lib/sui/move-types.d.ts +7 -7
- package/lib/sui/move-types.js +26 -25
- package/lib/sui/move-types.js.map +1 -1
- package/lib/sui/sui-processor.js.map +1 -1
- package/lib/sui/utils.d.ts +2 -2
- package/lib/sui/utils.js.map +1 -1
- package/lib/utils/dex-price.test.js.map +1 -1
- package/lib/utils/erc20.test.js.map +1 -1
- package/package.json +10 -13
- package/src/aptos/codegen/codegen.ts +7 -7
- package/src/aptos/move-coder.ts +2 -3
- package/src/aptos/move-types.ts +20 -20
- package/src/eth/codegen/event-handler.ts +1 -1
- package/src/eth/codegen/functions-handler.ts +4 -10
- package/src/eth/context.ts +0 -1
- package/src/eth/index.ts +0 -1
- package/src/move/abstract-codegen.ts +45 -50
- package/src/move/abstract-move-coder.ts +9 -9
- package/src/move/account.ts +6 -21
- package/src/move/internal-models.ts +40 -0
- package/src/move/ts-type.ts +1 -3
- package/src/move/types.ts +13 -33
- package/src/sui/codegen/codegen.ts +8 -8
- package/src/sui/move-coder.ts +2 -2
- package/src/sui/move-types.ts +32 -31
- package/src/sui/sui-processor.ts +1 -1
- package/src/sui/utils.ts +2 -2
- package/lib/aptos/tests/aptos.test.d.ts +0 -1
- package/lib/aptos/tests/aptos.test.js.map +0 -1
- package/lib/aptos/tests/souffl3.d.ts +0 -1
- package/lib/aptos/tests/souffl3.js +0 -43
- package/lib/aptos/tests/souffl3.js.map +0 -1
- package/lib/aptos/tests/types/index.d.ts +0 -3
- package/lib/aptos/tests/types/index.js +0 -7
- package/lib/aptos/tests/types/index.js.map +0 -1
- package/lib/aptos/tests/types/reserved.d.ts +0 -340
- package/lib/aptos/tests/types/reserved.js +0 -287
- package/lib/aptos/tests/types/reserved.js.map +0 -1
- package/lib/aptos/tests/types/soffl3.d.ts +0 -801
- package/lib/aptos/tests/types/soffl3.js +0 -514
- package/lib/aptos/tests/types/soffl3.js.map +0 -1
- package/lib/aptos/tests/types/souffle.d.ts +0 -335
- package/lib/aptos/tests/types/souffle.js +0 -281
- package/lib/aptos/tests/types/souffle.js.map +0 -1
- package/lib/eth/error.d.ts +0 -1
- package/lib/eth/error.js +0 -3
- package/lib/eth/error.js.map +0 -1
- package/lib/eth/tests/account.test.d.ts +0 -1
- package/lib/eth/tests/account.test.js.map +0 -1
- package/lib/eth/tests/codegen.test.d.ts +0 -1
- package/lib/eth/tests/codegen.test.js.map +0 -1
- package/lib/eth/tests/erc20-template.test.d.ts +0 -1
- package/lib/eth/tests/erc20-template.test.js.map +0 -1
- package/lib/eth/tests/erc20.d.ts +0 -1
- package/lib/eth/tests/erc20.js +0 -52
- package/lib/eth/tests/erc20.js.map +0 -1
- package/lib/eth/tests/erc20.test.d.ts +0 -1
- package/lib/eth/tests/erc20.test.js.map +0 -1
- package/lib/eth/tests/error-capture.test.d.ts +0 -1
- package/lib/eth/tests/error-capture.test.js.map +0 -1
- package/lib/eth/tests/logger.test.d.ts +0 -1
- package/lib/eth/tests/logger.test.js.map +0 -1
- package/lib/eth/tests/types/anyswaprouter.d.ts +0 -3
- package/lib/eth/tests/types/anyswaprouter.js +0 -7
- package/lib/eth/tests/types/anyswaprouter.js.map +0 -1
- package/lib/eth/tests/types/commitmentpool.d.ts +0 -3
- package/lib/eth/tests/types/commitmentpool.js +0 -7
- package/lib/eth/tests/types/commitmentpool.js.map +0 -1
- package/lib/eth/tests/types/index.d.ts +0 -12
- package/lib/eth/tests/types/index.js +0 -16
- package/lib/eth/tests/types/index.js.map +0 -1
- package/lib/eth/tests/types/internal/AnyswapRouter.d.ts +0 -122
- package/lib/eth/tests/types/internal/AnyswapRouter.js +0 -2
- package/lib/eth/tests/types/internal/AnyswapRouter.js.map +0 -1
- package/lib/eth/tests/types/internal/CommitmentPool.d.ts +0 -176
- package/lib/eth/tests/types/internal/CommitmentPool.js +0 -2
- package/lib/eth/tests/types/internal/CommitmentPool.js.map +0 -1
- package/lib/eth/tests/types/internal/MembershipStakerV3.d.ts +0 -81
- package/lib/eth/tests/types/internal/MembershipStakerV3.js +0 -2
- package/lib/eth/tests/types/internal/MembershipStakerV3.js.map +0 -1
- package/lib/eth/tests/types/internal/Pyth.d.ts +0 -204
- package/lib/eth/tests/types/internal/Pyth.js +0 -2
- package/lib/eth/tests/types/internal/Pyth.js.map +0 -1
- package/lib/eth/tests/types/internal/Seaport.d.ts +0 -350
- package/lib/eth/tests/types/internal/Seaport.js +0 -2
- package/lib/eth/tests/types/internal/Seaport.js.map +0 -1
- package/lib/eth/tests/types/internal/TokenExchange.d.ts +0 -128
- package/lib/eth/tests/types/internal/TokenExchange.js +0 -2
- package/lib/eth/tests/types/internal/TokenExchange.js.map +0 -1
- package/lib/eth/tests/types/internal/anyswaprouter-processor.d.ts +0 -463
- package/lib/eth/tests/types/internal/anyswaprouter-processor.js +0 -425
- package/lib/eth/tests/types/internal/anyswaprouter-processor.js.map +0 -1
- package/lib/eth/tests/types/internal/anyswaprouter-test-utils.d.ts +0 -9
- package/lib/eth/tests/types/internal/anyswaprouter-test-utils.js +0 -124
- package/lib/eth/tests/types/internal/anyswaprouter-test-utils.js.map +0 -1
- package/lib/eth/tests/types/internal/commitmentpool-processor.d.ts +0 -348
- package/lib/eth/tests/types/internal/commitmentpool-processor.js +0 -607
- package/lib/eth/tests/types/internal/commitmentpool-processor.js.map +0 -1
- package/lib/eth/tests/types/internal/commitmentpool-test-utils.d.ts +0 -9
- package/lib/eth/tests/types/internal/commitmentpool-test-utils.js +0 -87
- package/lib/eth/tests/types/internal/commitmentpool-test-utils.js.map +0 -1
- package/lib/eth/tests/types/internal/common.d.ts +0 -10
- package/lib/eth/tests/types/internal/common.js +0 -8
- package/lib/eth/tests/types/internal/common.js.map +0 -1
- package/lib/eth/tests/types/internal/factories/AnyswapRouter__factory.d.ts +0 -988
- package/lib/eth/tests/types/internal/factories/AnyswapRouter__factory.js +0 -1269
- package/lib/eth/tests/types/internal/factories/AnyswapRouter__factory.js.map +0 -1
- package/lib/eth/tests/types/internal/factories/CommitmentPool__factory.d.ts +0 -792
- package/lib/eth/tests/types/internal/factories/CommitmentPool__factory.js +0 -1040
- package/lib/eth/tests/types/internal/factories/CommitmentPool__factory.js.map +0 -1
- package/lib/eth/tests/types/internal/factories/MembershipStakerV3__factory.d.ts +0 -549
- package/lib/eth/tests/types/internal/factories/MembershipStakerV3__factory.js +0 -721
- package/lib/eth/tests/types/internal/factories/MembershipStakerV3__factory.js.map +0 -1
- package/lib/eth/tests/types/internal/factories/Pyth__factory.d.ts +0 -1130
- package/lib/eth/tests/types/internal/factories/Pyth__factory.js +0 -1486
- package/lib/eth/tests/types/internal/factories/Pyth__factory.js.map +0 -1
- package/lib/eth/tests/types/internal/factories/Seaport__factory.d.ts +0 -2018
- package/lib/eth/tests/types/internal/factories/Seaport__factory.js +0 -2610
- package/lib/eth/tests/types/internal/factories/Seaport__factory.js.map +0 -1
- package/lib/eth/tests/types/internal/factories/TokenExchange__factory.d.ts +0 -651
- package/lib/eth/tests/types/internal/factories/TokenExchange__factory.js +0 -853
- package/lib/eth/tests/types/internal/factories/TokenExchange__factory.js.map +0 -1
- package/lib/eth/tests/types/internal/factories/index.d.ts +0 -6
- package/lib/eth/tests/types/internal/factories/index.js +0 -10
- package/lib/eth/tests/types/internal/factories/index.js.map +0 -1
- package/lib/eth/tests/types/internal/index.d.ts +0 -13
- package/lib/eth/tests/types/internal/index.js +0 -8
- package/lib/eth/tests/types/internal/index.js.map +0 -1
- package/lib/eth/tests/types/internal/membershipstakerv3-processor.d.ts +0 -287
- package/lib/eth/tests/types/internal/membershipstakerv3-processor.js +0 -596
- package/lib/eth/tests/types/internal/membershipstakerv3-processor.js.map +0 -1
- package/lib/eth/tests/types/internal/membershipstakerv3-test-utils.d.ts +0 -11
- package/lib/eth/tests/types/internal/membershipstakerv3-test-utils.js +0 -109
- package/lib/eth/tests/types/internal/membershipstakerv3-test-utils.js.map +0 -1
- package/lib/eth/tests/types/internal/pyth-processor.d.ts +0 -422
- package/lib/eth/tests/types/internal/pyth-processor.js +0 -890
- package/lib/eth/tests/types/internal/pyth-processor.js.map +0 -1
- package/lib/eth/tests/types/internal/pyth-test-utils.d.ts +0 -13
- package/lib/eth/tests/types/internal/pyth-test-utils.js +0 -131
- package/lib/eth/tests/types/internal/pyth-test-utils.js.map +0 -1
- package/lib/eth/tests/types/internal/seaport-processor.d.ts +0 -211
- package/lib/eth/tests/types/internal/seaport-processor.js +0 -237
- package/lib/eth/tests/types/internal/seaport-processor.js.map +0 -1
- package/lib/eth/tests/types/internal/seaport-test-utils.d.ts +0 -6
- package/lib/eth/tests/types/internal/seaport-test-utils.js +0 -61
- package/lib/eth/tests/types/internal/seaport-test-utils.js.map +0 -1
- package/lib/eth/tests/types/internal/tokenexchange-processor.d.ts +0 -334
- package/lib/eth/tests/types/internal/tokenexchange-processor.js +0 -667
- package/lib/eth/tests/types/internal/tokenexchange-processor.js.map +0 -1
- package/lib/eth/tests/types/internal/tokenexchange-test-utils.d.ts +0 -13
- package/lib/eth/tests/types/internal/tokenexchange-test-utils.js +0 -149
- package/lib/eth/tests/types/internal/tokenexchange-test-utils.js.map +0 -1
- package/lib/eth/tests/types/membershipstakerv3.d.ts +0 -3
- package/lib/eth/tests/types/membershipstakerv3.js +0 -7
- package/lib/eth/tests/types/membershipstakerv3.js.map +0 -1
- package/lib/eth/tests/types/pyth.d.ts +0 -3
- package/lib/eth/tests/types/pyth.js +0 -7
- package/lib/eth/tests/types/pyth.js.map +0 -1
- package/lib/eth/tests/types/seaport.d.ts +0 -3
- package/lib/eth/tests/types/seaport.js +0 -7
- package/lib/eth/tests/types/seaport.js.map +0 -1
- package/lib/eth/tests/types/tokenexchange.d.ts +0 -3
- package/lib/eth/tests/types/tokenexchange.js +0 -7
- package/lib/eth/tests/types/tokenexchange.js.map +0 -1
- package/lib/move/neutral-models.d.ts +0 -34
- package/lib/move/neutral-models.js +0 -7
- package/lib/move/neutral-models.js.map +0 -1
- package/lib/solana/tests/solana.test.d.ts +0 -1
- package/lib/solana/tests/solana.test.js.map +0 -1
- package/lib/solana/tests/types/basic_1.d.ts +0 -26
- package/lib/solana/tests/types/basic_1.js +0 -63
- package/lib/solana/tests/types/basic_1.js.map +0 -1
- package/lib/solana/tests/types/basic_1_processor.d.ts +0 -21
- package/lib/solana/tests/types/basic_1_processor.js +0 -35
- package/lib/solana/tests/types/basic_1_processor.js.map +0 -1
- package/lib/solana/tests/types/token_bridge.d.ts +0 -29
- package/lib/solana/tests/types/token_bridge.js +0 -938
- package/lib/solana/tests/types/token_bridge.js.map +0 -1
- package/lib/solana/tests/types/token_bridge_processor.d.ts +0 -212
- package/lib/solana/tests/types/token_bridge_processor.js +0 -134
- package/lib/solana/tests/types/token_bridge_processor.js.map +0 -1
- package/lib/solana/tests/wormhole-token-bridge.d.ts +0 -15
- package/lib/solana/tests/wormhole-token-bridge.js +0 -79
- package/lib/solana/tests/wormhole-token-bridge.js.map +0 -1
- package/lib/sui/tests/sui.test.d.ts +0 -1
- package/lib/sui/tests/sui.test.js.map +0 -1
- package/lib/sui/tests/types/index.d.ts +0 -1
- package/lib/sui/tests/types/index.js +0 -5
- package/lib/sui/tests/types/index.js.map +0 -1
- package/lib/sui/tests/types/testnet/index.d.ts +0 -1
- package/lib/sui/tests/types/testnet/index.js +0 -5
- package/lib/sui/tests/types/testnet/index.js.map +0 -1
- package/lib/sui/tests/types/testnet/swap.d.ts +0 -249
- package/lib/sui/tests/types/testnet/swap.js +0 -310
- package/lib/sui/tests/types/testnet/swap.js.map +0 -1
- package/src/aptos/tests/abis/reserved.json +0 -402
- package/src/aptos/tests/abis/soffl3.json +0 -1411
- package/src/aptos/tests/abis/souffle.json +0 -389
- package/src/aptos/tests/souffl3.ts +0 -56
- package/src/aptos/tests/types/index.ts +0 -6
- package/src/aptos/tests/types/reserved.ts +0 -766
- package/src/aptos/tests/types/soffl3.ts +0 -1528
- package/src/aptos/tests/types/souffle.ts +0 -765
- package/src/eth/error.ts +0 -4
- package/src/eth/tests/abis/eth/CommitmentPool.json +0 -1034
- package/src/eth/tests/abis/eth/MembershipStakerV3.json +0 -706
- package/src/eth/tests/abis/eth/Pyth.json +0 -1471
- package/src/eth/tests/abis/eth/Seaport.json +0 -2595
- package/src/eth/tests/abis/eth/TokenExchange.json +0 -838
- package/src/eth/tests/abis/eth/anyswapRouter.json +0 -490
- package/src/eth/tests/erc20.ts +0 -63
- package/src/eth/tests/types/anyswaprouter.ts +0 -7
- package/src/eth/tests/types/commitmentpool.ts +0 -7
- package/src/eth/tests/types/index.ts +0 -33
- package/src/eth/tests/types/internal/AnyswapRouter.ts +0 -122
- package/src/eth/tests/types/internal/CommitmentPool.ts +0 -208
- package/src/eth/tests/types/internal/MembershipStakerV3.ts +0 -108
- package/src/eth/tests/types/internal/Pyth.ts +0 -246
- package/src/eth/tests/types/internal/Seaport.ts +0 -389
- package/src/eth/tests/types/internal/TokenExchange.ts +0 -142
- package/src/eth/tests/types/internal/anyswaprouter-processor.ts +0 -1396
- package/src/eth/tests/types/internal/anyswaprouter-test-utils.ts +0 -187
- package/src/eth/tests/types/internal/commitmentpool-processor.ts +0 -1575
- package/src/eth/tests/types/internal/commitmentpool-test-utils.ts +0 -150
- package/src/eth/tests/types/internal/common.ts +0 -23
- package/src/eth/tests/types/internal/factories/AnyswapRouter__factory.ts +0 -1278
- package/src/eth/tests/types/internal/factories/CommitmentPool__factory.ts +0 -1049
- package/src/eth/tests/types/internal/factories/MembershipStakerV3__factory.ts +0 -730
- package/src/eth/tests/types/internal/factories/Pyth__factory.ts +0 -1492
- package/src/eth/tests/types/internal/factories/Seaport__factory.ts +0 -2616
- package/src/eth/tests/types/internal/factories/TokenExchange__factory.ts +0 -862
- package/src/eth/tests/types/internal/factories/index.ts +0 -9
- package/src/eth/tests/types/internal/index.ts +0 -16
- package/src/eth/tests/types/internal/membershipstakerv3-processor.ts +0 -1399
- package/src/eth/tests/types/internal/membershipstakerv3-test-utils.ts +0 -188
- package/src/eth/tests/types/internal/pyth-processor.ts +0 -2043
- package/src/eth/tests/types/internal/pyth-test-utils.ts +0 -226
- package/src/eth/tests/types/internal/seaport-processor.ts +0 -678
- package/src/eth/tests/types/internal/seaport-test-utils.ts +0 -100
- package/src/eth/tests/types/internal/tokenexchange-processor.ts +0 -1570
- package/src/eth/tests/types/internal/tokenexchange-test-utils.ts +0 -244
- package/src/eth/tests/types/membershipstakerv3.ts +0 -7
- package/src/eth/tests/types/pyth.ts +0 -7
- package/src/eth/tests/types/seaport.ts +0 -7
- package/src/eth/tests/types/tokenexchange.ts +0 -7
- package/src/move/neutral-models.ts +0 -45
- package/src/solana/tests/abis/basic_1.json +0 -62
- package/src/solana/tests/abis/token_bridge.json +0 -937
- package/src/solana/tests/types/basic_1.ts +0 -62
- package/src/solana/tests/types/basic_1_processor.ts +0 -42
- package/src/solana/tests/types/token_bridge.ts +0 -937
- package/src/solana/tests/types/token_bridge_processor.ts +0 -150
- package/src/solana/tests/wormhole-token-bridge.ts +0 -96
- package/src/sui/tests/abis/testnet/swap.json +0 -1752
- package/src/sui/tests/types/index.ts +0 -3
- package/src/sui/tests/types/testnet/index.ts +0 -4
- package/src/sui/tests/types/testnet/swap.ts +0 -698
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
|
-
import {
|
|
2
|
+
import { toInternalModule } from '../move-types.js';
|
|
3
3
|
import { moduleQname, SPLITTER } from '../../move/index.js';
|
|
4
4
|
import chalk from 'chalk';
|
|
5
5
|
import { AptosNetwork } from '../network.js';
|
|
@@ -33,8 +33,8 @@ class AptosCodegen extends AbstractCodegen {
|
|
|
33
33
|
const client = getRpcClient(network);
|
|
34
34
|
return await client.getAccountModules(account);
|
|
35
35
|
}
|
|
36
|
-
|
|
37
|
-
return modules.flatMap((m) => (m.abi ? [
|
|
36
|
+
toInternalModules(modules) {
|
|
37
|
+
return modules.flatMap((m) => (m.abi ? [toInternalModule(m)] : []));
|
|
38
38
|
}
|
|
39
39
|
getMeaningfulFunctionParams(params) {
|
|
40
40
|
return getMeaningfulFunctionParams(params);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/aptos/codegen/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,EAAsB,
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/aptos/codegen/codegen.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from 'fs'\nimport { MoveModuleBytecode, toInternalModule } from '../move-types.js'\nimport { moduleQname, SPLITTER, TypeDescriptor } from '../../move/index.js'\nimport chalk from 'chalk'\nimport { AptosNetwork } from '../network.js'\nimport { AptosClient } from 'aptos-sdk'\nimport { getMeaningfulFunctionParams } from '../utils.js'\nimport { InternalMoveModule, InternalMoveStruct } from '../../move/internal-models.js'\nimport { AbstractCodegen } from '../../move/abstract-codegen.js'\n\nexport async function codegen(abisDir: string, outDir = 'src/types/aptos') {\n if (!fs.existsSync(abisDir)) {\n return\n }\n console.log(chalk.green('Generated Types for Aptos'))\n const gen = new AptosCodegen()\n await gen.generate(abisDir, outDir)\n}\n\nfunction getRpcEndpoint(network: AptosNetwork): string {\n switch (network) {\n case AptosNetwork.TEST_NET:\n return 'https://testnet.aptoslabs.com/'\n }\n return 'https://mainnet.aptoslabs.com/'\n}\n\nfunction getRpcClient(network: AptosNetwork): AptosClient {\n return new AptosClient(getRpcEndpoint(network))\n}\n\nclass AptosCodegen extends AbstractCodegen<MoveModuleBytecode[], AptosNetwork> {\n ADDRESS_TYPE = 'Address'\n MAIN_NET = AptosNetwork.MAIN_NET\n TEST_NET = AptosNetwork.TEST_NET\n PREFIX = 'Aptos'\n\n async fetchModules(account: string, network: AptosNetwork): Promise<MoveModuleBytecode[]> {\n const client = getRpcClient(network)\n return await client.getAccountModules(account)\n }\n\n toInternalModules(modules: MoveModuleBytecode[]): InternalMoveModule[] {\n return modules.flatMap((m) => (m.abi ? [toInternalModule(m)] : []))\n }\n\n getMeaningfulFunctionParams(params: TypeDescriptor[]): TypeDescriptor[] {\n return getMeaningfulFunctionParams(params)\n }\n\n getEventStructs(module: InternalMoveModule) {\n const qname = moduleQname(module)\n const structMap = new Map<string, InternalMoveStruct>()\n const eventMap = new Map<string, InternalMoveStruct>()\n\n for (const struct of module.structs) {\n structMap.set(qname + SPLITTER + struct.name, struct)\n }\n\n for (const struct of module.structs) {\n for (const field of struct.fields) {\n const t = field.type\n if (t.qname === '0x1::event::EventHandle') {\n const event = t.typeArgs[0].qname\n const eventStruct = structMap.get(event)\n if (eventStruct) {\n eventMap.set(event, eventStruct)\n }\n }\n }\n }\n\n return eventMap\n }\n}\n"]}
|
package/lib/aptos/move-coder.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { toInternalModule, } from './move-types.js';
|
|
2
2
|
import { getMeaningfulFunctionParams } from './utils.js';
|
|
3
3
|
import { AbstractMoveCoder } from '../move/abstract-move-coder.js';
|
|
4
4
|
export class MoveCoder extends AbstractMoveCoder {
|
|
@@ -9,7 +9,7 @@ export class MoveCoder extends AbstractMoveCoder {
|
|
|
9
9
|
if (this.contains(module.abi.address, module.abi.name)) {
|
|
10
10
|
return;
|
|
11
11
|
}
|
|
12
|
-
this.
|
|
12
|
+
this.loadInternal(toInternalModule(module));
|
|
13
13
|
}
|
|
14
14
|
decodeEvent(event) {
|
|
15
15
|
return this.decodedInternal(event);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"move-coder.js","sourceRoot":"","sources":["../../src/aptos/move-coder.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"move-coder.js","sourceRoot":"","sources":["../../src/aptos/move-coder.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,gBAAgB,GAEjB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAElE,MAAM,OAAO,SAAU,SAAQ,iBAAuC;IACpE,IAAI,CAAC,MAA0B;QAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YACf,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAA;SAClC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACtD,OAAM;SACP;QACD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,WAAW,CAAI,KAAY;QACzB,OAAO,IAAI,CAAC,eAAe,CAAI,KAAK,CAA0B,CAAA;IAChE,CAAC;IACD,qBAAqB,CAAI,SAAiB,EAAE,SAAkB;QAC5D,OAAO,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,SAAS,CAA4B,CAAA;IACtF,CAAC;IACD,cAAc,CAAI,GAAiB;QACjC,OAAO,IAAI,CAAC,eAAe,CAAI,GAAG,CAAC,CAAA;IACrC,CAAC;IACD,wBAAwB,CAAI,SAAiB,EAAE,SAAyB;QACtE,OAAO,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAC3D,CAAC;IAED,qBAAqB,CAAC,OAAgD;QACpE,MAAM,cAAc,GAAU,EAAE,CAAA;QAEhC,IAAI;YACF,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YACnD,MAAM,MAAM,GAAG,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACvD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE;gBACpD,sGAAsG;gBACtG,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;gBAC3B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;aAC/C;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;YAChE,OAAO,OAAO,CAAA;SACf;QAED,OAAO;YACL,GAAG,OAAO;YACV,iBAAiB,EAAE,cAAc;SACA,CAAA;IACrC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,SAAS,EAAE,CAAA;AAEzC,MAAM,UAAU,gBAAgB;IAC9B,OAAO,UAAU,CAAA;AACnB,CAAC","sourcesContent":["import {\n Event,\n MoveModuleBytecode,\n MoveResource,\n toInternalModule,\n TransactionPayload_EntryFunctionPayload,\n} from './move-types.js'\n\nimport { TypedEventInstance, TypedMoveResource, TypedEntryFunctionPayload } from './models.js'\nimport { getMeaningfulFunctionParams } from './utils.js'\nimport { AbstractMoveCoder } from '../move/abstract-move-coder.js'\n\nexport class MoveCoder extends AbstractMoveCoder<Event | MoveResource> {\n load(module: MoveModuleBytecode) {\n if (!module.abi) {\n throw Error('Module without abi')\n }\n if (this.contains(module.abi.address, module.abi.name)) {\n return\n }\n this.loadInternal(toInternalModule(module))\n }\n\n decodeEvent<T>(event: Event): TypedEventInstance<T> | undefined {\n return this.decodedInternal<T>(event) as TypedEventInstance<T>\n }\n filterAndDecodeEvents<T>(typeQname: string, resources: Event[]): TypedEventInstance<T>[] {\n return this.filterAndDecodeInternal(typeQname, resources) as TypedEventInstance<T>[]\n }\n decodeResource<T>(res: MoveResource): TypedMoveResource<T> | undefined {\n return this.decodedInternal<T>(res)\n }\n filterAndDecodeResources<T>(typeQname: string, resources: MoveResource[]): TypedMoveResource<T>[] {\n return this.filterAndDecodeInternal(typeQname, resources)\n }\n\n decodeFunctionPayload(payload: TransactionPayload_EntryFunctionPayload): TransactionPayload_EntryFunctionPayload {\n const argumentsTyped: any[] = []\n\n try {\n const func = this.getMoveFunction(payload.function)\n const params = getMeaningfulFunctionParams(func.params)\n for (const [idx, arg] of payload.arguments.entries()) {\n // TODO consider apply payload.type_arguments, but this might be hard since we don't code gen for them\n const argType = params[idx]\n argumentsTyped.push(this.decode(arg, argType))\n }\n } catch (e) {\n console.error('Decoding error for ', JSON.stringify(payload), e)\n return payload\n }\n\n return {\n ...payload,\n arguments_decoded: argumentsTyped,\n } as TypedEntryFunctionPayload<any>\n }\n}\n\nexport const MOVE_CODER = new MoveCoder()\n\nexport function defaultMoveCoder(): MoveCoder {\n return MOVE_CODER\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Types } from 'aptos-sdk';
|
|
2
|
-
import {
|
|
2
|
+
import { InternalMoveFunction, InternalMoveModule, InternalMoveStruct, InternalMoveStructField } from '../move/internal-models.js';
|
|
3
3
|
export type Address = Types.Address;
|
|
4
4
|
export type Event = Types.Event;
|
|
5
5
|
export type MoveFunction = Types.MoveFunction;
|
|
@@ -10,7 +10,7 @@ export type MoveStructField = Types.MoveStructField;
|
|
|
10
10
|
export type MoveModuleBytecode = Types.MoveModuleBytecode;
|
|
11
11
|
export type TransactionPayload_EntryFunctionPayload = Types.TransactionPayload_EntryFunctionPayload;
|
|
12
12
|
export type Transaction_UserTransaction = Types.Transaction_UserTransaction;
|
|
13
|
-
export declare function
|
|
14
|
-
export declare function
|
|
15
|
-
export declare function
|
|
16
|
-
export declare function
|
|
13
|
+
export declare function toInternalModule(module: MoveModuleBytecode): InternalMoveModule;
|
|
14
|
+
export declare function toInternalFunction(func: MoveFunction): InternalMoveFunction;
|
|
15
|
+
export declare function toInternalStruct(struct: MoveStruct): InternalMoveStruct;
|
|
16
|
+
export declare function toInternalField(module: MoveStructField): InternalMoveStructField;
|
package/lib/aptos/move-types.js
CHANGED
|
@@ -1,50 +1,50 @@
|
|
|
1
1
|
import { Types } from 'aptos-sdk';
|
|
2
|
-
import {
|
|
2
|
+
import { InternalMoveFunctionVisibility, } from '../move/internal-models.js';
|
|
3
3
|
import { parseMoveType } from '../move/index.js';
|
|
4
|
-
export function
|
|
4
|
+
export function toInternalModule(module) {
|
|
5
5
|
if (!module.abi) {
|
|
6
6
|
throw Error('module with no ABI found');
|
|
7
7
|
}
|
|
8
8
|
const abi = module.abi;
|
|
9
9
|
return {
|
|
10
10
|
address: abi.address,
|
|
11
|
-
|
|
11
|
+
exposedFunctions: abi.exposed_functions.map(toInternalFunction),
|
|
12
12
|
name: abi.name,
|
|
13
|
-
structs: abi.structs.map(
|
|
13
|
+
structs: abi.structs.map(toInternalStruct),
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
|
-
export function
|
|
16
|
+
export function toInternalFunction(func) {
|
|
17
17
|
let visibility;
|
|
18
18
|
switch (func.visibility) {
|
|
19
19
|
case Types.MoveFunctionVisibility.PRIVATE:
|
|
20
|
-
visibility =
|
|
20
|
+
visibility = InternalMoveFunctionVisibility.PRIVATE;
|
|
21
21
|
break;
|
|
22
22
|
case Types.MoveFunctionVisibility.PUBLIC:
|
|
23
|
-
visibility =
|
|
23
|
+
visibility = InternalMoveFunctionVisibility.PUBLIC;
|
|
24
24
|
break;
|
|
25
25
|
case Types.MoveFunctionVisibility.FRIEND:
|
|
26
|
-
visibility =
|
|
26
|
+
visibility = InternalMoveFunctionVisibility.FRIEND;
|
|
27
27
|
break;
|
|
28
28
|
}
|
|
29
29
|
return {
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
typeParams: func.generic_type_params,
|
|
31
|
+
isEntry: func.is_entry,
|
|
32
32
|
name: func.name,
|
|
33
33
|
params: func.params.map(parseMoveType),
|
|
34
34
|
return: func.return.map(parseMoveType),
|
|
35
35
|
visibility: visibility,
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
|
-
export function
|
|
38
|
+
export function toInternalStruct(struct) {
|
|
39
39
|
return {
|
|
40
40
|
abilities: struct.abilities,
|
|
41
|
-
fields: struct.fields.map(
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
fields: struct.fields.map(toInternalField),
|
|
42
|
+
typeParams: struct.generic_type_params,
|
|
43
|
+
isNative: struct.is_native,
|
|
44
44
|
name: struct.name,
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
|
-
export function
|
|
47
|
+
export function toInternalField(module) {
|
|
48
48
|
return {
|
|
49
49
|
name: module.name,
|
|
50
50
|
type: parseMoveType(module.type),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"move-types.js","sourceRoot":"","sources":["../../src/aptos/move-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AACjC,OAAO,EAEL,
|
|
1
|
+
{"version":3,"file":"move-types.js","sourceRoot":"","sources":["../../src/aptos/move-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AACjC,OAAO,EAEL,8BAA8B,GAI/B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAahD,MAAM,UAAU,gBAAgB,CAAC,MAA0B;IACzD,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;QACf,MAAM,KAAK,CAAC,0BAA0B,CAAC,CAAA;KACxC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;IACtB,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,gBAAgB,EAAE,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC/D,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;KAC3C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAkB;IACnD,IAAI,UAAU,CAAA;IACd,QAAQ,IAAI,CAAC,UAAU,EAAE;QACvB,KAAK,KAAK,CAAC,sBAAsB,CAAC,OAAO;YACvC,UAAU,GAAG,8BAA8B,CAAC,OAAO,CAAA;YACnD,MAAK;QACP,KAAK,KAAK,CAAC,sBAAsB,CAAC,MAAM;YACtC,UAAU,GAAG,8BAA8B,CAAC,MAAM,CAAA;YAClD,MAAK;QACP,KAAK,KAAK,CAAC,sBAAsB,CAAC,MAAM;YACtC,UAAU,GAAG,8BAA8B,CAAC,MAAM,CAAA;YAClD,MAAK;KACR;IACD,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,mBAAmB;QACpC,OAAO,EAAE,IAAI,CAAC,QAAQ;QACtB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;QACtC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;QACtC,UAAU,EAAE,UAAU;KACvB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAkB;IACjD,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC;QAC1C,UAAU,EAAE,MAAM,CAAC,mBAAmB;QACtC,QAAQ,EAAE,MAAM,CAAC,SAAS;QAC1B,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAuB;IACrD,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC;KACjC,CAAA;AACH,CAAC","sourcesContent":["import { Types } from 'aptos-sdk'\nimport {\n InternalMoveFunction,\n InternalMoveFunctionVisibility,\n InternalMoveModule,\n InternalMoveStruct,\n InternalMoveStructField,\n} from '../move/internal-models.js'\nimport { parseMoveType } from '../move/index.js'\n\nexport type Address = Types.Address\nexport type Event = Types.Event\nexport type MoveFunction = Types.MoveFunction\nexport type MoveModule = Types.MoveModule\nexport type MoveResource = Types.MoveResource\nexport type MoveStruct = Types.MoveStruct\nexport type MoveStructField = Types.MoveStructField\nexport type MoveModuleBytecode = Types.MoveModuleBytecode\nexport type TransactionPayload_EntryFunctionPayload = Types.TransactionPayload_EntryFunctionPayload\nexport type Transaction_UserTransaction = Types.Transaction_UserTransaction\n\nexport function toInternalModule(module: MoveModuleBytecode): InternalMoveModule {\n if (!module.abi) {\n throw Error('module with no ABI found')\n }\n const abi = module.abi\n return {\n address: abi.address,\n exposedFunctions: abi.exposed_functions.map(toInternalFunction),\n name: abi.name,\n structs: abi.structs.map(toInternalStruct),\n }\n}\n\nexport function toInternalFunction(func: MoveFunction): InternalMoveFunction {\n let visibility\n switch (func.visibility) {\n case Types.MoveFunctionVisibility.PRIVATE:\n visibility = InternalMoveFunctionVisibility.PRIVATE\n break\n case Types.MoveFunctionVisibility.PUBLIC:\n visibility = InternalMoveFunctionVisibility.PUBLIC\n break\n case Types.MoveFunctionVisibility.FRIEND:\n visibility = InternalMoveFunctionVisibility.FRIEND\n break\n }\n return {\n typeParams: func.generic_type_params,\n isEntry: func.is_entry,\n name: func.name,\n params: func.params.map(parseMoveType),\n return: func.return.map(parseMoveType),\n visibility: visibility,\n }\n}\n\nexport function toInternalStruct(struct: MoveStruct): InternalMoveStruct {\n return {\n abilities: struct.abilities,\n fields: struct.fields.map(toInternalField),\n typeParams: struct.generic_type_params,\n isNative: struct.is_native,\n name: struct.name,\n }\n}\n\nexport function toInternalField(module: MoveStructField): InternalMoveStructField {\n return {\n name: module.name,\n type: parseMoveType(module.type),\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler.js","sourceRoot":"","sources":["../../../src/eth/codegen/event-handler.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"event-handler.js","sourceRoot":"","sources":["../../../src/eth/codegen/event-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,gCAAgC,EAAE,MAAM,WAAW,CAAA;AAC9E,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,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;SACtC,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, 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, idx) => i.name || `arg${idx}`)\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"]}
|
|
@@ -2,6 +2,7 @@ import { generateOutputComplexTypeAsArray, generateOutputComplexTypesAsObject, }
|
|
|
2
2
|
import sha3 from 'js-sha3';
|
|
3
3
|
import { getSignatureForFn } from 'typechain';
|
|
4
4
|
import { getFullSignatureAsSymbolForFunction } from './types.js';
|
|
5
|
+
import { upperFirst } from 'lodash-es';
|
|
5
6
|
export function generateCallHandlers(fns, contractName) {
|
|
6
7
|
if (fns.length === 1) {
|
|
7
8
|
return generateCallHandler(fns[0], contractName);
|
|
@@ -15,7 +16,7 @@ export function codegenCallTraceTypes(fns) {
|
|
|
15
16
|
return fns.map((fn) => codegenCallTraceType(fn, getFullSignatureAsSymbolForFunction(fn))).join('\n');
|
|
16
17
|
}
|
|
17
18
|
function codegenCallTraceType(fn, overloadedName) {
|
|
18
|
-
const identifier =
|
|
19
|
+
const identifier = upperFirst(overloadedName ?? fn.name);
|
|
19
20
|
const components = fn.inputs.map((input, i) => ({ name: input.name ?? `arg${i.toString()}`, type: input.type }));
|
|
20
21
|
const arrayOutput = generateOutputComplexTypeAsArray(components, { useStructs: true });
|
|
21
22
|
const objectOutput = generateOutputComplexTypesAsObject(components, { useStructs: true }) || '{}';
|
|
@@ -31,18 +32,12 @@ function generateCallHandler(fn, contractName, overloadedName) {
|
|
|
31
32
|
const test = new TextEncoder().encode(signature);
|
|
32
33
|
const sighash = '0x' + sha3.keccak_256(test).substring(0, 8);
|
|
33
34
|
return `
|
|
34
|
-
onCall${
|
|
35
|
-
handler: (call: ${
|
|
35
|
+
onCall${upperFirst(overloadedName ?? fn.name)}(
|
|
36
|
+
handler: (call: ${upperFirst(overloadedName ?? fn.name)}CallTrace, ctx: ${contractName}Context) => void,
|
|
36
37
|
fetchConfig?: EthFetchConfig
|
|
37
38
|
) {
|
|
38
39
|
return super.onTrace("${sighash}", handler, fetchConfig);
|
|
39
40
|
}
|
|
40
41
|
`;
|
|
41
42
|
}
|
|
42
|
-
function capitalizeFirstChar(input) {
|
|
43
|
-
if (!input) {
|
|
44
|
-
return input;
|
|
45
|
-
}
|
|
46
|
-
return input[0].toUpperCase() + (input.length > 1 ? input.substring(1) : '');
|
|
47
|
-
}
|
|
48
43
|
//# sourceMappingURL=functions-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions-handler.js","sourceRoot":"","sources":["../../../src/eth/codegen/functions-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAChC,kCAAkC,GACnC,MAAM,yCAAyC,CAAA;AAChD,OAAO,IAAI,MAAM,SAAS,CAAA;AAC1B,OAAO,EAAuB,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAClE,OAAO,EAAE,mCAAmC,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"functions-handler.js","sourceRoot":"","sources":["../../../src/eth/codegen/functions-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAChC,kCAAkC,GACnC,MAAM,yCAAyC,CAAA;AAChD,OAAO,IAAI,MAAM,SAAS,CAAA;AAC1B,OAAO,EAAuB,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAClE,OAAO,EAAE,mCAAmC,EAAE,MAAM,YAAY,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC,MAAM,UAAU,oBAAoB,CAAC,GAA0B,EAAE,YAAoB;IACnF,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;KACjD;IAED,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,mCAAmC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACnH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAA0B;IAC9D,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;KACpC;IAED,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,mCAAmC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACtG,CAAC;AAED,SAAS,oBAAoB,CAAC,EAAuB,EAAE,cAAuB;IAC5E,MAAM,UAAU,GAAG,UAAU,CAAC,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,CAAA;IAExD,MAAM,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAChH,MAAM,WAAW,GAAG,gCAAgC,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IACtF,MAAM,YAAY,GAAG,kCAAkC,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAA;IAEjG,OAAO;qBACY,UAAU,cAAc,YAAY;;gBAEzC,UAAU,8BAA8B,WAAW,KAAK,UAAU;GAC/E,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAuB,EAAE,YAAoB,EAAE,cAAuB;IACjG,MAAM,SAAS,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAA;IACvC,gCAAgC;IAEhC,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAE5D,OAAO;UACC,UAAU,CAAC,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC;sBACzB,UAAU,CAAC,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,mBAAmB,YAAY;;;4BAG9D,OAAO;;CAElC,CAAA;AACD,CAAC","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'\nimport { upperFirst } from 'lodash-es'\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 = upperFirst(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${upperFirst(overloadedName ?? fn.name)}(\n handler: (call: ${upperFirst(overloadedName ?? fn.name)}CallTrace, ctx: ${contractName}Context) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"${sighash}\", handler, fetchConfig);\n }\n`\n}\n"]}
|
package/lib/eth/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/eth/context.ts"],"names":[],"mappings":"AAKA,OAAO,EAAU,eAAe,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/eth/context.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseContract, Transaction, TransactionReceipt } from 'ethers'\nimport { LogParams, BlockParams } from 'ethers/providers'\n\nimport { RecordMetaData } from '@sentio/protos'\nimport { Trace } from './trace.js'\nimport { Labels, normalizeLabels } from '../core/index.js'\nimport { BaseContext } from '../core/base-context.js'\n\nexport abstract class EthContext extends BaseContext {\n chainId: number\n address: string\n private readonly log?: LogParams\n block?: BlockParams\n private readonly trace?: Trace\n blockNumber: bigint | number\n transactionHash?: string\n transaction?: Transaction\n transactionReceipt?: TransactionReceipt\n timestamp: Date\n\n constructor(\n chainId: number,\n address: string,\n timestamp?: Date,\n block?: BlockParams,\n log?: LogParams,\n trace?: Trace,\n transaction?: Transaction,\n transactionReceipt?: TransactionReceipt\n ) {\n super()\n this.chainId = chainId\n this.log = log\n this.block = block\n this.trace = trace\n this.address = address\n this.transaction = transaction\n this.transactionReceipt = transactionReceipt\n this.timestamp = timestamp || new Date(0)\n if (log) {\n this.blockNumber = log.blockNumber\n this.transactionHash = log.transactionHash\n } else if (block) {\n this.blockNumber = block.number\n } else if (trace) {\n this.blockNumber = trace.blockNumber\n this.transactionHash = trace.transactionHash\n }\n }\n\n protected abstract getContractName(): string\n\n getMetaData(name: string, labels: Labels): RecordMetaData {\n if (this.log) {\n return {\n address: this.address,\n contractName: this.getContractName(),\n blockNumber: BigInt(this.blockNumber),\n transactionIndex: this.log.transactionIndex,\n transactionHash: this.transactionHash || '',\n logIndex: this.log.index,\n chainId: this.chainId.toString(),\n name: name,\n labels: normalizeLabels(labels),\n }\n }\n if (this.block) {\n return {\n address: this.address,\n contractName: this.getContractName(),\n blockNumber: BigInt(this.blockNumber),\n transactionIndex: -1,\n transactionHash: '',\n logIndex: -1,\n chainId: this.chainId.toString(),\n name: name,\n labels: normalizeLabels(labels),\n }\n }\n if (this.trace) {\n return {\n address: this.address,\n contractName: this.getContractName(),\n blockNumber: BigInt(this.blockNumber),\n transactionIndex: this.trace.transactionPosition,\n transactionHash: this.transactionHash || '',\n logIndex: -1,\n chainId: this.chainId.toString(),\n name: name,\n labels: normalizeLabels(labels),\n }\n }\n throw new Error(\"Invaid ctx argument can't happen\")\n }\n}\n\nexport class AccountContext extends EthContext {\n // constructor(chainId: number, address: string, block?: Block, log?: Log, trace?: Trace) {\n // super(chainId, address, new Date(0), block, log, trace)\n // }\n protected getContractName(): string {\n return 'account'\n }\n}\n\nexport class ContractContext<\n TContract extends BaseContract,\n TContractBoundView extends BoundContractView<TContract, ContractView<TContract>>\n> extends EthContext {\n contract: TContractBoundView\n contractName: string\n\n constructor(\n contractName: string,\n view: TContractBoundView,\n chainId: number,\n timestamp?: Date,\n block?: BlockParams,\n log?: LogParams,\n trace?: Trace,\n transaction?: Transaction,\n transactionReceipt?: TransactionReceipt\n ) {\n super(chainId, view.address, timestamp, block, log, trace, transaction, transactionReceipt)\n view.context = this\n this.contractName = contractName\n this.contract = view\n }\n\n protected getContractName(): string {\n return this.contractName\n }\n}\n\nexport class ContractView<TContract extends BaseContract> {\n protected contract: TContract\n\n constructor(contract: TContract) {\n this.contract = contract\n }\n\n get rawContract() {\n return this.contract\n }\n\n get provider() {\n if (this.contract.runner?.provider) {\n return this.contract.runner.provider\n }\n throw Error(\"Can't find provider for contract\" + this.contract.toString())\n }\n}\n\nexport class BoundContractView<TContract extends BaseContract, TContractView extends ContractView<TContract>> {\n protected view: TContractView\n readonly address: string\n // context will be set right after context creation (in context's constructor)\n context: ContractContext<TContract, BoundContractView<TContract, TContractView>>\n\n constructor(address: string, view: TContractView) {\n this.address = address\n this.view = view\n }\n\n get rawContract() {\n return this.view.rawContract\n }\n\n get provider() {\n return this.view.provider\n }\n\n get filters() {\n return this.view.rawContract.filters\n }\n}\n"]}
|
package/lib/eth/index.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ export { BaseProcessorTemplate } from './base-processor-template.js';
|
|
|
4
4
|
export { getProvider, DummyProvider } from './provider.js';
|
|
5
5
|
export type { TypedCallTrace, Trace } from './trace.js';
|
|
6
6
|
export * from './eth.js';
|
|
7
|
-
export * from './error.js';
|
|
8
7
|
export { BindOptions, AccountBindOptions } from './bind-options.js';
|
|
9
8
|
export { getProcessor, addProcessor, getContractByABI, addContractByABI } from './binds.js';
|
|
10
9
|
export { ContractContext, ContractView, BoundContractView } from './context.js';
|
package/lib/eth/index.js
CHANGED
|
@@ -3,7 +3,6 @@ export { GenericProcessor } from './generic-processor.js';
|
|
|
3
3
|
export { BaseProcessorTemplate } from './base-processor-template.js';
|
|
4
4
|
export { getProvider, DummyProvider } from './provider.js';
|
|
5
5
|
export * from './eth.js';
|
|
6
|
-
export * from './error.js';
|
|
7
6
|
export { BindOptions, AccountBindOptions } from './bind-options.js';
|
|
8
7
|
export { getProcessor, addProcessor, getContractByABI, addContractByABI } from './binds.js';
|
|
9
8
|
export { ContractContext, ContractView, BoundContractView } from './context.js';
|
package/lib/eth/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE1D,cAAc,UAAU,CAAA;AACxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE1D,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC3F,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAE/E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA","sourcesContent":["export { BaseProcessor } from './base-processor.js'\nexport { GenericProcessor } from './generic-processor.js'\nexport { BaseProcessorTemplate } from './base-processor-template.js'\nexport { getProvider, DummyProvider } from './provider.js'\nexport type { TypedCallTrace, Trace } from './trace.js'\nexport * from './eth.js'\nexport { BindOptions, AccountBindOptions } from './bind-options.js'\nexport { getProcessor, addProcessor, getContractByABI, addContractByABI } from './binds.js'\nexport { ContractContext, ContractView, BoundContractView } from './context.js'\n\nexport { EthPlugin } from './eth-plugin.js'\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InternalMoveFunction, InternalMoveModule, InternalMoveStruct } from './internal-models.js';
|
|
2
2
|
import { AccountRegister } from './account.js';
|
|
3
3
|
import { TypeDescriptor } from './types.js';
|
|
4
4
|
interface OutputFile {
|
|
@@ -17,28 +17,28 @@ export declare abstract class AbstractCodegen<ModuleTypes, NetworkType> {
|
|
|
17
17
|
PREFIX: string;
|
|
18
18
|
STRUCT_FIELD_NAME: string;
|
|
19
19
|
abstract fetchModules(account: string, network: NetworkType): Promise<ModuleTypes>;
|
|
20
|
-
abstract
|
|
21
|
-
abstract getEventStructs(module:
|
|
20
|
+
abstract toInternalModules(modules: ModuleTypes): InternalMoveModule[];
|
|
21
|
+
abstract getEventStructs(module: InternalMoveModule): Map<string, InternalMoveStruct>;
|
|
22
22
|
abstract getMeaningfulFunctionParams(params: TypeDescriptor[]): TypeDescriptor[];
|
|
23
23
|
readModulesFile(fullPath: string): any;
|
|
24
24
|
generate(srcDir: string, outputDir: string): Promise<void>;
|
|
25
25
|
generateForNetwork(srcDir: string, outputDir: string, network: NetworkType): Promise<void>;
|
|
26
26
|
generateNetworkOption(network: NetworkType): "TEST_NET" | "MAIN_NET";
|
|
27
|
-
generateModule(module:
|
|
28
|
-
generateStructs(module:
|
|
29
|
-
generateFunctionTypeParameters(func:
|
|
30
|
-
generateStructTypeParameters(struct:
|
|
31
|
-
generateCallArgsStructs(module:
|
|
32
|
-
generateOnEntryFunctions(module:
|
|
33
|
-
generateOnEvents(module:
|
|
27
|
+
generateModule(module: InternalMoveModule, network: NetworkType): string;
|
|
28
|
+
generateStructs(module: InternalMoveModule, struct: InternalMoveStruct, events: Set<string>): string;
|
|
29
|
+
generateFunctionTypeParameters(func: InternalMoveFunction): string;
|
|
30
|
+
generateStructTypeParameters(struct: InternalMoveStruct, useAny?: boolean): string;
|
|
31
|
+
generateCallArgsStructs(module: InternalMoveModule, func: InternalMoveFunction): string | undefined;
|
|
32
|
+
generateOnEntryFunctions(module: InternalMoveModule, func: InternalMoveFunction): string;
|
|
33
|
+
generateOnEvents(module: InternalMoveModule, struct: InternalMoveStruct): string;
|
|
34
34
|
}
|
|
35
35
|
export declare class AccountCodegen<ModuleType, NetworkType> {
|
|
36
|
-
modules:
|
|
36
|
+
modules: InternalMoveModule[];
|
|
37
37
|
config: Config<NetworkType>;
|
|
38
38
|
abi: ModuleType;
|
|
39
39
|
loader: AccountRegister;
|
|
40
40
|
moduleGen: AbstractCodegen<ModuleType, NetworkType>;
|
|
41
|
-
constructor(moduleGen: AbstractCodegen<ModuleType, NetworkType>, loader: AccountRegister, abi: ModuleType, modules:
|
|
41
|
+
constructor(moduleGen: AbstractCodegen<ModuleType, NetworkType>, loader: AccountRegister, abi: ModuleType, modules: InternalMoveModule[], config: Config<NetworkType>);
|
|
42
42
|
generate(): OutputFile[];
|
|
43
43
|
}
|
|
44
44
|
export {};
|
|
@@ -5,7 +5,7 @@ import chalk from 'chalk';
|
|
|
5
5
|
import { format } from 'prettier';
|
|
6
6
|
import { isFrameworkAccount, moduleQname, normalizeToJSName, SPLITTER } from './utils.js';
|
|
7
7
|
import { generateTypeForDescriptor } from './ts-type.js';
|
|
8
|
-
import { camelCase } from 'lodash-es';
|
|
8
|
+
import { camelCase, upperFirst } from 'lodash-es';
|
|
9
9
|
export class AbstractCodegen {
|
|
10
10
|
TEST_NET;
|
|
11
11
|
MAIN_NET;
|
|
@@ -42,7 +42,7 @@ export class AbstractCodegen {
|
|
|
42
42
|
}
|
|
43
43
|
const fullPath = path.resolve(srcDir, file);
|
|
44
44
|
const abi = this.readModulesFile(fullPath);
|
|
45
|
-
const modules = this.
|
|
45
|
+
const modules = this.toInternalModules(abi);
|
|
46
46
|
for (const module of modules) {
|
|
47
47
|
loader.register(module, path.basename(file, '.json'));
|
|
48
48
|
}
|
|
@@ -58,7 +58,7 @@ export class AbstractCodegen {
|
|
|
58
58
|
console.log(`download dependent module for account ${account} at ${network}`);
|
|
59
59
|
try {
|
|
60
60
|
const rawModules = await this.fetchModules(account, network);
|
|
61
|
-
const modules = this.
|
|
61
|
+
const modules = this.toInternalModules(rawModules);
|
|
62
62
|
fs.writeFileSync(path.resolve(srcDir, account + '.json'), JSON.stringify(rawModules, null, '\t'));
|
|
63
63
|
for (const module of modules) {
|
|
64
64
|
loader.register(module, account);
|
|
@@ -100,7 +100,7 @@ export class AbstractCodegen {
|
|
|
100
100
|
return 'MAIN_NET';
|
|
101
101
|
}
|
|
102
102
|
generateModule(module, network) {
|
|
103
|
-
const functions = module.
|
|
103
|
+
const functions = module.exposedFunctions
|
|
104
104
|
.map((f) => this.generateOnEntryFunctions(module, f))
|
|
105
105
|
.filter((s) => s !== '');
|
|
106
106
|
const eventStructs = this.getEventStructs(module);
|
|
@@ -109,7 +109,7 @@ export class AbstractCodegen {
|
|
|
109
109
|
.map((e) => this.generateOnEvents(module, e))
|
|
110
110
|
.filter((s) => s !== '');
|
|
111
111
|
const structs = module.structs.map((s) => this.generateStructs(module, s, eventTypes));
|
|
112
|
-
const callArgs = module.
|
|
112
|
+
const callArgs = module.exposedFunctions.map((f) => this.generateCallArgsStructs(module, f));
|
|
113
113
|
const moduleName = normalizeToJSName(module.name);
|
|
114
114
|
let processor = '';
|
|
115
115
|
if (functions.length > 0 || events.length > 0) {
|
|
@@ -120,15 +120,15 @@ export class AbstractCodegen {
|
|
|
120
120
|
}
|
|
121
121
|
static DEFAULT_OPTIONS: ${this.PREFIX}BindOptions = {
|
|
122
122
|
address: "${module.address}",
|
|
123
|
-
network: ${this.PREFIX}Network.${this.generateNetworkOption(network)}
|
|
123
|
+
network: ${this.PREFIX}Network.${this.generateNetworkOption(network)}
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
static bind(options: Partial<${this.PREFIX}BindOptions> = {}): ${moduleName} {
|
|
127
127
|
return new ${moduleName}({ ...${moduleName}.DEFAULT_OPTIONS, ...options })
|
|
128
128
|
}
|
|
129
|
-
|
|
129
|
+
|
|
130
130
|
${functions.join('\n')}
|
|
131
|
-
|
|
131
|
+
|
|
132
132
|
${events.join('\n')}
|
|
133
133
|
}
|
|
134
134
|
`;
|
|
@@ -138,7 +138,7 @@ export class AbstractCodegen {
|
|
|
138
138
|
|
|
139
139
|
export namespace ${moduleName} {
|
|
140
140
|
${structs.join('\n')}
|
|
141
|
-
|
|
141
|
+
|
|
142
142
|
${callArgs.join('\n')}
|
|
143
143
|
}
|
|
144
144
|
`;
|
|
@@ -154,26 +154,26 @@ export class AbstractCodegen {
|
|
|
154
154
|
let eventPayload = '';
|
|
155
155
|
if (events.has(moduleQname(module) + SPLITTER + struct.name)) {
|
|
156
156
|
eventPayload = `
|
|
157
|
-
export interface ${structName}Instance extends
|
|
157
|
+
export interface ${structName}Instance extends
|
|
158
158
|
TypedEventInstance<${structName}${genericStringAny}> {
|
|
159
159
|
${this.STRUCT_FIELD_NAME}_decoded: ${structName}${genericStringAny}
|
|
160
|
-
type_arguments: [${struct.
|
|
160
|
+
type_arguments: [${struct.typeParams.map((_) => 'string').join(', ')}]
|
|
161
161
|
}
|
|
162
162
|
`;
|
|
163
163
|
}
|
|
164
164
|
return `
|
|
165
165
|
export class ${structName}${genericString} {
|
|
166
166
|
static TYPE_QNAME = '${module.address}::${module.name}::${struct.name}'
|
|
167
|
-
${fields.join('\n')}
|
|
167
|
+
${fields.join('\n')}
|
|
168
168
|
}
|
|
169
|
-
|
|
169
|
+
|
|
170
170
|
${eventPayload}
|
|
171
171
|
`;
|
|
172
172
|
}
|
|
173
173
|
generateFunctionTypeParameters(func) {
|
|
174
174
|
let genericString = '';
|
|
175
|
-
if (func.
|
|
176
|
-
const params = func.
|
|
175
|
+
if (func.typeParams && func.typeParams.length > 0) {
|
|
176
|
+
const params = func.typeParams
|
|
177
177
|
.map((v, idx) => {
|
|
178
178
|
return `T${idx}=any`;
|
|
179
179
|
})
|
|
@@ -184,8 +184,8 @@ export class AbstractCodegen {
|
|
|
184
184
|
}
|
|
185
185
|
generateStructTypeParameters(struct, useAny = false) {
|
|
186
186
|
let genericString = '';
|
|
187
|
-
if (struct.
|
|
188
|
-
const params = struct.
|
|
187
|
+
if (struct.typeParams && struct.typeParams.length > 0) {
|
|
188
|
+
const params = struct.typeParams
|
|
189
189
|
.map((v, idx) => {
|
|
190
190
|
return useAny ? 'any' : 'T' + idx;
|
|
191
191
|
})
|
|
@@ -195,29 +195,29 @@ export class AbstractCodegen {
|
|
|
195
195
|
return genericString;
|
|
196
196
|
}
|
|
197
197
|
generateCallArgsStructs(module, func) {
|
|
198
|
-
if (!func.
|
|
198
|
+
if (!func.isEntry) {
|
|
199
199
|
return;
|
|
200
200
|
}
|
|
201
201
|
const fields = this.getMeaningfulFunctionParams(func.params).map((param) => {
|
|
202
202
|
return generateTypeForDescriptor(param, module.address, this.ADDRESS_TYPE);
|
|
203
203
|
});
|
|
204
|
-
const camelFuncName =
|
|
204
|
+
const camelFuncName = upperFirst(camelCase(func.name));
|
|
205
205
|
const genericString = this.generateFunctionTypeParameters(func);
|
|
206
206
|
return `
|
|
207
207
|
export interface ${camelFuncName}Payload${genericString}
|
|
208
208
|
extends TypedEntryFunctionPayload<[${fields.join(',')}]> {
|
|
209
209
|
arguments_decoded: [${fields.join(',')}],
|
|
210
|
-
type_arguments: [${func.
|
|
210
|
+
type_arguments: [${func.typeParams.map((_) => 'string').join(', ')}]
|
|
211
211
|
}
|
|
212
212
|
`;
|
|
213
213
|
}
|
|
214
214
|
generateOnEntryFunctions(module, func) {
|
|
215
|
-
if (!func.
|
|
215
|
+
if (!func.isEntry) {
|
|
216
216
|
return '';
|
|
217
217
|
}
|
|
218
218
|
// const genericString = generateFunctionTypeParameters(func)
|
|
219
219
|
const moduleName = normalizeToJSName(module.name);
|
|
220
|
-
const camelFuncName =
|
|
220
|
+
const camelFuncName = upperFirst(camelCase(func.name));
|
|
221
221
|
const source = `
|
|
222
222
|
onEntry${camelFuncName}(func: (call: ${moduleName}.${camelFuncName}Payload, ctx: ${this.PREFIX}Context) => void, filter?: CallFilter, fetchConfig?: MoveFetchConfig): ${moduleName} {
|
|
223
223
|
this.onEntryFunctionCall(func, {
|
|
@@ -276,8 +276,8 @@ export class AccountCodegen {
|
|
|
276
276
|
}
|
|
277
277
|
const imports = `
|
|
278
278
|
import { CallFilter } from "@sentio/sdk/move"
|
|
279
|
-
import {
|
|
280
|
-
MoveCoder, defaultMoveCoder, ${this.moduleGen.PREFIX}BindOptions, ${this.moduleGen.PREFIX}BaseProcessor,
|
|
279
|
+
import {
|
|
280
|
+
MoveCoder, defaultMoveCoder, ${this.moduleGen.PREFIX}BindOptions, ${this.moduleGen.PREFIX}BaseProcessor,
|
|
281
281
|
TypedEventInstance, ${this.moduleGen.PREFIX}Network, TypedEntryFunctionPayload,
|
|
282
282
|
${this.moduleGen.PREFIX}Context } from "@sentio/sdk/${this.moduleGen.PREFIX.toLowerCase()}"
|
|
283
283
|
import { MoveFetchConfig } from "@sentio/protos"
|
|
@@ -304,15 +304,15 @@ export class AccountCodegen {
|
|
|
304
304
|
/* Autogenerated file. Do not edit manually. */
|
|
305
305
|
/* tslint:disable */
|
|
306
306
|
/* eslint-disable */
|
|
307
|
-
|
|
307
|
+
|
|
308
308
|
/* Generated modules for account ${address} */
|
|
309
|
-
|
|
309
|
+
|
|
310
310
|
${imports}
|
|
311
|
-
|
|
311
|
+
|
|
312
312
|
${moduleImports.join('\n')}
|
|
313
|
-
|
|
313
|
+
|
|
314
314
|
${this.modules.map((m) => this.moduleGen.generateModule(m, this.config.network)).join('\n')}
|
|
315
|
-
|
|
315
|
+
|
|
316
316
|
const MODULES = JSON.parse('${JSON.stringify(this.abi)}')
|
|
317
317
|
|
|
318
318
|
export function loadAllTypes(coder: MoveCoder) {
|
|
@@ -321,7 +321,7 @@ export class AccountCodegen {
|
|
|
321
321
|
coder.load(m as any)
|
|
322
322
|
}
|
|
323
323
|
}
|
|
324
|
-
|
|
324
|
+
|
|
325
325
|
loadAllTypes(defaultMoveCoder())
|
|
326
326
|
`; // source
|
|
327
327
|
return [
|
|
@@ -332,10 +332,4 @@ export class AccountCodegen {
|
|
|
332
332
|
];
|
|
333
333
|
}
|
|
334
334
|
}
|
|
335
|
-
function capitalizeFirstChar(input) {
|
|
336
|
-
if (!input) {
|
|
337
|
-
return input;
|
|
338
|
-
}
|
|
339
|
-
return input[0].toUpperCase() + (input.length > 1 ? input.substring(1) : '');
|
|
340
|
-
}
|
|
341
335
|
//# sourceMappingURL=abstract-codegen.js.map
|