@sentio/sdk 1.19.5 → 1.20.0
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/aptos-processor.d.ts +7 -6
- package/lib/aptos/aptos-processor.js +5 -10
- package/lib/aptos/aptos-processor.js.map +1 -1
- package/lib/aptos/bind-options.d.ts +5 -0
- package/lib/aptos/bind-options.js +7 -1
- package/lib/aptos/bind-options.js.map +1 -1
- package/lib/aptos/context.d.ts +3 -3
- package/lib/aptos/context.js.map +1 -1
- package/lib/aptos/index.d.ts +2 -2
- package/lib/aptos/index.js +2 -1
- package/lib/aptos/index.js.map +1 -1
- package/lib/aptos-codegen/codegen.d.ts +11 -0
- package/lib/aptos-codegen/codegen.js +110 -0
- package/lib/aptos-codegen/codegen.js.map +1 -0
- package/lib/cli/build.d.ts +3 -3
- package/lib/cli/build.js +44 -22
- package/lib/cli/build.js.map +1 -1
- package/lib/cli/cli.js +11 -11
- package/lib/cli/cli.js.map +1 -1
- package/lib/cli/config.d.ts +0 -7
- package/lib/cli/config.js +9 -4
- package/lib/cli/config.js.map +1 -1
- package/lib/cli/upload.js +1 -1
- package/lib/cli/upload.js.map +1 -1
- package/lib/cli/webpack.config.js +1 -0
- package/lib/processor-runner.js +2 -2
- package/lib/processor-runner.js.map +1 -1
- package/lib/service.js +1 -1
- package/lib/service.js.map +1 -1
- package/lib/{cli/solana-code-gen.d.ts → test-abi-code-gen.d.ts} +0 -0
- package/lib/test-abi-code-gen.js +19 -0
- package/lib/test-abi-code-gen.js.map +1 -0
- package/lib/tests/aptos.test.js +4 -4
- package/lib/tests/aptos.test.js.map +1 -1
- package/lib/tests/souffl3.js +16 -23
- package/lib/tests/souffl3.js.map +1 -1
- package/lib/tests/types/aptos/account-4188c8.d.ts +27 -0
- package/lib/tests/types/aptos/account-4188c8.js +137 -0
- package/lib/tests/types/aptos/account-4188c8.js.map +1 -0
- package/lib/tests/types/{basic_1.d.ts → solana/basic_1.d.ts} +0 -0
- package/lib/tests/types/{basic_1.js → solana/basic_1.js} +0 -0
- package/lib/tests/types/solana/basic_1.js.map +1 -0
- package/lib/tests/types/{basic_1_processor.d.ts → solana/basic_1_processor.d.ts} +0 -0
- package/lib/tests/types/{basic_1_processor.js → solana/basic_1_processor.js} +0 -0
- package/lib/tests/types/solana/basic_1_processor.js.map +1 -0
- package/package.json +6 -5
- package/src/aptos/aptos-processor.ts +25 -18
- package/src/aptos/bind-options.ts +6 -0
- package/src/aptos/context.ts +3 -3
- package/src/aptos/index.ts +2 -5
- package/src/aptos-codegen/codegen.ts +128 -0
- package/src/aptos-codegen/codgen.test.ts +11 -0
- package/src/aptos-codegen/tsconfig.json +9 -0
- package/src/cli/build.ts +49 -20
- package/src/cli/cli.ts +12 -12
- package/src/cli/config.ts +9 -9
- package/src/cli/upload.ts +1 -1
- package/src/cli/webpack.config.js +1 -0
- package/src/processor-runner.ts +1 -1
- package/src/service.ts +2 -2
- package/src/test-abi-code-gen.ts +14 -0
- package/src/tests/abis/aptos/0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807.json +389 -0
- package/src/tests/aptos.test.ts +4 -4
- package/src/tests/souffl3.ts +20 -30
- package/src/tests/types/aptos/account-4188c8.ts +241 -0
- package/src/tests/types/{basic_1.ts → solana/basic_1.ts} +0 -0
- package/src/tests/types/{basic_1_processor.ts → solana/basic_1_processor.ts} +0 -0
- package/lib/cli/solana-code-gen.js +0 -19
- package/lib/cli/solana-code-gen.js.map +0 -1
- package/lib/tests/types/basic_1.js.map +0 -1
- package/lib/tests/types/basic_1_processor.js.map +0 -1
- package/src/cli/solana-code-gen.ts +0 -16
package/lib/tests/souffl3.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"souffl3.js","sourceRoot":"","sources":["../../src/tests/souffl3.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"souffl3.js","sourceRoot":"","sources":["../../src/tests/souffl3.ts"],"names":[],"mappings":";;AAAA,iEAAgF;AAEhF,oCAAmB,CAAC,IAAI,EAAE;KACvB,kBAAkB,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAChC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACpC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9D,CAAC,CAAC;KACD,qBAAqB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAClC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACpC,CAAC,CAAC;KACD,OAAO,CACN,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACb,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACrC,CAAC,EACD;IACE,IAAI,EAAE,yBAAyB;CAChC,CACF;KACA,aAAa,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC1B,IAAI,GAAG,CAAC,MAAM,EAAE;QACd,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE;YAC9B,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,0BAA0B,EAAE;gBACtD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;aACxE;SACF;KACF;AACH,CAAC,CAAC,CAAA;AAEJ,6BAAY,CAAC,IAAI,EAAE,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACjD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9D,CAAC,CAAC,CAAA","sourcesContent":["import { SouffleChefCampaign, CandyMachine } from './types/aptos/account-4188c8'\n\nSouffleChefCampaign.bind()\n .onEntryPullTokenV2((call, ctx) => {\n ctx.meter.Counter('call_num').add(1)\n ctx.meter.Counter('pulled').add(parseInt(call.arguments[4]))\n })\n .onEventBurnEnjoyEvent((evt, ctx) => {\n ctx.meter.Counter('burned').add(1)\n })\n .onEvent(\n (event, ctx) => {\n ctx.meter.Counter('evt_num').add(1)\n },\n {\n type: '0x1::coin::DepositEvent',\n }\n )\n .onTransaction((txn, ctx) => {\n if (txn.events) {\n for (const event of txn.events) {\n if (event && event.type === '0x3::token::DepositEvent') {\n ctx.meter.Counter('deposit_token_count').add(Number(event.data.amount))\n }\n }\n }\n })\n\nCandyMachine.bind().onEntryPullToken((call, ctx) => {\n ctx.meter.Counter('pulled').add(parseInt(call.arguments[3]))\n})\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { aptos } from "@sentio/sdk";
|
|
2
|
+
export declare class CandyMachine extends aptos.AptosBaseProcessor {
|
|
3
|
+
static DEFAULT_OPTIONS: aptos.NamedAptosBindOptions;
|
|
4
|
+
static bind(options?: aptos.NamedAptosBindOptions): CandyMachine;
|
|
5
|
+
onEntryAddAcl(func: (call: aptos.TransactionPayload_EntryFunctionPayload, ctx: aptos.AptosContext) => void): CandyMachine;
|
|
6
|
+
onEntryCreateCandyMachine(func: (call: aptos.TransactionPayload_EntryFunctionPayload, ctx: aptos.AptosContext) => void): CandyMachine;
|
|
7
|
+
onEntryCreateCollection(func: (call: aptos.TransactionPayload_EntryFunctionPayload, ctx: aptos.AptosContext) => void): CandyMachine;
|
|
8
|
+
onEntryPullToken(func: (call: aptos.TransactionPayload_EntryFunctionPayload, ctx: aptos.AptosContext) => void): CandyMachine;
|
|
9
|
+
onEntryUpdateTokenProperty(func: (call: aptos.TransactionPayload_EntryFunctionPayload, ctx: aptos.AptosContext) => void): CandyMachine;
|
|
10
|
+
}
|
|
11
|
+
export declare class SouffleChefCampaign extends aptos.AptosBaseProcessor {
|
|
12
|
+
static DEFAULT_OPTIONS: aptos.NamedAptosBindOptions;
|
|
13
|
+
static bind(options?: aptos.NamedAptosBindOptions): SouffleChefCampaign;
|
|
14
|
+
onEntryAddAcl(func: (call: aptos.TransactionPayload_EntryFunctionPayload, ctx: aptos.AptosContext) => void): SouffleChefCampaign;
|
|
15
|
+
onEntryAddBurnTokenRule(func: (call: aptos.TransactionPayload_EntryFunctionPayload, ctx: aptos.AptosContext) => void): SouffleChefCampaign;
|
|
16
|
+
onEntryBatchAddAcl(func: (call: aptos.TransactionPayload_EntryFunctionPayload, ctx: aptos.AptosContext) => void): SouffleChefCampaign;
|
|
17
|
+
onEntryBurnAndEnjoy(func: (call: aptos.TransactionPayload_EntryFunctionPayload, ctx: aptos.AptosContext) => void): SouffleChefCampaign;
|
|
18
|
+
onEntryClaim(func: (call: aptos.TransactionPayload_EntryFunctionPayload, ctx: aptos.AptosContext) => void): SouffleChefCampaign;
|
|
19
|
+
onEntryCreateCandyMachine(func: (call: aptos.TransactionPayload_EntryFunctionPayload, ctx: aptos.AptosContext) => void): SouffleChefCampaign;
|
|
20
|
+
onEntryCreateCollection(func: (call: aptos.TransactionPayload_EntryFunctionPayload, ctx: aptos.AptosContext) => void): SouffleChefCampaign;
|
|
21
|
+
onEntryPullToken(func: (call: aptos.TransactionPayload_EntryFunctionPayload, ctx: aptos.AptosContext) => void): SouffleChefCampaign;
|
|
22
|
+
onEntryPullTokenV2(func: (call: aptos.TransactionPayload_EntryFunctionPayload, ctx: aptos.AptosContext) => void): SouffleChefCampaign;
|
|
23
|
+
onEntryRemoveBurnTokenRule(func: (call: aptos.TransactionPayload_EntryFunctionPayload, ctx: aptos.AptosContext) => void): SouffleChefCampaign;
|
|
24
|
+
onEntryUpdateTokenProperty(func: (call: aptos.TransactionPayload_EntryFunctionPayload, ctx: aptos.AptosContext) => void): SouffleChefCampaign;
|
|
25
|
+
onEventBurnEnjoyEvent(func: (event: aptos.Event, ctx: aptos.AptosContext) => void): SouffleChefCampaign;
|
|
26
|
+
onEventPullTokenEvent(func: (event: aptos.Event, ctx: aptos.AptosContext) => void): SouffleChefCampaign;
|
|
27
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Autogenerated file. Do not edit manually. */
|
|
3
|
+
/* tslint:disable */
|
|
4
|
+
/* eslint-disable */
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SouffleChefCampaign = exports.CandyMachine = void 0;
|
|
7
|
+
/* Generated modules for account 0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807 */
|
|
8
|
+
const sdk_1 = require("@sentio/sdk");
|
|
9
|
+
class CandyMachine extends sdk_1.aptos.AptosBaseProcessor {
|
|
10
|
+
static DEFAULT_OPTIONS = {
|
|
11
|
+
address: "0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807",
|
|
12
|
+
network: sdk_1.aptos.AptosNetwork.TEST_NET,
|
|
13
|
+
};
|
|
14
|
+
static bind(options = CandyMachine.DEFAULT_OPTIONS) {
|
|
15
|
+
return new CandyMachine({ ...options, name: "CandyMachine" });
|
|
16
|
+
}
|
|
17
|
+
onEntryAddAcl(func) {
|
|
18
|
+
this.onEntryFunctionCall(func, {
|
|
19
|
+
function: "CandyMachine::add_acl",
|
|
20
|
+
});
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
onEntryCreateCandyMachine(func) {
|
|
24
|
+
this.onEntryFunctionCall(func, {
|
|
25
|
+
function: "CandyMachine::create_candy_machine",
|
|
26
|
+
});
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
onEntryCreateCollection(func) {
|
|
30
|
+
this.onEntryFunctionCall(func, {
|
|
31
|
+
function: "CandyMachine::create_collection",
|
|
32
|
+
});
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
onEntryPullToken(func) {
|
|
36
|
+
this.onEntryFunctionCall(func, {
|
|
37
|
+
function: "CandyMachine::pull_token",
|
|
38
|
+
});
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
onEntryUpdateTokenProperty(func) {
|
|
42
|
+
this.onEntryFunctionCall(func, {
|
|
43
|
+
function: "CandyMachine::update_token_property",
|
|
44
|
+
});
|
|
45
|
+
return this;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.CandyMachine = CandyMachine;
|
|
49
|
+
class SouffleChefCampaign extends sdk_1.aptos.AptosBaseProcessor {
|
|
50
|
+
static DEFAULT_OPTIONS = {
|
|
51
|
+
address: "0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807",
|
|
52
|
+
network: sdk_1.aptos.AptosNetwork.TEST_NET,
|
|
53
|
+
};
|
|
54
|
+
static bind(options = SouffleChefCampaign.DEFAULT_OPTIONS) {
|
|
55
|
+
return new SouffleChefCampaign({ ...options, name: "SouffleChefCampaign" });
|
|
56
|
+
}
|
|
57
|
+
onEntryAddAcl(func) {
|
|
58
|
+
this.onEntryFunctionCall(func, {
|
|
59
|
+
function: "SouffleChefCampaign::add_acl",
|
|
60
|
+
});
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
onEntryAddBurnTokenRule(func) {
|
|
64
|
+
this.onEntryFunctionCall(func, {
|
|
65
|
+
function: "SouffleChefCampaign::add_burn_token_rule",
|
|
66
|
+
});
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
onEntryBatchAddAcl(func) {
|
|
70
|
+
this.onEntryFunctionCall(func, {
|
|
71
|
+
function: "SouffleChefCampaign::batch_add_acl",
|
|
72
|
+
});
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
onEntryBurnAndEnjoy(func) {
|
|
76
|
+
this.onEntryFunctionCall(func, {
|
|
77
|
+
function: "SouffleChefCampaign::burn_and_enjoy",
|
|
78
|
+
});
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
onEntryClaim(func) {
|
|
82
|
+
this.onEntryFunctionCall(func, {
|
|
83
|
+
function: "SouffleChefCampaign::claim",
|
|
84
|
+
});
|
|
85
|
+
return this;
|
|
86
|
+
}
|
|
87
|
+
onEntryCreateCandyMachine(func) {
|
|
88
|
+
this.onEntryFunctionCall(func, {
|
|
89
|
+
function: "SouffleChefCampaign::create_candy_machine",
|
|
90
|
+
});
|
|
91
|
+
return this;
|
|
92
|
+
}
|
|
93
|
+
onEntryCreateCollection(func) {
|
|
94
|
+
this.onEntryFunctionCall(func, {
|
|
95
|
+
function: "SouffleChefCampaign::create_collection",
|
|
96
|
+
});
|
|
97
|
+
return this;
|
|
98
|
+
}
|
|
99
|
+
onEntryPullToken(func) {
|
|
100
|
+
this.onEntryFunctionCall(func, {
|
|
101
|
+
function: "SouffleChefCampaign::pull_token",
|
|
102
|
+
});
|
|
103
|
+
return this;
|
|
104
|
+
}
|
|
105
|
+
onEntryPullTokenV2(func) {
|
|
106
|
+
this.onEntryFunctionCall(func, {
|
|
107
|
+
function: "SouffleChefCampaign::pull_token_v2",
|
|
108
|
+
});
|
|
109
|
+
return this;
|
|
110
|
+
}
|
|
111
|
+
onEntryRemoveBurnTokenRule(func) {
|
|
112
|
+
this.onEntryFunctionCall(func, {
|
|
113
|
+
function: "SouffleChefCampaign::remove_burn_token_rule",
|
|
114
|
+
});
|
|
115
|
+
return this;
|
|
116
|
+
}
|
|
117
|
+
onEntryUpdateTokenProperty(func) {
|
|
118
|
+
this.onEntryFunctionCall(func, {
|
|
119
|
+
function: "SouffleChefCampaign::update_token_property",
|
|
120
|
+
});
|
|
121
|
+
return this;
|
|
122
|
+
}
|
|
123
|
+
onEventBurnEnjoyEvent(func) {
|
|
124
|
+
this.onEvent(func, {
|
|
125
|
+
type: "0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807::SouffleChefCampaign::BurnEnjoyEvent",
|
|
126
|
+
});
|
|
127
|
+
return this;
|
|
128
|
+
}
|
|
129
|
+
onEventPullTokenEvent(func) {
|
|
130
|
+
this.onEvent(func, {
|
|
131
|
+
type: "0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807::SouffleChefCampaign::PullTokenEvent",
|
|
132
|
+
});
|
|
133
|
+
return this;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.SouffleChefCampaign = SouffleChefCampaign;
|
|
137
|
+
//# sourceMappingURL=account-4188c8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-4188c8.js","sourceRoot":"","sources":["../../../../src/tests/types/aptos/account-4188c8.ts"],"names":[],"mappings":"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","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\n/* Generated modules for account 0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807 */\n\nimport { aptos } from \"@sentio/sdk\";\n\nexport class CandyMachine extends aptos.AptosBaseProcessor {\n static DEFAULT_OPTIONS: aptos.NamedAptosBindOptions = {\n address:\n \"0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807\",\n network: aptos.AptosNetwork.TEST_NET,\n };\n static bind(options = CandyMachine.DEFAULT_OPTIONS): CandyMachine {\n return new CandyMachine({ ...options, name: \"CandyMachine\" });\n }\n\n onEntryAddAcl(\n func: (\n call: aptos.TransactionPayload_EntryFunctionPayload,\n ctx: aptos.AptosContext\n ) => void\n ): CandyMachine {\n this.onEntryFunctionCall(func, {\n function: \"CandyMachine::add_acl\",\n });\n return this;\n }\n\n onEntryCreateCandyMachine(\n func: (\n call: aptos.TransactionPayload_EntryFunctionPayload,\n ctx: aptos.AptosContext\n ) => void\n ): CandyMachine {\n this.onEntryFunctionCall(func, {\n function: \"CandyMachine::create_candy_machine\",\n });\n return this;\n }\n\n onEntryCreateCollection(\n func: (\n call: aptos.TransactionPayload_EntryFunctionPayload,\n ctx: aptos.AptosContext\n ) => void\n ): CandyMachine {\n this.onEntryFunctionCall(func, {\n function: \"CandyMachine::create_collection\",\n });\n return this;\n }\n\n onEntryPullToken(\n func: (\n call: aptos.TransactionPayload_EntryFunctionPayload,\n ctx: aptos.AptosContext\n ) => void\n ): CandyMachine {\n this.onEntryFunctionCall(func, {\n function: \"CandyMachine::pull_token\",\n });\n return this;\n }\n\n onEntryUpdateTokenProperty(\n func: (\n call: aptos.TransactionPayload_EntryFunctionPayload,\n ctx: aptos.AptosContext\n ) => void\n ): CandyMachine {\n this.onEntryFunctionCall(func, {\n function: \"CandyMachine::update_token_property\",\n });\n return this;\n }\n}\n\nexport class SouffleChefCampaign extends aptos.AptosBaseProcessor {\n static DEFAULT_OPTIONS: aptos.NamedAptosBindOptions = {\n address:\n \"0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807\",\n network: aptos.AptosNetwork.TEST_NET,\n };\n static bind(\n options = SouffleChefCampaign.DEFAULT_OPTIONS\n ): SouffleChefCampaign {\n return new SouffleChefCampaign({ ...options, name: \"SouffleChefCampaign\" });\n }\n\n onEntryAddAcl(\n func: (\n call: aptos.TransactionPayload_EntryFunctionPayload,\n ctx: aptos.AptosContext\n ) => void\n ): SouffleChefCampaign {\n this.onEntryFunctionCall(func, {\n function: \"SouffleChefCampaign::add_acl\",\n });\n return this;\n }\n\n onEntryAddBurnTokenRule(\n func: (\n call: aptos.TransactionPayload_EntryFunctionPayload,\n ctx: aptos.AptosContext\n ) => void\n ): SouffleChefCampaign {\n this.onEntryFunctionCall(func, {\n function: \"SouffleChefCampaign::add_burn_token_rule\",\n });\n return this;\n }\n\n onEntryBatchAddAcl(\n func: (\n call: aptos.TransactionPayload_EntryFunctionPayload,\n ctx: aptos.AptosContext\n ) => void\n ): SouffleChefCampaign {\n this.onEntryFunctionCall(func, {\n function: \"SouffleChefCampaign::batch_add_acl\",\n });\n return this;\n }\n\n onEntryBurnAndEnjoy(\n func: (\n call: aptos.TransactionPayload_EntryFunctionPayload,\n ctx: aptos.AptosContext\n ) => void\n ): SouffleChefCampaign {\n this.onEntryFunctionCall(func, {\n function: \"SouffleChefCampaign::burn_and_enjoy\",\n });\n return this;\n }\n\n onEntryClaim(\n func: (\n call: aptos.TransactionPayload_EntryFunctionPayload,\n ctx: aptos.AptosContext\n ) => void\n ): SouffleChefCampaign {\n this.onEntryFunctionCall(func, {\n function: \"SouffleChefCampaign::claim\",\n });\n return this;\n }\n\n onEntryCreateCandyMachine(\n func: (\n call: aptos.TransactionPayload_EntryFunctionPayload,\n ctx: aptos.AptosContext\n ) => void\n ): SouffleChefCampaign {\n this.onEntryFunctionCall(func, {\n function: \"SouffleChefCampaign::create_candy_machine\",\n });\n return this;\n }\n\n onEntryCreateCollection(\n func: (\n call: aptos.TransactionPayload_EntryFunctionPayload,\n ctx: aptos.AptosContext\n ) => void\n ): SouffleChefCampaign {\n this.onEntryFunctionCall(func, {\n function: \"SouffleChefCampaign::create_collection\",\n });\n return this;\n }\n\n onEntryPullToken(\n func: (\n call: aptos.TransactionPayload_EntryFunctionPayload,\n ctx: aptos.AptosContext\n ) => void\n ): SouffleChefCampaign {\n this.onEntryFunctionCall(func, {\n function: \"SouffleChefCampaign::pull_token\",\n });\n return this;\n }\n\n onEntryPullTokenV2(\n func: (\n call: aptos.TransactionPayload_EntryFunctionPayload,\n ctx: aptos.AptosContext\n ) => void\n ): SouffleChefCampaign {\n this.onEntryFunctionCall(func, {\n function: \"SouffleChefCampaign::pull_token_v2\",\n });\n return this;\n }\n\n onEntryRemoveBurnTokenRule(\n func: (\n call: aptos.TransactionPayload_EntryFunctionPayload,\n ctx: aptos.AptosContext\n ) => void\n ): SouffleChefCampaign {\n this.onEntryFunctionCall(func, {\n function: \"SouffleChefCampaign::remove_burn_token_rule\",\n });\n return this;\n }\n\n onEntryUpdateTokenProperty(\n func: (\n call: aptos.TransactionPayload_EntryFunctionPayload,\n ctx: aptos.AptosContext\n ) => void\n ): SouffleChefCampaign {\n this.onEntryFunctionCall(func, {\n function: \"SouffleChefCampaign::update_token_property\",\n });\n return this;\n }\n\n onEventBurnEnjoyEvent(\n func: (event: aptos.Event, ctx: aptos.AptosContext) => void\n ): SouffleChefCampaign {\n this.onEvent(func, {\n type: \"0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807::SouffleChefCampaign::BurnEnjoyEvent\",\n });\n return this;\n }\n\n onEventPullTokenEvent(\n func: (event: aptos.Event, ctx: aptos.AptosContext) => void\n ): SouffleChefCampaign {\n this.onEvent(func, {\n type: \"0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807::SouffleChefCampaign::PullTokenEvent\",\n });\n return this;\n }\n}\n"]}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basic_1.js","sourceRoot":"","sources":["../../../../src/tests/types/solana/basic_1.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IACzB,SAAS,EAAE,OAAO;IAClB,MAAM,EAAE,SAAS;IACjB,cAAc,EAAE;QACd;YACE,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE;gBACV;oBACE,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,IAAI;iBACjB;gBACD;oBACE,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,IAAI;iBACjB;gBACD;oBACE,MAAM,EAAE,eAAe;oBACvB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBAClB;aACF;YACD,MAAM,EAAE;gBACN;oBACE,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,KAAK;iBACd;aACF;SACF;QACD;YACE,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE;gBACV;oBACE,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,KAAK;iBAClB;aACF;YACD,MAAM,EAAE;gBACN;oBACE,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,KAAK;iBACd;aACF;SACF;KACF;IACD,UAAU,EAAE;QACV;YACE,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE;gBACN,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE;oBACR;wBACE,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,KAAK;qBACd;iBACF;aACF;SACF;KACF;CACF,CAAA","sourcesContent":["export const basic_1_idl = {\n \"version\": \"0.1.0\",\n \"name\": \"basic_1\",\n \"instructions\": [\n {\n \"name\": \"initialize\",\n \"accounts\": [\n {\n \"name\": \"myAccount\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"user\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"data\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"update\",\n \"accounts\": [\n {\n \"name\": \"myAccount\",\n \"isMut\": true,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"data\",\n \"type\": \"u64\"\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"MyAccount\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"data\",\n \"type\": \"u64\"\n }\n ]\n }\n }\n ]\n}\n"]}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basic_1_processor.js","sourceRoot":"","sources":["../../../../src/tests/types/solana/basic_1_processor.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAmF;AACnF,qCAAmF;AACnF,uCAAuC;AACvC,gDAAuB;AAGvB,MAAa,eAAgB,SAAQ,yBAAmB;IACtD,MAAM,CAAC,IAAI,CAAC,OAA0B;QACpC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAC5B,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAA;SACxB;QACD,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IACrC,CAAC;IAED,iBAAiB,GAAmD,CAAC,cAAc,EAAE,EAAE;QACrF,MAAM,gBAAgB,GAAG,IAAI,8BAAqB,CAAC,qBAAkB,CAAC,CAAA;QACtE,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA;QACpF,OAAO,UAAU,CAAA;IACnB,CAAC,CAAA;IAGD,YAAY,CAAC,OAAyD;QACpE,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,GAAgB,EAAE,GAAG,EAAE,EAAE;YACzD,IAAI,GAAG,EAAE;gBACP,OAAO,CAAC,GAAG,CAAC,IAAoB,EAAE,GAAG,CAAC,CAAA;aACvC;QACH,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ,CAAC,OAAyD;QAChE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,GAAgB,EAAE,GAAG,EAAE,EAAE;YACrD,IAAI,GAAG,EAAE;gBACP,OAAO,CAAC,GAAG,CAAC,IAAoB,EAAE,GAAG,CAAC,CAAA;aACvC;QACH,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;CAEF;AAjCD,0CAiCC","sourcesContent":["import { BorshInstructionCoder, Instruction, Idl, BN } from '@project-serum/anchor'\nimport { SolanaBaseProcessor, SolanaContext, SolanaBindOptions } from \"@sentio/sdk\"\nimport { basic_1_idl } from \"./basic_1\"\nimport bs58 from 'bs58'\nimport { PublicKey } from '@solana/web3.js'\n\nexport class Basic1Processor extends SolanaBaseProcessor {\n static bind(options: SolanaBindOptions): Basic1Processor {\n if (options && !options.name) {\n options.name = 'Basic1'\n }\n return new Basic1Processor(options)\n }\n\n decodeInstruction: (rawInstruction: string) => Instruction | null = (rawInstruction) => {\n const instructionCoder = new BorshInstructionCoder(basic_1_idl as Idl)\n const decodedIns = instructionCoder.decode(Buffer.from(bs58.decode(rawInstruction)))\n return decodedIns\n }\n\n \n onInitialize(handler: (args: { data: BN }, ctx: SolanaContext) => void): Basic1Processor {\n this.onInstruction('initialize', (ins: Instruction, ctx) => {\n if (ins) {\n handler(ins.data as { data: BN }, ctx)\n }\n })\n return this\n }\n \n onUpdate(handler: (args: { data: BN }, ctx: SolanaContext) => void): Basic1Processor {\n this.onInstruction('update', (ins: Instruction, ctx) => {\n if (ins) {\n handler(ins.data as { data: BN }, ctx)\n }\n })\n return this\n }\n \n}\n "]}
|
package/package.json
CHANGED
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentio/sdk",
|
|
3
3
|
"license": "Apache-2.0",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.20.0",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"compile_target": "yarn tsc -b src/target-ethers-sentio/tsconfig.json",
|
|
7
7
|
"compile": "tsc -p . && cp src/cli/webpack.config.js lib/cli && cp src/utils/*.csv lib/utils",
|
|
8
8
|
"build": "yarn gen && yarn compile",
|
|
9
9
|
"start_ts": "ts-node --files src/processor-runner.ts ../examples/x2y2/src/processor.ts",
|
|
10
|
-
"start": "ts-node --files src/processor-runner.ts ../examples/
|
|
11
|
-
"start_js": "node lib/processor.js ../examples/
|
|
10
|
+
"start": "ts-node --files src/processor-runner.ts ../examples/aptos/dist/lib.js",
|
|
11
|
+
"start_js": "node lib/processor-runner.js ../examples/aptos/dist/lib.js",
|
|
12
12
|
"ts-start": "ts-node --files src/processor-runner.ts ./src/anyswap/src/processor.ts",
|
|
13
13
|
"cli": "ts-node src/cli/cli.ts",
|
|
14
14
|
"test": "jest",
|
|
15
15
|
"gen": "yarn compile_target && yarn gen_bultin_evm && yarn gen_test_abi",
|
|
16
|
-
"gen_test_abi": "
|
|
16
|
+
"gen_test_abi": "ts-node src/test-abi-code-gen.ts src/tests/abis src/tests/types",
|
|
17
17
|
"gen_bultin_evm": "typechain --target lib/target-ethers-sentio --out-dir src/builtin/internal 'src/abis/*.json'",
|
|
18
|
-
"gen_solana_abi": "ts-node src/cli/solana-code-gen.ts src/tests types",
|
|
19
18
|
"postbuild": "echo || clear-package-json package.json -o ./lib/package.json && cp release.config.js ./lib",
|
|
20
19
|
"docs": "typedoc --options typedoc.json"
|
|
21
20
|
},
|
|
@@ -59,7 +58,9 @@
|
|
|
59
58
|
"chai": "^4.3.6",
|
|
60
59
|
"clean-publish": "^4.0.1",
|
|
61
60
|
"conventional-changelog-conventionalcommits": "^5.0.0",
|
|
61
|
+
"jest": "^29.0.3",
|
|
62
62
|
"semantic-release": "^19.0.5",
|
|
63
|
+
"ts-jest": "^29.0.3",
|
|
63
64
|
"ts-node": "^10.9.1",
|
|
64
65
|
"tsconfig-paths": "^4.0.0",
|
|
65
66
|
"typedoc": "^0.23.15",
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { ProcessResult } from '../gen'
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
AptosBindOptions,
|
|
4
|
+
AptosContext,
|
|
5
|
+
AptosNetwork,
|
|
6
|
+
Transaction_UserTransaction,
|
|
7
|
+
TransactionPayload_EntryFunctionPayload,
|
|
8
|
+
} from '.'
|
|
3
9
|
import type { Event as OldEvent } from 'aptos/src/generated'
|
|
4
10
|
|
|
5
11
|
import Long from 'long'
|
|
@@ -20,7 +26,7 @@ export interface EventFilter {
|
|
|
20
26
|
|
|
21
27
|
export interface CallFilter {
|
|
22
28
|
function: string
|
|
23
|
-
typeArguments
|
|
29
|
+
typeArguments?: string[]
|
|
24
30
|
}
|
|
25
31
|
|
|
26
32
|
class EventHandler {
|
|
@@ -30,7 +36,7 @@ class EventHandler {
|
|
|
30
36
|
|
|
31
37
|
class CallHandler {
|
|
32
38
|
filters: CallFilter[]
|
|
33
|
-
handler: (call:
|
|
39
|
+
handler: (call: Transaction_UserTransaction) => Promise<ProcessResult>
|
|
34
40
|
}
|
|
35
41
|
|
|
36
42
|
export class AptosBaseProcessor {
|
|
@@ -45,7 +51,13 @@ export class AptosBaseProcessor {
|
|
|
45
51
|
global.PROCESSOR_STATE.aptosProcessors.push(this)
|
|
46
52
|
}
|
|
47
53
|
|
|
48
|
-
|
|
54
|
+
static bind(options: AptosBindOptions): AptosBaseProcessor {
|
|
55
|
+
return new AptosBaseProcessor(options)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
public onTransaction(
|
|
59
|
+
handler: (transaction: Transaction_UserTransaction, ctx: AptosContext) => void
|
|
60
|
+
): AptosBaseProcessor {
|
|
49
61
|
const address = this.config.address
|
|
50
62
|
this.callHandlers.push({
|
|
51
63
|
handler: async function (tx) {
|
|
@@ -64,7 +76,10 @@ export class AptosBaseProcessor {
|
|
|
64
76
|
return this
|
|
65
77
|
}
|
|
66
78
|
|
|
67
|
-
public onEvent(
|
|
79
|
+
public onEvent(
|
|
80
|
+
handler: (event: Event, ctx: AptosContext) => void,
|
|
81
|
+
filter: EventFilter | EventFilter[]
|
|
82
|
+
): AptosBaseProcessor {
|
|
68
83
|
let _filters: EventFilter[] = []
|
|
69
84
|
|
|
70
85
|
if (Array.isArray(filter)) {
|
|
@@ -89,12 +104,13 @@ export class AptosBaseProcessor {
|
|
|
89
104
|
},
|
|
90
105
|
filters: _filters,
|
|
91
106
|
})
|
|
107
|
+
return this
|
|
92
108
|
}
|
|
93
109
|
|
|
94
|
-
public
|
|
95
|
-
handler: (call:
|
|
110
|
+
public onEntryFunctionCall(
|
|
111
|
+
handler: (call: TransactionPayload_EntryFunctionPayload, ctx: AptosContext) => void,
|
|
96
112
|
filter: CallFilter | CallFilter[]
|
|
97
|
-
) {
|
|
113
|
+
): AptosBaseProcessor {
|
|
98
114
|
let _filters: CallFilter[] = []
|
|
99
115
|
|
|
100
116
|
if (Array.isArray(filter)) {
|
|
@@ -109,7 +125,7 @@ export class AptosBaseProcessor {
|
|
|
109
125
|
handler: async function (tx) {
|
|
110
126
|
const ctx = new AptosContext(address, Long.fromString(tx.version), tx)
|
|
111
127
|
if (tx) {
|
|
112
|
-
const payload = tx.payload as
|
|
128
|
+
const payload = tx.payload as TransactionPayload_EntryFunctionPayload
|
|
113
129
|
handler(payload, ctx)
|
|
114
130
|
}
|
|
115
131
|
return {
|
|
@@ -134,16 +150,7 @@ export class AptosBaseProcessor {
|
|
|
134
150
|
address: options.address,
|
|
135
151
|
network: options.network || AptosNetwork.TEST_NET,
|
|
136
152
|
}
|
|
137
|
-
return this
|
|
138
153
|
}
|
|
139
|
-
//
|
|
140
|
-
// public endBlock(endBlock: Long | number) {
|
|
141
|
-
// if (typeof endBlock === 'number') {
|
|
142
|
-
// endBlock = Long.fromNumber(endBlock)
|
|
143
|
-
// }
|
|
144
|
-
// this.config.endSeqNumber = endBlock
|
|
145
|
-
// return this
|
|
146
|
-
// }
|
|
147
154
|
|
|
148
155
|
getChainId(): string {
|
|
149
156
|
switch (this.config.network) {
|
package/src/aptos/context.ts
CHANGED
|
@@ -4,14 +4,14 @@ import { Labels } from '../core/metadata'
|
|
|
4
4
|
import { APTOS_TESTNET_ID } from '../utils/chain'
|
|
5
5
|
import { normalizeLabels } from '../core/meter'
|
|
6
6
|
import { BaseContext } from '../core/context'
|
|
7
|
-
import {
|
|
7
|
+
import { Transaction_UserTransaction } from './'
|
|
8
8
|
|
|
9
9
|
export class AptosContext extends BaseContext {
|
|
10
10
|
address: string
|
|
11
11
|
blockNumber: Long
|
|
12
|
-
transaction:
|
|
12
|
+
transaction: Transaction_UserTransaction
|
|
13
13
|
|
|
14
|
-
constructor(address: string, slot: Long, transaction?:
|
|
14
|
+
constructor(address: string, slot: Long, transaction?: Transaction_UserTransaction) {
|
|
15
15
|
super()
|
|
16
16
|
this.address = address
|
|
17
17
|
this.blockNumber = slot
|
package/src/aptos/index.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
export type {
|
|
2
|
-
Transaction_UserTransaction as UserTransaction,
|
|
3
|
-
TransactionPayload_EntryFunctionPayload as FunctionPayload,
|
|
4
|
-
} from 'aptos/src/generated'
|
|
1
|
+
export type { Transaction_UserTransaction, TransactionPayload_EntryFunctionPayload } from 'aptos/src/generated'
|
|
5
2
|
export type { Event, CallFilter, EventFilter } from './aptos-processor'
|
|
6
3
|
export { AptosBaseProcessor } from './aptos-processor'
|
|
7
4
|
export { AptosContext } from './context'
|
|
8
|
-
export { AptosBindOptions, AptosNetwork } from './bind-options'
|
|
5
|
+
export { AptosBindOptions, NamedAptosBindOptions, AptosNetwork } from './bind-options'
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { MoveModuleBytecode } from 'aptos/src/generated'
|
|
2
|
+
import fs from 'fs'
|
|
3
|
+
import path from 'path'
|
|
4
|
+
import { MoveFunction, MoveModule } from 'aptos/src/generated'
|
|
5
|
+
import { MoveStruct } from 'aptos/src/generated/models/MoveStruct'
|
|
6
|
+
import prettier from 'prettier'
|
|
7
|
+
|
|
8
|
+
interface Config {
|
|
9
|
+
outputDir: string
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export class AptosCodegen {
|
|
13
|
+
modules: MoveModuleBytecode[]
|
|
14
|
+
config: Config
|
|
15
|
+
|
|
16
|
+
constructor(srcFile: string, config: Config) {
|
|
17
|
+
const json = fs.readFileSync(srcFile, 'utf-8')
|
|
18
|
+
this.modules = JSON.parse(json)
|
|
19
|
+
this.config = config
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
generate() {
|
|
23
|
+
if (!this.modules) {
|
|
24
|
+
return
|
|
25
|
+
}
|
|
26
|
+
let address: string | undefined
|
|
27
|
+
for (const module of this.modules) {
|
|
28
|
+
if (module.abi && module.abi.address) {
|
|
29
|
+
address = module.abi.address
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (!address) {
|
|
33
|
+
return
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const imports = `import { aptos } from "@sentio/sdk"`
|
|
37
|
+
|
|
38
|
+
let source = `
|
|
39
|
+
/* Autogenerated file. Do not edit manually. */
|
|
40
|
+
/* tslint:disable */
|
|
41
|
+
/* eslint-disable */
|
|
42
|
+
|
|
43
|
+
/* Generated modules for account ${address} */
|
|
44
|
+
|
|
45
|
+
${imports}
|
|
46
|
+
|
|
47
|
+
${this.modules.map(generateModule).join('\n')}
|
|
48
|
+
` // source
|
|
49
|
+
|
|
50
|
+
source = prettier.format(source, { parser: 'typescript' })
|
|
51
|
+
fs.writeFileSync(path.join(this.config.outputDir, 'account-' + address.slice(2, 8) + '.ts'), source)
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function generateModule(moduleByteCode: MoveModuleBytecode) {
|
|
56
|
+
if (!moduleByteCode.abi) {
|
|
57
|
+
return ''
|
|
58
|
+
}
|
|
59
|
+
const module = moduleByteCode.abi
|
|
60
|
+
|
|
61
|
+
const functions = module.exposed_functions.map((f) => generateOnEntryFunctions(module, f)).filter((s) => s !== '')
|
|
62
|
+
const events = module.structs.map((e) => generateOnEvents(module, e)).filter((s) => s !== '')
|
|
63
|
+
|
|
64
|
+
return `
|
|
65
|
+
export class ${module.name} extends aptos.AptosBaseProcessor {
|
|
66
|
+
static DEFAULT_OPTIONS: aptos.NamedAptosBindOptions = {
|
|
67
|
+
address: "${module.address}",
|
|
68
|
+
network: aptos.AptosNetwork.TEST_NET
|
|
69
|
+
}
|
|
70
|
+
static bind(options = ${module.name}.DEFAULT_OPTIONS): ${module.name} {
|
|
71
|
+
return new ${module.name}({ ...options, name: "${module.name}" })
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
${functions.join('\n')}
|
|
75
|
+
|
|
76
|
+
${events.join('\n')}
|
|
77
|
+
}`
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function generateOnEntryFunctions(module: MoveModule, func: MoveFunction) {
|
|
81
|
+
if (!func.is_entry) {
|
|
82
|
+
return ''
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const camelFuncName = capitalizeFirstChar(camelize(func.name))
|
|
86
|
+
const source = `
|
|
87
|
+
onEntry${camelFuncName}(func: (call: aptos.TransactionPayload_EntryFunctionPayload, ctx: aptos.AptosContext) => void): ${module.name} {
|
|
88
|
+
this.onEntryFunctionCall(func, {
|
|
89
|
+
function: '${module.name}::${func.name}'
|
|
90
|
+
})
|
|
91
|
+
return this
|
|
92
|
+
}`
|
|
93
|
+
|
|
94
|
+
return source
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function generateOnEvents(module: MoveModule, struct: MoveStruct): string {
|
|
98
|
+
// for struct that has drop + store
|
|
99
|
+
if (!struct.abilities.includes('drop') || !struct.abilities.includes('store') || !struct.name.endsWith('Event')) {
|
|
100
|
+
return ''
|
|
101
|
+
}
|
|
102
|
+
const source = `
|
|
103
|
+
onEvent${struct.name}(func: (event: aptos.Event, ctx: aptos.AptosContext) => void): ${module.name} {
|
|
104
|
+
this.onEvent(func, {
|
|
105
|
+
type: '${module.address}::${module.name}::${struct.name}'
|
|
106
|
+
})
|
|
107
|
+
return this
|
|
108
|
+
}
|
|
109
|
+
`
|
|
110
|
+
return source
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function camelize(input: string): string {
|
|
114
|
+
return input
|
|
115
|
+
.split('_')
|
|
116
|
+
.reduce(
|
|
117
|
+
(res, word, i) =>
|
|
118
|
+
i === 0 ? word.toLowerCase() : `${res}${word.charAt(0).toUpperCase()}${word.substr(1).toLowerCase()}`,
|
|
119
|
+
''
|
|
120
|
+
)
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function capitalizeFirstChar(input: string): string {
|
|
124
|
+
if (!input) {
|
|
125
|
+
return input
|
|
126
|
+
}
|
|
127
|
+
return input[0].toUpperCase() + (input.length > 1 ? input.substring(1) : '')
|
|
128
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import path from 'path'
|
|
2
|
+
import { AptosCodegen } from './codegen'
|
|
3
|
+
|
|
4
|
+
describe('Test Aptos Example', () => {
|
|
5
|
+
test.skip('code gen for aptos', async () => {
|
|
6
|
+
const filename = path.join(__dirname, '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807')
|
|
7
|
+
|
|
8
|
+
const codegen = new AptosCodegen(filename, { outputDir: path.join(__dirname, '..') })
|
|
9
|
+
codegen.generate()
|
|
10
|
+
})
|
|
11
|
+
})
|