@sentio/sdk 1.27.2 → 1.27.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. package/lib/aptos/types.js +4 -3
  2. package/lib/aptos/types.js.map +1 -1
  3. package/lib/{tests/aptos.test.d.ts → aptos/types.test.d.ts} +0 -0
  4. package/lib/aptos/types.test.js.map +1 -0
  5. package/lib/aptos/utils.d.ts +2 -1
  6. package/lib/aptos/utils.js +9 -1
  7. package/lib/aptos/utils.js.map +1 -1
  8. package/lib/aptos-codegen/codegen.js +1 -7
  9. package/lib/aptos-codegen/codegen.js.map +1 -1
  10. package/lib/processor-runner.js +2 -2
  11. package/lib/processor-runner.js.map +1 -1
  12. package/package.json +4 -4
  13. package/src/aptos/types.ts +5 -4
  14. package/src/aptos/utils.ts +9 -1
  15. package/src/aptos-codegen/codegen.ts +2 -9
  16. package/src/processor-runner.ts +2 -2
  17. package/lib/core/generic-processor.test.js +0 -58
  18. package/lib/core/meter.test.js +0 -21
  19. package/lib/core/numberish.test.js +0 -70
  20. package/lib/tests/aptos.test.js +0 -304
  21. package/lib/tests/aptos.test.js.map +0 -1
  22. package/lib/tests/codegen.test.d.ts +0 -1
  23. package/lib/tests/codegen.test.js +0 -49
  24. package/lib/tests/codegen.test.js.map +0 -1
  25. package/lib/tests/erc20-template.test.d.ts +0 -1
  26. package/lib/tests/erc20-template.test.js +0 -56
  27. package/lib/tests/erc20-template.test.js.map +0 -1
  28. package/lib/tests/erc20.d.ts +0 -1
  29. package/lib/tests/erc20.js +0 -54
  30. package/lib/tests/erc20.js.map +0 -1
  31. package/lib/tests/erc20.test.d.ts +0 -1
  32. package/lib/tests/erc20.test.js +0 -94
  33. package/lib/tests/erc20.test.js.map +0 -1
  34. package/lib/tests/error-capture.test.d.ts +0 -1
  35. package/lib/tests/error-capture.test.js +0 -76
  36. package/lib/tests/error-capture.test.js.map +0 -1
  37. package/lib/tests/logger.test.d.ts +0 -1
  38. package/lib/tests/logger.test.js +0 -40
  39. package/lib/tests/logger.test.js.map +0 -1
  40. package/lib/tests/solana.test.d.ts +0 -1
  41. package/lib/tests/solana.test.js +0 -77
  42. package/lib/tests/solana.test.js.map +0 -1
  43. package/lib/tests/souffl3.d.ts +0 -1
  44. package/lib/tests/souffl3.js +0 -46
  45. package/lib/tests/souffl3.js.map +0 -1
  46. package/lib/tests/sui.test.d.ts +0 -1
  47. package/lib/tests/sui.test.js +0 -193
  48. package/lib/tests/sui.test.js.map +0 -1
  49. package/lib/tests/types/aptos/soffl3.d.ts +0 -786
  50. package/lib/tests/types/aptos/soffl3.js +0 -559
  51. package/lib/tests/types/aptos/soffl3.js.map +0 -1
  52. package/lib/tests/types/aptos/souffle.d.ts +0 -348
  53. package/lib/tests/types/aptos/souffle.js +0 -303
  54. package/lib/tests/types/aptos/souffle.js.map +0 -1
  55. package/lib/tests/types/solana/basic_1.d.ts +0 -26
  56. package/lib/tests/types/solana/basic_1.js +0 -66
  57. package/lib/tests/types/solana/basic_1.js.map +0 -1
  58. package/lib/tests/types/solana/basic_1_processor.d.ts +0 -13
  59. package/lib/tests/types/solana/basic_1_processor.js +0 -41
  60. package/lib/tests/types/solana/basic_1_processor.js.map +0 -1
  61. package/lib/tests/wormhole-token-bridge.d.ts +0 -1
  62. package/lib/tests/wormhole-token-bridge.js +0 -22
  63. package/lib/tests/wormhole-token-bridge.js.map +0 -1
  64. package/lib/utils/dex-price.test.js +0 -22
  65. package/lib/utils/erc20.test.js +0 -23
  66. package/src/aptos-codegen/typegen.test.ts +0 -44
  67. package/src/core/generic-processor.test.ts +0 -69
  68. package/src/core/meter.test.ts +0 -23
  69. package/src/core/numberish.test.ts +0 -82
  70. package/src/tests/abis/aptos/soffl3.json +0 -1411
  71. package/src/tests/abis/aptos/souffle.json +0 -389
  72. package/src/tests/abis/evm/CommitmentPool.json +0 -1034
  73. package/src/tests/abis/evm/Seaport.json +0 -2595
  74. package/src/tests/abis/evm/anyswapRouter.json +0 -490
  75. package/src/tests/abis/solana/basic_1.json +0 -62
  76. package/src/tests/aptos.test.ts +0 -324
  77. package/src/tests/codegen.test.ts +0 -29
  78. package/src/tests/erc20-template.test.ts +0 -60
  79. package/src/tests/erc20.test.ts +0 -115
  80. package/src/tests/erc20.ts +0 -60
  81. package/src/tests/error-capture.test.ts +0 -82
  82. package/src/tests/logger.test.ts +0 -46
  83. package/src/tests/solana.test.ts +0 -79
  84. package/src/tests/souffl3.ts +0 -52
  85. package/src/tests/sui.test.ts +0 -197
  86. package/src/tests/types/aptos/soffl3.ts +0 -1377
  87. package/src/tests/types/aptos/souffle.ts +0 -698
  88. package/src/tests/types/solana/basic_1.ts +0 -62
  89. package/src/tests/types/solana/basic_1_processor.ts +0 -41
  90. package/src/tests/wormhole-token-bridge.ts +0 -21
  91. package/src/types/global.d.ts +0 -5
  92. package/src/utils/dex-price.test.ts +0 -25
  93. package/src/utils/erc20.test.ts +0 -26
  94. package/templates/aptos/.gitignore +0 -107
  95. package/templates/aptos/src/processor.test.ts +0 -14
  96. package/templates/evm/.gitignore +0 -107
  97. package/templates/evm/src/processor.test.ts +0 -29
  98. package/templates/raw/.gitignore +0 -107
  99. package/templates/raw/src/processor.test.ts +0 -14
@@ -1,304 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_1 = require("chai");
4
- const util_1 = require("util");
5
- const __1 = require("..");
6
- const testing_1 = require("../testing");
7
- describe('Test Aptos Example', () => {
8
- const service = new testing_1.TestProcessorServer(() => {
9
- require('./souffl3');
10
- });
11
- beforeAll(async () => {
12
- await service.start({ templateInstances: [] });
13
- });
14
- test('check configuration ', async () => {
15
- const config = await service.getConfig({});
16
- (0, chai_1.expect)(config.contractConfigs).length(4);
17
- });
18
- test('Check souffl3 transaction dispatch', async () => {
19
- const request = {
20
- bindings: [
21
- {
22
- data: {
23
- raw: new util_1.TextEncoder().encode(JSON.stringify(testData)),
24
- },
25
- handlerId: 1,
26
- handlerType: __1.HandlerType.APT_CALL,
27
- },
28
- ],
29
- };
30
- const res = await service.processBindings(request);
31
- (0, chai_1.expect)(res.result?.counters).length(1);
32
- (0, chai_1.expect)(res.result?.gauges).length(0);
33
- (0, chai_1.expect)(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(18483034);
34
- });
35
- test('Check souffl3 function call dispatch', async () => {
36
- const request = {
37
- bindings: [
38
- {
39
- data: {
40
- raw: new util_1.TextEncoder().encode(JSON.stringify(testData)),
41
- },
42
- handlerId: 0,
43
- handlerType: __1.HandlerType.APT_CALL,
44
- },
45
- ],
46
- };
47
- const res = await service.processBindings(request);
48
- (0, chai_1.expect)(res.result?.counters).length(2);
49
- (0, chai_1.expect)(res.result?.gauges).length(0);
50
- (0, chai_1.expect)(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(18483034);
51
- });
52
- test('Check souffl3 event dispatch', async () => {
53
- const request = {
54
- bindings: [
55
- {
56
- data: {
57
- raw: new util_1.TextEncoder().encode(JSON.stringify({
58
- ...testData,
59
- events: [testData.events[testData.events.length - 1]],
60
- })),
61
- },
62
- handlerId: 0,
63
- handlerType: __1.HandlerType.APT_EVENT,
64
- },
65
- ],
66
- };
67
- const res = await service.processBindings(request);
68
- (0, chai_1.expect)(res.result?.counters).length(1);
69
- (0, chai_1.expect)(res.result?.gauges).length(0);
70
- (0, chai_1.expect)(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(18483034);
71
- (0, chai_1.expect)(res.result?.events).length(1);
72
- });
73
- test('Check token deposit event dispatch', async () => {
74
- const request = {
75
- bindings: [
76
- {
77
- data: {
78
- raw: new util_1.TextEncoder().encode(JSON.stringify({
79
- ...testData,
80
- events: [tokenTestData],
81
- })),
82
- },
83
- handlerId: 2,
84
- handlerType: __1.HandlerType.APT_EVENT,
85
- },
86
- ],
87
- };
88
- const res = await service.processBindings(request);
89
- (0, chai_1.expect)((0, testing_1.firstCounterValue)(res.result, 'deposit')).equal(1n);
90
- (0, chai_1.expect)((0, testing_1.firstGaugeValue)(res.result, 'version')).equal(0n);
91
- });
92
- test('Check create poposal event dispatch', async () => {
93
- const request = {
94
- bindings: [
95
- {
96
- data: {
97
- raw: new util_1.TextEncoder().encode(JSON.stringify({ ...testData, events: [createProposalData] })),
98
- },
99
- handlerId: 3,
100
- handlerType: __1.HandlerType.APT_EVENT,
101
- },
102
- ],
103
- };
104
- const res = await service.processBindings(request);
105
- (0, chai_1.expect)((0, testing_1.firstGaugeValue)(res.result, 'size')).equal(2n);
106
- });
107
- test('check on timer', async () => {
108
- const request = {
109
- bindings: [
110
- {
111
- data: {
112
- raw: new util_1.TextEncoder().encode(JSON.stringify({
113
- version: '12345',
114
- resources: [
115
- {
116
- type: '0x1::coin::SupplyConfig',
117
- data: {
118
- allow_upgrades: false,
119
- },
120
- },
121
- ],
122
- })),
123
- },
124
- handlerId: 0,
125
- handlerType: __1.HandlerType.APT_RESOURCE,
126
- },
127
- ],
128
- };
129
- const res = await service.processBindings(request);
130
- (0, chai_1.expect)((0, testing_1.firstCounterValue)(res.result, 'onTimer')).equal(1n);
131
- });
132
- });
133
- const testData = {
134
- version: '18483034',
135
- hash: '0xbf4df6f390546a793ba9b7caff120002b3257986dbea9c697fd64acf7dfeb052',
136
- state_change_hash: '0x6063039cca5a1eb33d3986d3665fc783238579961eaa4746c41e25fa4f72aac6',
137
- event_root_hash: '0x425e39bcf994672108f83c34f637e84166af7ecedcbe26aed0dff0d62da8055d',
138
- state_checkpoint_hash: null,
139
- gas_used: '854',
140
- success: true,
141
- vm_status: 'Executed successfully',
142
- accumulator_root_hash: '0x47aa479d9e15993ea2abe04043c89186fb5da0b5eb8b5c6d18bd55d5f0c2c877',
143
- changes: [],
144
- sender: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',
145
- sequence_number: '30',
146
- max_gas_amount: '20000',
147
- gas_unit_price: '1',
148
- expiration_timestamp_secs: '1663144544',
149
- payload: {
150
- function: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807::SouffleChefCampaign::pull_token_v2',
151
- type_arguments: ['0x1::aptos_coin::AptosCoin'],
152
- arguments: [
153
- '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',
154
- '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',
155
- 'Souffl3 BlueBerry',
156
- '1',
157
- ],
158
- type: 'entry_function_payload',
159
- },
160
- signature: {
161
- public_key: '0x6c3f579afbf8a728827385039f7604ec1d06e5c802d8f9689ee8ec9d349fedc5',
162
- signature: '0xd2db95052e774f095d924030a50c29325a17e8d69d35c748f45bb0e22eb7d3b9e47545c98bd7130fd3ef46cbedc30c9aaeaf39c2d922ee8e7d578c0b1e76f30b',
163
- type: 'ed25519_signature',
164
- },
165
- events: [
166
- {
167
- guid: {
168
- creation_number: '3',
169
- account_address: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',
170
- },
171
- sequence_number: '10',
172
- type: '0x1::coin::WithdrawEvent',
173
- data: {
174
- amount: '1',
175
- },
176
- },
177
- {
178
- version: '18483034',
179
- guid: {
180
- creation_number: '2',
181
- account_address: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',
182
- },
183
- sequence_number: '11',
184
- type: '0x1::coin::DepositEvent',
185
- data: {
186
- amount: '1',
187
- },
188
- },
189
- {
190
- guid: {
191
- creation_number: '9',
192
- account_address: '0x21d5fe032affa1c8b10d343e9ad5a5618bc13baf5ed4a674fafaa12c54f416cc',
193
- },
194
- sequence_number: '9',
195
- type: '0x3::token::CreateTokenDataEvent',
196
- data: {
197
- description: 'Souffl3 offers a one-stop marketplace for the launch, listing, and trading of NFT assets on APTOS.\nWebsite:https://souffl3.com/\nEveryone can win through our Bake Off campaign on the Aptos Testnet, rewards including Souffl3 Genesis NFT and whitelists of other collab projects, everyone is welcome to participate!',
198
- id: {
199
- collection: 'Souffl3 BlueBerry',
200
- creator: '0x21d5fe032affa1c8b10d343e9ad5a5618bc13baf5ed4a674fafaa12c54f416cc',
201
- name: 'Souffl3 BlueBerry #2',
202
- },
203
- maximum: '999999999999',
204
- mutability_config: {
205
- description: true,
206
- maximum: true,
207
- properties: true,
208
- royalty: true,
209
- uri: true,
210
- },
211
- name: 'Souffl3 BlueBerry #2',
212
- property_keys: ['author', 'point'],
213
- property_types: ['string', 'integer'],
214
- property_values: ['0x33454e4a4f59204c616273', '0x30'],
215
- royalty_payee_address: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',
216
- royalty_points_denominator: '100',
217
- royalty_points_numerator: '20',
218
- uri: 'https://y3x4txhvirx5zl57efzbl6dg7psaier5q35hhwuqwzjwuahrycya.arweave.net/xu_J3PVEb9yvvyFyFfhm--QEEj2G-nPakLZTagDxwLA',
219
- },
220
- },
221
- {
222
- guid: {
223
- creation_number: '2',
224
- account_address: '0x21d5fe032affa1c8b10d343e9ad5a5618bc13baf5ed4a674fafaa12c54f416cc',
225
- },
226
- sequence_number: '27',
227
- type: '0x3::token::DepositEvent',
228
- data: {
229
- amount: '1',
230
- id: {
231
- property_version: '0',
232
- token_data_id: {
233
- collection: 'Souffl3 BlueBerry',
234
- creator: '0x21d5fe032affa1c8b10d343e9ad5a5618bc13baf5ed4a674fafaa12c54f416cc',
235
- name: 'Souffl3 BlueBerry #2',
236
- },
237
- },
238
- },
239
- },
240
- {
241
- version: '18483034',
242
- guid: {
243
- creation_number: '7',
244
- account_address: '0x21d5fe032affa1c8b10d343e9ad5a5618bc13baf5ed4a674fafaa12c54f416cc',
245
- },
246
- sequence_number: '980533',
247
- type: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807::SouffleChefCampaign::PullTokenEvent<0x1::aptos_coin::AptosCoin>',
248
- data: {
249
- receiver: '0x3a80be5daa84f2da7e07b3ec9234da48a5647f757187879c97a1fa03f31f1195',
250
- },
251
- },
252
- ],
253
- timestamp: '1663143945131218',
254
- type: 'user_transaction',
255
- };
256
- const tokenTestData = {
257
- guid: {
258
- creation_number: '4',
259
- account_address: '0x89bc80de59187f707a59ae7a4121718dafe3e6068e0509104ef7e41a56bc97db',
260
- },
261
- sequence_number: '10',
262
- type: '0x3::token::DepositEvent',
263
- data: {
264
- amount: '1',
265
- id: {
266
- property_version: '0',
267
- token_data_id: {
268
- collection: 'Topaz Troopers',
269
- creator: '0x9125e4054d884fdc7296b66e12c0d63a7baa0d88c77e8e784987c0a967c670ac',
270
- name: 'Topaz Trooper #11293',
271
- },
272
- },
273
- },
274
- };
275
- const createProposalData = {
276
- guid: {
277
- creation_number: '5',
278
- account_address: '0x1',
279
- },
280
- sequence_number: '3',
281
- type: '0x1::voting::CreateProposalEvent',
282
- data: {
283
- early_resolution_vote_threshold: {
284
- vec: ['9272156337856446330'],
285
- },
286
- execution_hash: '0x31549239ce8abdc1e9c259178614c3d44d015bd6d48635ddcfbfa4a77e7222b0',
287
- expiration_secs: '1665463839',
288
- metadata: {
289
- data: [
290
- {
291
- key: 'metadata_hash',
292
- value: '0x61633230656566373063616466363939663530353564323463356363353931396463306330656562643463303662653332346336323030313561633361653066',
293
- },
294
- {
295
- key: 'metadata_location',
296
- value: '0x68747470733a2f2f676973742e67697468756275736572636f6e74656e742e636f6d2f6d6f76656b6576696e2f30353766623134356234303836366566663863323263393166623964613931392f7261772f626162383566306637343334663030386138373831656563376663616464316163356135353438312f6769737466696c65312e747874',
297
- },
298
- ],
299
- },
300
- min_vote_threshold: '100000000000000',
301
- proposal_id: '3',
302
- },
303
- };
304
- //# sourceMappingURL=aptos.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aptos.test.js","sourceRoot":"","sources":["../../src/tests/aptos.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect } from 'chai'\nimport { TextEncoder } from 'util'\nimport { HandlerType, ProcessBindingsRequest } from '..'\n\nimport { firstCounterValue, firstGaugeValue, TestProcessorServer } from '../testing'\n\ndescribe('Test Aptos Example', () => {\n const service = new TestProcessorServer(() => {\n require('./souffl3')\n })\n\n beforeAll(async () => {\n await service.start({ templateInstances: [] })\n })\n\n test('check configuration ', async () => {\n const config = await service.getConfig({})\n expect(config.contractConfigs).length(4)\n })\n\n test('Check souffl3 transaction dispatch', async () => {\n const request: ProcessBindingsRequest = {\n bindings: [\n {\n data: {\n raw: new TextEncoder().encode(JSON.stringify(testData)),\n },\n handlerId: 1,\n handlerType: HandlerType.APT_CALL,\n },\n ],\n }\n const res = await service.processBindings(request)\n expect(res.result?.counters).length(1)\n expect(res.result?.gauges).length(0)\n expect(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(18483034)\n })\n\n test('Check souffl3 function call dispatch', async () => {\n const request: ProcessBindingsRequest = {\n bindings: [\n {\n data: {\n raw: new TextEncoder().encode(JSON.stringify(testData)),\n },\n handlerId: 0,\n handlerType: HandlerType.APT_CALL,\n },\n ],\n }\n const res = await service.processBindings(request)\n expect(res.result?.counters).length(2)\n expect(res.result?.gauges).length(0)\n expect(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(18483034)\n })\n\n test('Check souffl3 event dispatch', async () => {\n const request: ProcessBindingsRequest = {\n bindings: [\n {\n data: {\n raw: new TextEncoder().encode(\n JSON.stringify({\n ...testData,\n events: [testData.events[testData.events.length - 1]],\n })\n ),\n },\n handlerId: 0,\n handlerType: HandlerType.APT_EVENT,\n },\n ],\n }\n const res = await service.processBindings(request)\n expect(res.result?.counters).length(1)\n expect(res.result?.gauges).length(0)\n expect(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(18483034)\n expect(res.result?.events).length(1)\n })\n\n test('Check token deposit event dispatch', async () => {\n const request: ProcessBindingsRequest = {\n bindings: [\n {\n data: {\n raw: new TextEncoder().encode(\n JSON.stringify({\n ...testData,\n events: [tokenTestData],\n })\n ),\n },\n handlerId: 2,\n handlerType: HandlerType.APT_EVENT,\n },\n ],\n }\n const res = await service.processBindings(request)\n expect(firstCounterValue(res.result, 'deposit')).equal(1n)\n expect(firstGaugeValue(res.result, 'version')).equal(0n)\n })\n\n test('Check create poposal event dispatch', async () => {\n const request: ProcessBindingsRequest = {\n bindings: [\n {\n data: {\n raw: new TextEncoder().encode(JSON.stringify({ ...testData, events: [createProposalData] })),\n },\n handlerId: 3,\n handlerType: HandlerType.APT_EVENT,\n },\n ],\n }\n const res = await service.processBindings(request)\n expect(firstGaugeValue(res.result, 'size')).equal(2n)\n })\n\n test('check on timer', async () => {\n const request: ProcessBindingsRequest = {\n bindings: [\n {\n data: {\n raw: new TextEncoder().encode(\n JSON.stringify({\n version: '12345',\n resources: [\n {\n type: '0x1::coin::SupplyConfig',\n data: {\n allow_upgrades: false,\n },\n },\n ],\n })\n ),\n },\n handlerId: 0,\n handlerType: HandlerType.APT_RESOURCE,\n },\n ],\n }\n const res = await service.processBindings(request)\n expect(firstCounterValue(res.result, 'onTimer')).equal(1n)\n })\n})\n\nconst testData = {\n version: '18483034',\n hash: '0xbf4df6f390546a793ba9b7caff120002b3257986dbea9c697fd64acf7dfeb052',\n state_change_hash: '0x6063039cca5a1eb33d3986d3665fc783238579961eaa4746c41e25fa4f72aac6',\n event_root_hash: '0x425e39bcf994672108f83c34f637e84166af7ecedcbe26aed0dff0d62da8055d',\n state_checkpoint_hash: null,\n gas_used: '854',\n success: true,\n vm_status: 'Executed successfully',\n accumulator_root_hash: '0x47aa479d9e15993ea2abe04043c89186fb5da0b5eb8b5c6d18bd55d5f0c2c877',\n changes: [],\n sender: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n sequence_number: '30',\n max_gas_amount: '20000',\n gas_unit_price: '1',\n expiration_timestamp_secs: '1663144544',\n payload: {\n function: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807::SouffleChefCampaign::pull_token_v2',\n type_arguments: ['0x1::aptos_coin::AptosCoin'],\n arguments: [\n '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n 'Souffl3 BlueBerry',\n '1',\n ],\n type: 'entry_function_payload',\n },\n signature: {\n public_key: '0x6c3f579afbf8a728827385039f7604ec1d06e5c802d8f9689ee8ec9d349fedc5',\n signature:\n '0xd2db95052e774f095d924030a50c29325a17e8d69d35c748f45bb0e22eb7d3b9e47545c98bd7130fd3ef46cbedc30c9aaeaf39c2d922ee8e7d578c0b1e76f30b',\n type: 'ed25519_signature',\n },\n events: [\n {\n guid: {\n creation_number: '3',\n account_address: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n },\n sequence_number: '10',\n type: '0x1::coin::WithdrawEvent',\n data: {\n amount: '1',\n },\n },\n {\n version: '18483034',\n guid: {\n creation_number: '2',\n account_address: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n },\n sequence_number: '11',\n type: '0x1::coin::DepositEvent',\n data: {\n amount: '1',\n },\n },\n {\n guid: {\n creation_number: '9',\n account_address: '0x21d5fe032affa1c8b10d343e9ad5a5618bc13baf5ed4a674fafaa12c54f416cc',\n },\n sequence_number: '9',\n type: '0x3::token::CreateTokenDataEvent',\n data: {\n description:\n 'Souffl3 offers a one-stop marketplace for the launch, listing, and trading of NFT assets on APTOS.\\nWebsite:https://souffl3.com/\\nEveryone can win through our Bake Off campaign on the Aptos Testnet, rewards including Souffl3 Genesis NFT and whitelists of other collab projects, everyone is welcome to participate!',\n id: {\n collection: 'Souffl3 BlueBerry',\n creator: '0x21d5fe032affa1c8b10d343e9ad5a5618bc13baf5ed4a674fafaa12c54f416cc',\n name: 'Souffl3 BlueBerry #2',\n },\n maximum: '999999999999',\n mutability_config: {\n description: true,\n maximum: true,\n properties: true,\n royalty: true,\n uri: true,\n },\n name: 'Souffl3 BlueBerry #2',\n property_keys: ['author', 'point'],\n property_types: ['string', 'integer'],\n property_values: ['0x33454e4a4f59204c616273', '0x30'],\n royalty_payee_address: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n royalty_points_denominator: '100',\n royalty_points_numerator: '20',\n uri: 'https://y3x4txhvirx5zl57efzbl6dg7psaier5q35hhwuqwzjwuahrycya.arweave.net/xu_J3PVEb9yvvyFyFfhm--QEEj2G-nPakLZTagDxwLA',\n },\n },\n {\n guid: {\n creation_number: '2',\n account_address: '0x21d5fe032affa1c8b10d343e9ad5a5618bc13baf5ed4a674fafaa12c54f416cc',\n },\n sequence_number: '27',\n type: '0x3::token::DepositEvent',\n data: {\n amount: '1',\n id: {\n property_version: '0',\n token_data_id: {\n collection: 'Souffl3 BlueBerry',\n creator: '0x21d5fe032affa1c8b10d343e9ad5a5618bc13baf5ed4a674fafaa12c54f416cc',\n name: 'Souffl3 BlueBerry #2',\n },\n },\n },\n },\n {\n version: '18483034',\n guid: {\n creation_number: '7',\n account_address: '0x21d5fe032affa1c8b10d343e9ad5a5618bc13baf5ed4a674fafaa12c54f416cc',\n },\n sequence_number: '980533',\n type: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807::SouffleChefCampaign::PullTokenEvent<0x1::aptos_coin::AptosCoin>',\n data: {\n receiver: '0x3a80be5daa84f2da7e07b3ec9234da48a5647f757187879c97a1fa03f31f1195',\n },\n },\n ],\n timestamp: '1663143945131218',\n type: 'user_transaction',\n}\n\nconst tokenTestData = {\n guid: {\n creation_number: '4',\n account_address: '0x89bc80de59187f707a59ae7a4121718dafe3e6068e0509104ef7e41a56bc97db',\n },\n sequence_number: '10',\n type: '0x3::token::DepositEvent',\n data: {\n amount: '1',\n id: {\n property_version: '0',\n token_data_id: {\n collection: 'Topaz Troopers',\n creator: '0x9125e4054d884fdc7296b66e12c0d63a7baa0d88c77e8e784987c0a967c670ac',\n name: 'Topaz Trooper #11293',\n },\n },\n },\n}\n\nconst createProposalData = {\n guid: {\n creation_number: '5',\n account_address: '0x1',\n },\n sequence_number: '3',\n type: '0x1::voting::CreateProposalEvent',\n data: {\n early_resolution_vote_threshold: {\n vec: ['9272156337856446330'],\n },\n execution_hash: '0x31549239ce8abdc1e9c259178614c3d44d015bd6d48635ddcfbfa4a77e7222b0',\n expiration_secs: '1665463839',\n metadata: {\n data: [\n {\n key: 'metadata_hash',\n value:\n '0x61633230656566373063616466363939663530353564323463356363353931396463306330656562643463303662653332346336323030313561633361653066',\n },\n {\n key: 'metadata_location',\n value:\n '0x68747470733a2f2f676973742e67697468756275736572636f6e74656e742e636f6d2f6d6f76656b6576696e2f30353766623134356234303836366566663863323263393166623964613931392f7261772f626162383566306637343334663030386138373831656563376663616464316163356135353438312f6769737466696c65312e747874',\n },\n ],\n },\n min_vote_threshold: '100000000000000',\n proposal_id: '3',\n },\n}\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,49 +0,0 @@
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
- const build_1 = require("../cli/build");
30
- const path_1 = __importDefault(require("path"));
31
- const fs = __importStar(require("fs"));
32
- const os_1 = __importDefault(require("os"));
33
- describe('Test EVM codegen', () => {
34
- const codeGenFolder = fs.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'codegen_test'));
35
- jest.setTimeout(20000);
36
- // TODO make sure code could be compile
37
- test('code gen for evm', async () => {
38
- console.log('source code generated to ' + codeGenFolder);
39
- await (0, build_1.codeGenEthersProcessor)(path_1.default.join(__dirname, 'abis/evm'), 'lib/target-ethers-sentio', `${codeGenFolder}/internal`);
40
- expect(fs.existsSync(codeGenFolder)).toEqual(true);
41
- expect(fs.readdirSync(codeGenFolder).length).toEqual(4);
42
- });
43
- // afterAll(() => {
44
- // if (fs.existsSync(codeGenFolder)) {
45
- // fs.rmSync(codeGenFolder, { recursive: true, force: true })
46
- // }
47
- // })
48
- });
49
- //# sourceMappingURL=codegen.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codegen.test.js","sourceRoot":"","sources":["../../src/tests/codegen.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAAqD;AACrD,gDAAuB;AACvB,uCAAwB;AACxB,4CAAmB;AAEnB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,MAAM,aAAa,GAAG,EAAE,CAAC,WAAW,CAAC,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAA;IAE5E,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IAEtB,uCAAuC;IACvC,IAAI,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAClC,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,aAAa,CAAC,CAAA;QAExD,MAAM,IAAA,8BAAsB,EAC1B,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAChC,0BAA0B,EAC1B,GAAG,aAAa,WAAW,CAC5B,CAAA;QACD,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAClD,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,mBAAmB;IACnB,wCAAwC;IACxC,iEAAiE;IACjE,MAAM;IACN,KAAK;AACP,CAAC,CAAC,CAAA","sourcesContent":["import { codeGenEthersProcessor } from '../cli/build'\nimport path from 'path'\nimport * as fs from 'fs'\nimport os from 'os'\n\ndescribe('Test EVM codegen', () => {\n const codeGenFolder = fs.mkdtempSync(path.join(os.tmpdir(), 'codegen_test'))\n\n jest.setTimeout(20000)\n\n // TODO make sure code could be compile\n test('code gen for evm', async () => {\n console.log('source code generated to ' + codeGenFolder)\n\n await codeGenEthersProcessor(\n path.join(__dirname, 'abis/evm'),\n 'lib/target-ethers-sentio',\n `${codeGenFolder}/internal`\n )\n expect(fs.existsSync(codeGenFolder)).toEqual(true)\n expect(fs.readdirSync(codeGenFolder).length).toEqual(4)\n })\n\n // afterAll(() => {\n // if (fs.existsSync(codeGenFolder)) {\n // fs.rmSync(codeGenFolder, { recursive: true, force: true })\n // }\n // })\n})\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,56 +0,0 @@
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
- const chai_1 = require("chai");
7
- const long_1 = __importDefault(require("long"));
8
- const testing_1 = require("../testing");
9
- const erc20_processor_1 = require("../builtin/internal/erc20_processor");
10
- describe('Test Template', () => {
11
- const service = new testing_1.TestProcessorServer(() => {
12
- const filter = erc20_processor_1.ERC20Processor.filters.Transfer('0x0000000000000000000000000000000000000000', '0xb329e39ebefd16f40d38f07643652ce17ca5bac1');
13
- const processorTemplate = new erc20_processor_1.ERC20ProcessorTemplate().onEventTransfer(async function (event, ctx) {
14
- console.log('');
15
- });
16
- erc20_processor_1.ERC20Processor.bind({
17
- address: '0x1e4ede388cbc9f4b5c79681b7f94d36a11abebc9',
18
- network: 1,
19
- name: 'x2y2',
20
- startBlock: 14201940,
21
- }).onEventTransfer(async function (event, ctx) {
22
- processorTemplate.bind({
23
- address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
24
- network: 3,
25
- name: 'dynamic',
26
- });
27
- // template.bind('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 3, 'dynamic')
28
- ctx.meter.Counter('c1').add(1);
29
- }, filter);
30
- });
31
- beforeAll(async () => {
32
- const request = {
33
- templateInstances: [
34
- {
35
- contract: {
36
- address: 'dynamic2',
37
- name: 'dynamic2',
38
- chainId: '1',
39
- abi: '',
40
- },
41
- startBlock: long_1.default.ZERO,
42
- endBlock: long_1.default.ZERO,
43
- templateId: 0,
44
- },
45
- ],
46
- };
47
- await service.start(request);
48
- });
49
- test('Check template instantiate', async () => {
50
- const config = await service.getConfig({});
51
- (0, chai_1.expect)(config.contractConfigs).length(2);
52
- (0, chai_1.expect)(config.contractConfigs?.[1].contract?.name).equals('dynamic2');
53
- (0, chai_1.expect)(config.templateInstances).length(1);
54
- });
55
- });
56
- //# sourceMappingURL=erc20-template.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"erc20-template.test.js","sourceRoot":"","sources":["../../src/tests/erc20-template.test.ts"],"names":[],"mappings":";;;;;AAAA,+BAA6B;AAG7B,gDAAuB;AACvB,wCAAgD;AAChD,yEAA4F;AAE5F,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,OAAO,GAAG,IAAI,6BAAmB,CAAC,GAAG,EAAE;QAC3C,MAAM,MAAM,GAAG,gCAAc,CAAC,OAAO,CAAC,QAAQ,CAC5C,4CAA4C,EAC5C,4CAA4C,CAC7C,CAAA;QAED,MAAM,iBAAiB,GAAG,IAAI,wCAAsB,EAAE,CAAC,eAAe,CAAC,KAAK,WAAW,KAAK,EAAE,GAAG;YAC/F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACjB,CAAC,CAAC,CAAA;QAEF,gCAAc,CAAC,IAAI,CAAC;YAClB,OAAO,EAAE,4CAA4C;YACrD,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC,eAAe,CAAC,KAAK,WAAW,KAAK,EAAE,GAAG;YAC3C,iBAAiB,CAAC,IAAI,CAAC;gBACrB,OAAO,EAAE,4CAA4C;gBACrD,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE,SAAS;aAChB,CAAC,CAAA;YACF,4EAA4E;YAC5E,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAChC,CAAC,EAAE,MAAM,CAAC,CAAA;IACZ,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,OAAO,GAAiB;YAC5B,iBAAiB,EAAE;gBACjB;oBACE,QAAQ,EAAE;wBACR,OAAO,EAAE,UAAU;wBACnB,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,GAAG;wBACZ,GAAG,EAAE,EAAE;qBACR;oBACD,UAAU,EAAE,cAAI,CAAC,IAAI;oBACrB,QAAQ,EAAE,cAAI,CAAC,IAAI;oBACnB,UAAU,EAAE,CAAC;iBACd;aACF;SACF,CAAA;QACD,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAC1C,IAAA,aAAM,EAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACxC,IAAA,aAAM,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACrE,IAAA,aAAM,EAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { expect } from 'chai'\n\nimport { StartRequest } from '..'\nimport Long from 'long'\nimport { TestProcessorServer } from '../testing'\nimport { ERC20Processor, ERC20ProcessorTemplate } from '../builtin/internal/erc20_processor'\n\ndescribe('Test Template', () => {\n const service = new TestProcessorServer(() => {\n const filter = ERC20Processor.filters.Transfer(\n '0x0000000000000000000000000000000000000000',\n '0xb329e39ebefd16f40d38f07643652ce17ca5bac1'\n )\n\n const processorTemplate = new ERC20ProcessorTemplate().onEventTransfer(async function (event, ctx) {\n console.log('')\n })\n\n ERC20Processor.bind({\n address: '0x1e4ede388cbc9f4b5c79681b7f94d36a11abebc9',\n network: 1,\n name: 'x2y2',\n startBlock: 14201940,\n }).onEventTransfer(async function (event, ctx) {\n processorTemplate.bind({\n address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n network: 3,\n name: 'dynamic',\n })\n // template.bind('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 3, 'dynamic')\n ctx.meter.Counter('c1').add(1)\n }, filter)\n })\n\n beforeAll(async () => {\n const request: StartRequest = {\n templateInstances: [\n {\n contract: {\n address: 'dynamic2',\n name: 'dynamic2',\n chainId: '1',\n abi: '',\n },\n startBlock: Long.ZERO,\n endBlock: Long.ZERO,\n templateId: 0,\n },\n ],\n }\n await service.start(request)\n })\n\n test('Check template instantiate', async () => {\n const config = await service.getConfig({})\n expect(config.contractConfigs).length(2)\n expect(config.contractConfigs?.[1].contract?.name).equals('dynamic2')\n expect(config.templateInstances).length(1)\n })\n})\n"]}
@@ -1 +0,0 @@
1
- export declare const filter: import("../builtin/erc20").TransferEventFilter;
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.filter = void 0;
4
- const erc20_1 = require("../builtin/erc20");
5
- const event_tracker_1 = require("../core/event-tracker");
6
- const exporter_1 = require("../core/exporter");
7
- exports.filter = erc20_1.ERC20Processor.filters.Transfer('0x0000000000000000000000000000000000000000', '0xb329e39ebefd16f40d38f07643652ce17ca5bac1');
8
- const tracker = event_tracker_1.EventTracker.register('sdf');
9
- const exporter = exporter_1.Exporter.register('transfer', 'xxx');
10
- const processorTemplate = new erc20_1.ERC20ProcessorTemplate().onEventTransfer(async function (event, ctx) {
11
- console.log('');
12
- });
13
- erc20_1.ERC20Processor.bind({
14
- address: '0x1e4ede388cbc9f4b5c79681b7f94d36a11abebc9',
15
- // network: 1,
16
- name: 'x2y2',
17
- startBlock: 14201940,
18
- })
19
- .onEventTransfer(async function (event, ctx) {
20
- processorTemplate.bind({ address: '0x1E4EDE388cbc9F4b5c79681B7f94d36a11ABEBC9', network: 3, name: 'dynamic' });
21
- // template.bind('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 3, 'dynamic')
22
- ctx.meter.Counter('c1').add(1);
23
- }, exports.filter)
24
- .onBlock(async function (block, ctx) {
25
- ctx.meter.Gauge('g1').record(10, { k: 'v' });
26
- })
27
- .onCallApprove(function (call, ctx) {
28
- ctx.meter.Counter('added').add(call.args.amount, { spender: call.args.spender });
29
- });
30
- erc20_1.ERC20Processor.bind({ address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', network: 56, name: 'usdc' })
31
- .onEventTransfer(async function (event, ctx) {
32
- ctx.meter.Counter('c2').add(2);
33
- tracker.trackEvent(ctx, { distinctId: event.args.from });
34
- exporter.emit(ctx, event);
35
- }, exports.filter)
36
- .onBlock(async function (block, ctx) {
37
- ctx.meter.Gauge('g2').record(20, { k: 'v' });
38
- });
39
- // .onEventApproval(async function (event, ctx) {
40
- // BigNumber.from(10 ** 18)
41
- // // console.log(n)
42
- // })
43
- erc20_1.ERC20Processor.bind({ address: 'xxxx', network: 56 });
44
- erc20_1.ERC20Processor.bind({ address: 'yyyy', network: 1 });
45
- erc20_1.ERC20Processor.bind({ address: 'yyyy', network: 1 });
46
- erc20_1.ERC20Processor.bind({ address: 'yyyy', network: 1, startBlock: 21, name: 'ytoken' });
47
- // const template = Erc20Processor.template
48
- // .onTransfer(async function (event, ctx) {
49
- // ctx.meter.Counter('c2').add(2)
50
- // }, filter)
51
- // .onBlock(async function (block, ctx) {
52
- // ctx.meter.Gauge('h1').record(20, { k: 'v' })
53
- // })
54
- //# sourceMappingURL=erc20.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"erc20.js","sourceRoot":"","sources":["../../src/tests/erc20.ts"],"names":[],"mappings":"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","sourcesContent":["import { ERC20Processor, ERC20ProcessorTemplate } from '../builtin/erc20'\nimport { EventTracker } from '../core/event-tracker'\nimport { Exporter } from '../core/exporter'\n\nexport const filter = ERC20Processor.filters.Transfer(\n '0x0000000000000000000000000000000000000000',\n '0xb329e39ebefd16f40d38f07643652ce17ca5bac1'\n)\n\nconst tracker = EventTracker.register('sdf')\nconst exporter = Exporter.register('transfer', 'xxx')\n\nconst processorTemplate = new ERC20ProcessorTemplate().onEventTransfer(async function (event, ctx) {\n console.log('')\n})\n\nERC20Processor.bind({\n address: '0x1e4ede388cbc9f4b5c79681b7f94d36a11abebc9',\n // network: 1,\n name: 'x2y2',\n startBlock: 14201940,\n})\n .onEventTransfer(async function (event, ctx) {\n processorTemplate.bind({ address: '0x1E4EDE388cbc9F4b5c79681B7f94d36a11ABEBC9', network: 3, name: 'dynamic' })\n // template.bind('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 3, 'dynamic')\n ctx.meter.Counter('c1').add(1)\n }, filter)\n .onBlock(async function (block, ctx) {\n ctx.meter.Gauge('g1').record(10, { k: 'v' })\n })\n .onCallApprove(function (call, ctx) {\n ctx.meter.Counter('added').add(call.args.amount, { spender: call.args.spender })\n })\n\nERC20Processor.bind({ address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', network: 56, name: 'usdc' })\n .onEventTransfer(async function (event, ctx) {\n ctx.meter.Counter('c2').add(2)\n tracker.trackEvent(ctx, { distinctId: event.args.from })\n exporter.emit(ctx, event)\n }, filter)\n .onBlock(async function (block, ctx) {\n ctx.meter.Gauge('g2').record(20, { k: 'v' })\n })\n// .onEventApproval(async function (event, ctx) {\n// BigNumber.from(10 ** 18)\n// // console.log(n)\n// })\nERC20Processor.bind({ address: 'xxxx', network: 56 })\n\nERC20Processor.bind({ address: 'yyyy', network: 1 })\nERC20Processor.bind({ address: 'yyyy', network: 1 })\nERC20Processor.bind({ address: 'yyyy', network: 1, startBlock: 21, name: 'ytoken' })\n\n// const template = Erc20Processor.template\n// .onTransfer(async function (event, ctx) {\n// ctx.meter.Counter('c2').add(2)\n// }, filter)\n// .onBlock(async function (block, ctx) {\n// ctx.meter.Gauge('h1').record(20, { k: 'v' })\n// })\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,94 +0,0 @@
1
- "use strict";
2
- // TODO move out of this package
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const chai_1 = require("chai");
5
- const __1 = require("..");
6
- const testing_1 = require("../testing");
7
- const ethers_1 = require("ethers");
8
- const test_utils_1 = require("../builtin/erc20/test-utils");
9
- describe('Test Basic Examples', () => {
10
- const service = new testing_1.TestProcessorServer(() => require('./erc20'));
11
- beforeAll(async () => {
12
- await service.start();
13
- });
14
- test('check configuration', async () => {
15
- const config = await service.getConfig({});
16
- (0, chai_1.expect)(config.contractConfigs).length(5);
17
- (0, chai_1.expect)(config.contractConfigs?.[2].contract?.name).equals('ERC20');
18
- (0, chai_1.expect)(config.contractConfigs?.[3].contract?.name).equals('ERC20');
19
- (0, chai_1.expect)(config.contractConfigs?.[4].contract?.name).equals('ytoken');
20
- });
21
- test('Check block dispatch', async () => {
22
- const res = (await service.testBlock(blockData)).result;
23
- (0, chai_1.expect)(res?.counters).length(0);
24
- (0, chai_1.expect)(res?.gauges).length(1);
25
- (0, chai_1.expect)((0, testing_1.firstGaugeValue)(res, 'g1')).equals(10n);
26
- (0, chai_1.expect)(res?.gauges[0].metadata?.contractName).equals('x2y2');
27
- const gauge = res?.gauges?.[0];
28
- (0, chai_1.expect)(gauge?.metadata?.blockNumber?.toString()).equals('14373295');
29
- (0, chai_1.expect)(gauge?.runtimeInfo?.from).equals(__1.HandlerType.BLOCK);
30
- const res2 = (await service.testBlock(blockData, 56)).result;
31
- (0, chai_1.expect)(res2?.counters).length(0);
32
- (0, chai_1.expect)(res2?.gauges).length(1);
33
- (0, chai_1.expect)((0, testing_1.firstGaugeValue)(res2, 'g2')).equals(20n);
34
- });
35
- test('Check log dispatch', async () => {
36
- const logData = (0, test_utils_1.mockTransferLog)('0x1E4EDE388cbc9F4b5c79681B7f94d36a11ABEBC9', {
37
- from: '0x0000000000000000000000000000000000000000',
38
- to: '0xB329e39Ebefd16f40d38f07643652cE17Ca5Bac1',
39
- value: ethers_1.BigNumber.from('0x9a71db64810aaa0000'),
40
- });
41
- let res = await service.testLog(logData);
42
- const counters = res.result?.counters;
43
- (0, chai_1.expect)(counters).length(1);
44
- (0, chai_1.expect)((0, testing_1.firstCounterValue)(res.result, 'c1')).equals(1n);
45
- (0, chai_1.expect)(counters?.[0].metadata?.chainId).equals('1');
46
- (0, chai_1.expect)(counters?.[0].runtimeInfo?.from).equals(__1.HandlerType.ETH_LOG);
47
- (0, chai_1.expect)(res.configUpdated).equals(true);
48
- const logData2 = Object.assign({}, logData);
49
- logData2.address = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48';
50
- res = await service.testLog(logData2, 56);
51
- (0, chai_1.expect)((0, testing_1.firstCounterValue)(res.result, 'c2')).equals(2n);
52
- (0, chai_1.expect)(res.result?.counters[0].metadata?.chainId).equals('56');
53
- (0, chai_1.expect)(res.result?.gauges).length(0);
54
- const config = await service.getConfig({});
55
- (0, chai_1.expect)(config.contractConfigs).length(6); //config increased
56
- (0, chai_1.expect)(config.contractConfigs?.[5].contract?.name).equals('dynamic');
57
- // repeat trigger won't bind again
58
- await service.testLogs([logData]);
59
- const config2 = await service.getConfig({});
60
- (0, chai_1.expect)(config).deep.equals(config2);
61
- });
62
- const blockData = {
63
- hash: '0x2b9b7cce1f17f3b7e1f3c2472cc806a07bee3f0baca07d021350950d81d73a42',
64
- number: 14373295,
65
- timestamp: 1647106437,
66
- extraData: '0xe4b883e5bda9e7a59ee4bb99e9b1bc493421',
67
- };
68
- test('Check trace dispatch', async () => {
69
- const res = (await service.testTrace(traceData)).result;
70
- (0, chai_1.expect)(res?.counters).length(1);
71
- });
72
- const traceData = {
73
- action: {
74
- from: '0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91',
75
- callType: 'call',
76
- gas: 0xbb0a,
77
- input: '0x095ea7b30000000000000000000000003eabf546fff0a41edaaf5b667333a846285713180000000000000000000000000000000000000000000000000000002a03956d85',
78
- to: '0x1E4EDE388cbc9F4b5c79681B7f94d36a11ABEBC9',
79
- value: 0x0,
80
- },
81
- blockHash: '0xb1fe1fefca4063ab9cc06a10356a6dd397b8c3dd38e21470e107a711ad559c13',
82
- blockNumber: 15548801,
83
- result: {
84
- gasUsed: 0x95df,
85
- output: '0x0000000000000000000000000000000000000000000000000000000000000001',
86
- },
87
- subtraces: 1,
88
- traceAddress: [],
89
- transactionHash: '0xc05c37b34e13380d0b7e0475b27a0c77fda826f82c603f9c45922e952d63b7a5',
90
- transactionPosition: 69,
91
- type: 'call',
92
- };
93
- });
94
- //# sourceMappingURL=erc20.test.js.map