@sentio/sdk 0.1.12 → 0.2.14

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.
Files changed (73) hide show
  1. package/dist/base-processor-template.d.ts +19 -0
  2. package/dist/base-processor-template.js +80 -0
  3. package/dist/base-processor-template.js.map +1 -0
  4. package/dist/base-processor.d.ts +7 -18
  5. package/dist/base-processor.js +69 -28
  6. package/dist/base-processor.js.map +1 -1
  7. package/dist/bind-options.d.ts +16 -0
  8. package/dist/bind-options.js +20 -0
  9. package/dist/bind-options.js.map +1 -0
  10. package/dist/chainmap.d.ts +4 -0
  11. package/dist/chainmap.js +95 -0
  12. package/dist/chainmap.js.map +1 -0
  13. package/dist/cli/build.d.ts +3 -1
  14. package/dist/cli/build.js +100 -17
  15. package/dist/cli/build.js.map +1 -1
  16. package/dist/cli/cli.d.ts +1 -2
  17. package/dist/cli/cli.js +9 -15
  18. package/dist/cli/cli.js.map +1 -1
  19. package/dist/cli/config.d.ts +7 -1
  20. package/dist/cli/config.js +4 -1
  21. package/dist/cli/config.js.map +1 -1
  22. package/dist/cli/solana-code-gen.d.ts +2 -0
  23. package/dist/cli/solana-code-gen.js +19 -0
  24. package/dist/cli/solana-code-gen.js.map +1 -0
  25. package/dist/cli/upload.js +4 -2
  26. package/dist/cli/upload.js.map +1 -1
  27. package/dist/gen/processor/protos/processor.d.ts +50 -3
  28. package/dist/gen/processor/protos/processor.js +244 -52
  29. package/dist/gen/processor/protos/processor.js.map +1 -1
  30. package/dist/index.d.ts +3 -0
  31. package/dist/index.js +7 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/numberish.test.d.ts +1 -0
  34. package/dist/numberish.test.js +9 -0
  35. package/dist/numberish.test.js.map +1 -0
  36. package/dist/provider.d.ts +1 -1
  37. package/dist/provider.js +3 -0
  38. package/dist/provider.js.map +1 -1
  39. package/dist/service.d.ts +4 -1
  40. package/dist/service.js +90 -47
  41. package/dist/service.js.map +1 -1
  42. package/dist/solana-processor.d.ts +6 -6
  43. package/dist/solana-processor.js +5 -20
  44. package/dist/solana-processor.js.map +1 -1
  45. package/dist/target-ethers-sentio/codegen.js +46 -15
  46. package/dist/target-ethers-sentio/codegen.js.map +1 -1
  47. package/dist/test-case/clean-test.d.ts +1 -0
  48. package/dist/test-case/clean-test.js +11 -0
  49. package/dist/test-case/clean-test.js.map +1 -0
  50. package/dist/test-case/erc20.js +22 -6
  51. package/dist/test-case/erc20.js.map +1 -1
  52. package/dist/test-case/erc20.test.d.ts +1 -0
  53. package/dist/test-case/erc20.test.js +173 -0
  54. package/dist/test-case/erc20.test.js.map +1 -0
  55. package/dist/test-case/mirrorworld.d.ts +1 -4
  56. package/dist/test-case/mirrorworld.js +37 -57
  57. package/dist/test-case/mirrorworld.js.map +1 -1
  58. package/dist/test-case/solana.test.d.ts +1 -0
  59. package/dist/test-case/solana.test.js +56 -0
  60. package/dist/test-case/solana.test.js.map +1 -0
  61. package/dist/test-case/types/erc20_processor.d.ts +9 -8
  62. package/dist/test-case/types/erc20_processor.js +38 -14
  63. package/dist/test-case/types/erc20_processor.js.map +1 -1
  64. package/dist/test-case/types/game_wallet_processor.d.ts +107 -0
  65. package/dist/test-case/types/game_wallet_processor.js +102 -0
  66. package/dist/test-case/types/game_wallet_processor.js.map +1 -0
  67. package/dist/test-case/types/wormhole_processor.d.ts +16 -0
  68. package/dist/test-case/types/wormhole_processor.js +192 -0
  69. package/dist/test-case/types/wormhole_processor.js.map +1 -0
  70. package/dist/test-case/wormhole-token-bridge.d.ts +1 -0
  71. package/dist/test-case/wormhole-token-bridge.js +7 -0
  72. package/dist/test-case/wormhole-token-bridge.js.map +1 -0
  73. package/package.json +6 -4
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.GameWalletProcessor = void 0;
7
+ const anchor_1 = require("@project-serum/anchor");
8
+ const sdk_1 = require("@sentio/sdk");
9
+ const game_wallet_1 = require("./game_wallet");
10
+ const bs58_1 = __importDefault(require("bs58"));
11
+ class GameWalletProcessor extends sdk_1.SolanaBaseProcessor {
12
+ static bind(address, endpoint, name = 'GameWallet') {
13
+ return new GameWalletProcessor(name, address, endpoint);
14
+ }
15
+ decodeInstruction(ins) {
16
+ const instructionCoder = new anchor_1.BorshInstructionCoder(game_wallet_1.game_wallet_idl);
17
+ const decodedIns = instructionCoder.decode(Buffer.from(bs58_1.default.decode(ins)));
18
+ return decodedIns;
19
+ }
20
+ onInitializeTokenConfig(handler) {
21
+ this.onInstruction('initializeTokenConfig', (ins, ctx) => {
22
+ if (ins) {
23
+ handler(ins.data, ctx);
24
+ }
25
+ });
26
+ return this;
27
+ }
28
+ onDeposit(handler) {
29
+ this.onInstruction('deposit', (ins, ctx) => {
30
+ if (ins) {
31
+ handler(ins.data, ctx);
32
+ }
33
+ });
34
+ return this;
35
+ }
36
+ onWithdraw(handler) {
37
+ this.onInstruction('withdraw', (ins, ctx) => {
38
+ if (ins) {
39
+ handler(ins.data, ctx);
40
+ }
41
+ });
42
+ return this;
43
+ }
44
+ onSpend(handler) {
45
+ this.onInstruction('spend', (ins, ctx) => {
46
+ if (ins) {
47
+ handler(ins.data, ctx);
48
+ }
49
+ });
50
+ return this;
51
+ }
52
+ onSpendWithoutUser(handler) {
53
+ this.onInstruction('spendWithoutUser', (ins, ctx) => {
54
+ if (ins) {
55
+ handler(ins.data, ctx);
56
+ }
57
+ });
58
+ return this;
59
+ }
60
+ onAddDistributeSupply(handler) {
61
+ this.onInstruction('addDistributeSupply', (ins, ctx) => {
62
+ if (ins) {
63
+ handler(ins.data, ctx);
64
+ }
65
+ });
66
+ return this;
67
+ }
68
+ onDistribute(handler) {
69
+ this.onInstruction('distribute', (ins, ctx) => {
70
+ if (ins) {
71
+ handler(ins.data, ctx);
72
+ }
73
+ });
74
+ return this;
75
+ }
76
+ onDistributeWithoutUser(handler) {
77
+ this.onInstruction('distributeWithoutUser', (ins, ctx) => {
78
+ if (ins) {
79
+ handler(ins.data, ctx);
80
+ }
81
+ });
82
+ return this;
83
+ }
84
+ onUpdateTokenConfig(handler) {
85
+ this.onInstruction('updateTokenConfig', (ins, ctx) => {
86
+ if (ins) {
87
+ handler(ins.data, ctx);
88
+ }
89
+ });
90
+ return this;
91
+ }
92
+ onUpdateUserTokenConfig(handler) {
93
+ this.onInstruction('updateUserTokenConfig', (ins, ctx) => {
94
+ if (ins) {
95
+ handler(ins.data, ctx);
96
+ }
97
+ });
98
+ return this;
99
+ }
100
+ }
101
+ exports.GameWalletProcessor = GameWalletProcessor;
102
+ //# sourceMappingURL=game_wallet_processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game_wallet_processor.js","sourceRoot":"","sources":["../../../src/test-case/types/game_wallet_processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { Instruction } from '@project-serum/anchor';
2
+ import { SolanaBaseProcessor, SolanaContext } from "@sentio/sdk";
3
+ export declare class TokenBridgeProcessor extends SolanaBaseProcessor {
4
+ static bind(address: string, endpoint: string, name?: string): TokenBridgeProcessor;
5
+ private readonly transferDataValues;
6
+ private readonly transferDataWithPayloadValues;
7
+ private readonly attestTokenValues;
8
+ private readonly initializeDataValues;
9
+ decodeInstruction(ins: string): Instruction | null;
10
+ onInitialize(handler: (args: any, ctx: SolanaContext) => void): TokenBridgeProcessor;
11
+ onAttestToken(handler: (args: any, ctx: SolanaContext) => void): TokenBridgeProcessor;
12
+ onTransferWrapped(handler: (args: any, ctx: SolanaContext) => void): TokenBridgeProcessor;
13
+ onTransferNativeWithPayload(handler: (args: any, ctx: SolanaContext) => void): TokenBridgeProcessor;
14
+ onTransferWrappedWithPaylod(handler: (args: any, ctx: SolanaContext) => void): TokenBridgeProcessor;
15
+ onTransferNative(handler: (args: any, ctx: SolanaContext) => void): TokenBridgeProcessor;
16
+ }
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.TokenBridgeProcessor = void 0;
30
+ const borsh = __importStar(require("@project-serum/borsh"));
31
+ const sdk_1 = require("@sentio/sdk");
32
+ const bs58_1 = __importDefault(require("bs58"));
33
+ // https://github.com/certusone/wormhole/blob/8818d4b8f0471095dd48fa6f5da9c315cbfc9b52/solana/modules/token_bridge/program/src/lib.rs#L100
34
+ var TokenBrigeInstruction;
35
+ (function (TokenBrigeInstruction) {
36
+ TokenBrigeInstruction[TokenBrigeInstruction["Initialize"] = 0] = "Initialize";
37
+ TokenBrigeInstruction[TokenBrigeInstruction["AttestToken"] = 1] = "AttestToken";
38
+ TokenBrigeInstruction[TokenBrigeInstruction["CompleteNative"] = 2] = "CompleteNative";
39
+ TokenBrigeInstruction[TokenBrigeInstruction["CompleteWrapped"] = 3] = "CompleteWrapped";
40
+ TokenBrigeInstruction[TokenBrigeInstruction["TransferWrapped"] = 4] = "TransferWrapped";
41
+ TokenBrigeInstruction[TokenBrigeInstruction["TransferNative"] = 5] = "TransferNative";
42
+ TokenBrigeInstruction[TokenBrigeInstruction["RegisterChain"] = 6] = "RegisterChain";
43
+ TokenBrigeInstruction[TokenBrigeInstruction["CreateWrapped"] = 7] = "CreateWrapped";
44
+ TokenBrigeInstruction[TokenBrigeInstruction["UpgradeContract"] = 8] = "UpgradeContract";
45
+ TokenBrigeInstruction[TokenBrigeInstruction["CompleteNativeWithPayload"] = 9] = "CompleteNativeWithPayload";
46
+ TokenBrigeInstruction[TokenBrigeInstruction["CompleteWrappedWithPayload"] = 10] = "CompleteWrappedWithPayload";
47
+ TokenBrigeInstruction[TokenBrigeInstruction["TransferWrappedWithPayload"] = 11] = "TransferWrappedWithPayload";
48
+ TokenBrigeInstruction[TokenBrigeInstruction["TransferNativeWithPayload"] = 12] = "TransferNativeWithPayload";
49
+ })(TokenBrigeInstruction || (TokenBrigeInstruction = {}));
50
+ class TokenBridgeProcessor extends sdk_1.SolanaBaseProcessor {
51
+ static bind(address, endpoint, name = 'Wormhole') {
52
+ return new TokenBridgeProcessor(name, address, endpoint);
53
+ }
54
+ transferDataValues = [
55
+ borsh.u32('nonce'),
56
+ borsh.u64('amount'),
57
+ borsh.u64('fee'),
58
+ borsh.array(borsh.u8(undefined), 32, 'target_address'),
59
+ borsh.u16('target_chain'),
60
+ ];
61
+ // https://github.com/certusone/wormhole/blob/8818d4b8f0471095dd48fa6f5da9c315cbfc9b52/solana/modules/token_bridge/program/src/api/transfer_payload.rs#L170
62
+ transferDataWithPayloadValues = [
63
+ borsh.u32('nonce'),
64
+ borsh.u64('amount'),
65
+ borsh.array(borsh.u8(undefined), 32, 'target_address'),
66
+ borsh.u16('target_chain'),
67
+ borsh.vecU8('payload'),
68
+ borsh.option(borsh.publicKey(undefined), 'cpi_program_id')
69
+ ];
70
+ attestTokenValues = [
71
+ borsh.u32('nonce'),
72
+ ];
73
+ initializeDataValues = [
74
+ borsh.publicKey('bridge'),
75
+ ];
76
+ decodeInstruction(ins) {
77
+ const u8Arr = bs58_1.default.decode(ins);
78
+ if (u8Arr.length === 0) {
79
+ return null;
80
+ }
81
+ let data;
82
+ // wormhole pass intruction's enum value as its first instrcution data
83
+ switch (u8Arr[0]) {
84
+ case TokenBrigeInstruction.Initialize:
85
+ return {
86
+ data: '',
87
+ name: TokenBrigeInstruction[TokenBrigeInstruction.Initialize]
88
+ };
89
+ case TokenBrigeInstruction.TransferNative:
90
+ // struct is defined at: https://github.com/certusone/wormhole/blob/8818d4b8f0471095dd48fa6f5da9c315cbfc9b52/solana/modules/token_bridge/program/src/api/transfer.rs#L295
91
+ data = borsh.struct(this.transferDataValues, 'TransferNativeData').decode(Buffer.from(u8Arr.slice(1)));
92
+ return {
93
+ data,
94
+ name: TokenBrigeInstruction[TokenBrigeInstruction.TransferNative]
95
+ };
96
+ case TokenBrigeInstruction.TransferWrapped:
97
+ // stuct is defined at: https://github.com/certusone/wormhole/blob/8818d4b8f0471095dd48fa6f5da9c315cbfc9b52/solana/modules/token_bridge/program/src/api/transfer.rs#L295
98
+ data = borsh.struct(this.transferDataValues, 'TransferWrappedData').decode(Buffer.from(u8Arr.slice(1)));
99
+ return {
100
+ data,
101
+ name: TokenBrigeInstruction[TokenBrigeInstruction.TransferWrapped]
102
+ };
103
+ case TokenBrigeInstruction.TransferNativeWithPayload:
104
+ data = borsh.struct(this.transferDataWithPayloadValues, 'TransferNativeWithPayloadData').decode(Buffer.from(u8Arr.slice(1)));
105
+ return {
106
+ data,
107
+ name: TokenBrigeInstruction[TokenBrigeInstruction.TransferNativeWithPayload]
108
+ };
109
+ case TokenBrigeInstruction.TransferWrappedWithPayload:
110
+ data = borsh.struct(this.transferDataWithPayloadValues, 'TransferWrappedWithPayloadData').decode(Buffer.from(u8Arr.slice(1)));
111
+ return {
112
+ data,
113
+ name: TokenBrigeInstruction[TokenBrigeInstruction.TransferWrappedWithPayload]
114
+ };
115
+ case TokenBrigeInstruction.Initialize:
116
+ data = borsh.struct(this.initializeDataValues, 'InitializeData').decode(Buffer.from(u8Arr.slice(1)));
117
+ return {
118
+ data,
119
+ name: TokenBrigeInstruction[TokenBrigeInstruction.Initialize]
120
+ };
121
+ case TokenBrigeInstruction.AttestToken:
122
+ data = borsh.struct(this.attestTokenValues, 'AttestTokenData').decode(Buffer.from(u8Arr.slice(1)));
123
+ return {
124
+ data,
125
+ name: TokenBrigeInstruction[TokenBrigeInstruction.AttestToken]
126
+ };
127
+ case TokenBrigeInstruction.CompleteNative:
128
+ case TokenBrigeInstruction.CompleteNativeWithPayload:
129
+ case TokenBrigeInstruction.CompleteWrapped:
130
+ case TokenBrigeInstruction.CompleteWrappedWithPayload:
131
+ case TokenBrigeInstruction.CreateWrapped:
132
+ case TokenBrigeInstruction.UpgradeContract:
133
+ case TokenBrigeInstruction.RegisterChain:
134
+ return {
135
+ data: '',
136
+ name: TokenBrigeInstruction[u8Arr[0]]
137
+ };
138
+ default:
139
+ return null;
140
+ }
141
+ }
142
+ onInitialize(handler) {
143
+ this.onInstruction('Initialize', (ins, ctx) => {
144
+ if (ins) {
145
+ handler(ins.data, ctx);
146
+ }
147
+ });
148
+ return this;
149
+ }
150
+ onAttestToken(handler) {
151
+ this.onInstruction('AttestToken', (ins, ctx) => {
152
+ if (ins) {
153
+ handler(ins.data, ctx);
154
+ }
155
+ });
156
+ return this;
157
+ }
158
+ onTransferWrapped(handler) {
159
+ this.onInstruction('TransferWrapped', (ins, ctx) => {
160
+ if (ins) {
161
+ handler(ins.data, ctx);
162
+ }
163
+ });
164
+ return this;
165
+ }
166
+ onTransferNativeWithPayload(handler) {
167
+ this.onInstruction('TransferNativeWithPayload', (ins, ctx) => {
168
+ if (ins) {
169
+ handler(ins.data, ctx);
170
+ }
171
+ });
172
+ return this;
173
+ }
174
+ onTransferWrappedWithPaylod(handler) {
175
+ this.onInstruction('TransferWrappedWithPaylod', (ins, ctx) => {
176
+ if (ins) {
177
+ handler(ins.data, ctx);
178
+ }
179
+ });
180
+ return this;
181
+ }
182
+ onTransferNative(handler) {
183
+ this.onInstruction('TransferNative', (ins, ctx) => {
184
+ if (ins) {
185
+ handler(ins.data, ctx);
186
+ }
187
+ });
188
+ return this;
189
+ }
190
+ }
191
+ exports.TokenBridgeProcessor = TokenBridgeProcessor;
192
+ //# sourceMappingURL=wormhole_processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wormhole_processor.js","sourceRoot":"","sources":["../../../src/test-case/types/wormhole_processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const wormhole_processor_1 = require("./types/wormhole_processor");
4
+ wormhole_processor_1.TokenBridgeProcessor.bind('wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb', 'https://api.mainnet-beta.solana.com').onTransferNative((args, ctx) => {
5
+ ctx.meter.Counter('total_transfer_amount').add(args.amount);
6
+ });
7
+ //# sourceMappingURL=wormhole-token-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wormhole-token-bridge.js","sourceRoot":"","sources":["../../src/test-case/wormhole-token-bridge.ts"],"names":[],"mappings":";;AAAA,mEAAiE;AAEjE,yCAAoB,CAAC,IAAI,CACvB,6CAA6C,EAC7C,qCAAqC,CACtC,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAC/B,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAC7D,CAAC,CAAC,CAAA"}
package/package.json CHANGED
@@ -12,18 +12,21 @@
12
12
  "ts-start": "ts-node --files src/processor.ts src/test-case/erc20.ts",
13
13
  "cli": "yarn build && node dist/cli/cli.js",
14
14
  "test": "ts-mocha --paths src/**/*.test.ts src/*.test.ts",
15
- "gen_test_abi": "typechain --target dist/target-ethers-sentio --out-dir src/test-case/types 'src/test-case/abis/*.json'"
15
+ "gen_test_abi": "yarn gen_evm_abi && yarn gen_solana_abi",
16
+ "gen_evm_abi": "typechain --target dist/target-ethers-sentio --out-dir src/test-case/types 'src/test-case/abis/*.json'",
17
+ "gen_solana_abi": "ts-node src/cli/solana-code-gen.ts src/test-case types"
16
18
  },
17
19
  "bin": {
18
20
  "processor": "./dist/processor.js",
19
21
  "sentio": "./dist/cli/cli.js"
20
22
  },
21
- "version": "0.1.12",
23
+ "version": "0.2.14",
22
24
  "dependencies": {
23
25
  "@ethersproject/providers": "^5.6.7",
24
26
  "@project-serum/anchor": "^0.25.0",
25
27
  "@solana/web3.js": "^1.47.3",
26
28
  "@typechain/ethers-v5": "^10.0.0",
29
+ "@types/node-fetch": "^2.6.2",
27
30
  "bn.js": "^5.2.1",
28
31
  "bs58": "^5.0.0",
29
32
  "command-line-args": "^5.2.1",
@@ -34,7 +37,7 @@
34
37
  "google-protobuf": "^3.15.8",
35
38
  "js-yaml": "^4.1.0",
36
39
  "log-timestamp": "^0.3.0",
37
- "nice-grpc": "^1.2.0",
40
+ "nice-grpc": "^2.0.0",
38
41
  "node-fetch": "2",
39
42
  "ts-loader": "^9.3.0",
40
43
  "typechain": "^8.0.0",
@@ -54,7 +57,6 @@
54
57
  "@types/mkdirp": "^1.0.2",
55
58
  "@types/mocha": "^9.1.1",
56
59
  "@types/node": "^18.0.4",
57
- "@types/node-fetch": "^2.6.2",
58
60
  "chai": "^4.3.6",
59
61
  "mocha": "^10.0.0",
60
62
  "ts-mocha": "^10.0.0",