@sentio/sdk 1.27.3 → 1.27.4

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 (90) hide show
  1. package/lib/processor-runner.js +2 -2
  2. package/lib/processor-runner.js.map +1 -1
  3. package/package.json +4 -4
  4. package/src/processor-runner.ts +2 -2
  5. package/lib/aptos/types.test.js +0 -19
  6. package/lib/core/generic-processor.test.js +0 -58
  7. package/lib/core/meter.test.js +0 -21
  8. package/lib/core/numberish.test.js +0 -70
  9. package/lib/tests/aptos.test.d.ts +0 -1
  10. package/lib/tests/aptos.test.js +0 -379
  11. package/lib/tests/aptos.test.js.map +0 -1
  12. package/lib/tests/codegen.test.d.ts +0 -1
  13. package/lib/tests/codegen.test.js +0 -49
  14. package/lib/tests/codegen.test.js.map +0 -1
  15. package/lib/tests/erc20-template.test.d.ts +0 -1
  16. package/lib/tests/erc20-template.test.js +0 -56
  17. package/lib/tests/erc20-template.test.js.map +0 -1
  18. package/lib/tests/erc20.d.ts +0 -1
  19. package/lib/tests/erc20.js +0 -54
  20. package/lib/tests/erc20.js.map +0 -1
  21. package/lib/tests/erc20.test.d.ts +0 -1
  22. package/lib/tests/erc20.test.js +0 -94
  23. package/lib/tests/erc20.test.js.map +0 -1
  24. package/lib/tests/error-capture.test.d.ts +0 -1
  25. package/lib/tests/error-capture.test.js +0 -76
  26. package/lib/tests/error-capture.test.js.map +0 -1
  27. package/lib/tests/logger.test.d.ts +0 -1
  28. package/lib/tests/logger.test.js +0 -40
  29. package/lib/tests/logger.test.js.map +0 -1
  30. package/lib/tests/solana.test.d.ts +0 -1
  31. package/lib/tests/solana.test.js +0 -77
  32. package/lib/tests/solana.test.js.map +0 -1
  33. package/lib/tests/souffl3.d.ts +0 -1
  34. package/lib/tests/souffl3.js +0 -49
  35. package/lib/tests/souffl3.js.map +0 -1
  36. package/lib/tests/sui.test.d.ts +0 -1
  37. package/lib/tests/sui.test.js +0 -193
  38. package/lib/tests/sui.test.js.map +0 -1
  39. package/lib/tests/types/aptos/soffl3.d.ts +0 -786
  40. package/lib/tests/types/aptos/soffl3.js +0 -559
  41. package/lib/tests/types/aptos/soffl3.js.map +0 -1
  42. package/lib/tests/types/aptos/souffle.d.ts +0 -348
  43. package/lib/tests/types/aptos/souffle.js +0 -303
  44. package/lib/tests/types/aptos/souffle.js.map +0 -1
  45. package/lib/tests/types/solana/basic_1.d.ts +0 -26
  46. package/lib/tests/types/solana/basic_1.js +0 -66
  47. package/lib/tests/types/solana/basic_1.js.map +0 -1
  48. package/lib/tests/types/solana/basic_1_processor.d.ts +0 -13
  49. package/lib/tests/types/solana/basic_1_processor.js +0 -41
  50. package/lib/tests/types/solana/basic_1_processor.js.map +0 -1
  51. package/lib/tests/wormhole-token-bridge.d.ts +0 -1
  52. package/lib/tests/wormhole-token-bridge.js +0 -22
  53. package/lib/tests/wormhole-token-bridge.js.map +0 -1
  54. package/lib/utils/dex-price.test.js +0 -22
  55. package/lib/utils/erc20.test.js +0 -23
  56. package/src/aptos/types.test.ts +0 -18
  57. package/src/aptos-codegen/typegen.test.ts +0 -44
  58. package/src/core/generic-processor.test.ts +0 -69
  59. package/src/core/meter.test.ts +0 -23
  60. package/src/core/numberish.test.ts +0 -82
  61. package/src/tests/abis/aptos/soffl3.json +0 -1411
  62. package/src/tests/abis/aptos/souffle.json +0 -389
  63. package/src/tests/abis/evm/CommitmentPool.json +0 -1034
  64. package/src/tests/abis/evm/Seaport.json +0 -2595
  65. package/src/tests/abis/evm/anyswapRouter.json +0 -490
  66. package/src/tests/abis/solana/basic_1.json +0 -62
  67. package/src/tests/aptos.test.ts +0 -402
  68. package/src/tests/codegen.test.ts +0 -29
  69. package/src/tests/erc20-template.test.ts +0 -60
  70. package/src/tests/erc20.test.ts +0 -115
  71. package/src/tests/erc20.ts +0 -60
  72. package/src/tests/error-capture.test.ts +0 -82
  73. package/src/tests/logger.test.ts +0 -46
  74. package/src/tests/solana.test.ts +0 -79
  75. package/src/tests/souffl3.ts +0 -56
  76. package/src/tests/sui.test.ts +0 -197
  77. package/src/tests/types/aptos/soffl3.ts +0 -1377
  78. package/src/tests/types/aptos/souffle.ts +0 -698
  79. package/src/tests/types/solana/basic_1.ts +0 -62
  80. package/src/tests/types/solana/basic_1_processor.ts +0 -41
  81. package/src/tests/wormhole-token-bridge.ts +0 -21
  82. package/src/types/global.d.ts +0 -5
  83. package/src/utils/dex-price.test.ts +0 -25
  84. package/src/utils/erc20.test.ts +0 -26
  85. package/templates/aptos/.gitignore +0 -107
  86. package/templates/aptos/src/processor.test.ts +0 -14
  87. package/templates/evm/.gitignore +0 -107
  88. package/templates/evm/src/processor.test.ts +0 -29
  89. package/templates/raw/.gitignore +0 -107
  90. package/templates/raw/src/processor.test.ts +0 -14
@@ -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(5)\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 test('Check aptos account transaction dispatch', async () => {\n const request: ProcessBindingsRequest = {\n bindings: [\n {\n data: {\n raw: new TextEncoder().encode(JSON.stringify(dataCreate)),\n },\n handlerId: 3,\n handlerType: HandlerType.APT_CALL,\n },\n ],\n }\n const res = await service.processBindings(request)\n expect(res.result?.counters).length(1)\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\nconst dataCreate = {\n id: '',\n round: '',\n previous_block_votes: null,\n proposer: '',\n sender: '0x88252db4dc2484cd9cedb23cd67b7b91f88940142f3eea35df7a9168d9c30896',\n sequence_number: '1510',\n payload: {\n type: 'entry_function_payload',\n type_arguments: [],\n arguments: ['0xd582e092190feda35a2f737123f86e33a1b592596804f40b1d539ab603a82a24'],\n code: { bytecode: '' },\n function: '0x1::aptos_account::create_account',\n },\n max_gas_amount: '2000',\n gas_unit_price: '100',\n expiration_timestamp_secs: '1666174748',\n secondary_signers: null,\n signature: {\n type: 'ed25519_signature',\n public_key: '0xfe1e11c6cb912ae998c9512d21e5781abb64fd4b8d6cfa15aeba3ee481406b64',\n signature:\n '0x98a49f348a3015702e3be33c1d2a92ea7b2726d31b27c857980493fe68cadc83fbef0839e312d6a82a9e6ca69481245fa49b6f25c0ec51660615d03e05738c03',\n public_keys: null,\n signatures: null,\n threshold: 0,\n bitmap: '',\n sender: { type: '', public_key: '', signature: '', public_keys: null, signatures: null, threshold: 0, bitmap: '' },\n secondary_signer_addresses: null,\n secondary_signers: null,\n },\n type: 'user_transaction',\n timestamp: '1666174688494614',\n events: [\n {\n version: '3121410',\n guid: {\n creation_number: '0',\n account_address: '0xd582e092190feda35a2f737123f86e33a1b592596804f40b1d539ab603a82a24',\n },\n sequence_number: '0',\n type: '0x1::account::CoinRegisterEvent',\n data: {\n type_info: {\n account_address: '0x1',\n module_name: '0x6170746f735f636f696e',\n struct_name: '0x4170746f73436f696e',\n },\n },\n },\n ],\n version: '3121410',\n hash: '0xcae7d97c9f43d90e247a366688905bc8e83ee0ad4baddbf3cc2fdda56e4d6926',\n state_root_hash: '',\n event_root_hash: '0xfa557e3bb8dff8fd3321f9a4eaa779311c9c795728355686b487b5b0adf7ce3c',\n gas_used: '1538',\n success: true,\n vm_status: 'Executed successfully',\n accumulator_root_hash: '0x7563d6ed58b011e512d53cce2bc1a70716fc6362e12fb6af8fe6d459ae71dffc',\n changes: null,\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
@@ -1 +0,0 @@
1
- {"version":3,"file":"erc20.test.js","sourceRoot":"","sources":["../../src/tests/erc20.test.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO move out of this package\n\nimport { expect } from 'chai'\n\nimport { HandlerType } from '..'\n\nimport { TestProcessorServer, firstCounterValue, firstGaugeValue } from '../testing'\nimport { BigNumber } from 'ethers'\nimport { mockTransferLog } from '../builtin/erc20/test-utils'\nimport { Trace } from '@sentio/sdk'\n\ndescribe('Test Basic Examples', () => {\n const service = new TestProcessorServer(() => require('./erc20'))\n\n beforeAll(async () => {\n await service.start()\n })\n\n test('check configuration', async () => {\n const config = await service.getConfig({})\n expect(config.contractConfigs).length(5)\n\n expect(config.contractConfigs?.[2].contract?.name).equals('ERC20')\n expect(config.contractConfigs?.[3].contract?.name).equals('ERC20')\n expect(config.contractConfigs?.[4].contract?.name).equals('ytoken')\n })\n\n test('Check block dispatch', async () => {\n const res = (await service.testBlock(blockData)).result\n expect(res?.counters).length(0)\n expect(res?.gauges).length(1)\n expect(firstGaugeValue(res, 'g1')).equals(10n)\n expect(res?.gauges[0].metadata?.contractName).equals('x2y2')\n\n const gauge = res?.gauges?.[0]\n expect(gauge?.metadata?.blockNumber?.toString()).equals('14373295')\n expect(gauge?.runtimeInfo?.from).equals(HandlerType.BLOCK)\n\n const res2 = (await service.testBlock(blockData, 56)).result\n expect(res2?.counters).length(0)\n expect(res2?.gauges).length(1)\n expect(firstGaugeValue(res2, 'g2')).equals(20n)\n })\n\n test('Check log dispatch', async () => {\n const logData = mockTransferLog('0x1E4EDE388cbc9F4b5c79681B7f94d36a11ABEBC9', {\n from: '0x0000000000000000000000000000000000000000',\n to: '0xB329e39Ebefd16f40d38f07643652cE17Ca5Bac1',\n value: BigNumber.from('0x9a71db64810aaa0000'),\n })\n\n let res = await service.testLog(logData)\n\n const counters = res.result?.counters\n expect(counters).length(1)\n expect(firstCounterValue(res.result, 'c1')).equals(1n)\n\n expect(counters?.[0].metadata?.chainId).equals('1')\n expect(counters?.[0].runtimeInfo?.from).equals(HandlerType.ETH_LOG)\n expect(res.configUpdated).equals(true)\n\n const logData2 = Object.assign({}, logData)\n logData2.address = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'\n res = await service.testLog(logData2, 56)\n\n expect(firstCounterValue(res.result, 'c2')).equals(2n)\n expect(res.result?.counters[0].metadata?.chainId).equals('56')\n\n expect(res.result?.gauges).length(0)\n\n const config = await service.getConfig({})\n expect(config.contractConfigs).length(6) //config increased\n expect(config.contractConfigs?.[5].contract?.name).equals('dynamic')\n\n // repeat trigger won't bind again\n await service.testLogs([logData])\n const config2 = await service.getConfig({})\n expect(config).deep.equals(config2)\n })\n\n const blockData = {\n hash: '0x2b9b7cce1f17f3b7e1f3c2472cc806a07bee3f0baca07d021350950d81d73a42',\n number: 14373295,\n timestamp: 1647106437,\n extraData: '0xe4b883e5bda9e7a59ee4bb99e9b1bc493421',\n }\n\n test('Check trace dispatch', async () => {\n const res = (await service.testTrace(traceData)).result\n expect(res?.counters).length(1)\n })\n\n const traceData: Trace = {\n action: {\n from: '0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91',\n callType: 'call',\n gas: 0xbb0a,\n input:\n '0x095ea7b30000000000000000000000003eabf546fff0a41edaaf5b667333a846285713180000000000000000000000000000000000000000000000000000002a03956d85',\n to: '0x1E4EDE388cbc9F4b5c79681B7f94d36a11ABEBC9',\n value: 0x0,\n },\n blockHash: '0xb1fe1fefca4063ab9cc06a10356a6dd397b8c3dd38e21470e107a711ad559c13',\n blockNumber: 15548801,\n result: {\n gasUsed: 0x95df,\n output: '0x0000000000000000000000000000000000000000000000000000000000000001',\n },\n subtraces: 1,\n traceAddress: [],\n transactionHash: '0xc05c37b34e13380d0b7e0475b27a0c77fda826f82c603f9c45922e952d63b7a5',\n transactionPosition: 69,\n type: 'call',\n }\n})\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,76 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_1 = require("chai");
4
- const testing_1 = require("../testing");
5
- const ethers_1 = require("ethers");
6
- const test_utils_1 = require("../builtin/erc20/test-utils");
7
- const erc20_processor_1 = require("../builtin/internal/erc20_processor");
8
- const utils_1 = require("../utils");
9
- const sdk_1 = require("@sentio/sdk");
10
- describe('Test Error Capture', () => {
11
- const service = new testing_1.TestProcessorServer(() => {
12
- erc20_processor_1.ERC20Processor.bind({ address: '0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91' })
13
- .onEventApproval((evt, ctx) => {
14
- const v = new sdk_1.BigDecimal(1).div(utils_1.conversion.toBigDecimal(evt.args.value));
15
- ctx.meter.Gauge('xx').record(v);
16
- })
17
- .onEventTransfer((evt, ctx) => {
18
- const v = new sdk_1.BigDecimal(0).div(utils_1.conversion.toBigDecimal(evt.args.value));
19
- ctx.meter.Gauge('xx').record(v);
20
- })
21
- .onEventOwnershipTransferred((evt, ctx) => {
22
- ctx.meter.Gauge('xx').record(ethers_1.BigNumber.from(10 ** 18));
23
- });
24
- });
25
- beforeAll(async () => {
26
- await service.start();
27
- });
28
- test('Check infinite', async () => {
29
- let err;
30
- try {
31
- // TODO check why order matters
32
- // await service.testLog(mockApprovalLog("0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91", {
33
- // value: BigNumber.from(3000000),
34
- // spender: "0x0000000000000000000000000000000000000000",
35
- // owner: "0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91"
36
- // }))
37
- await service.testLog((0, test_utils_1.mockApprovalLog)('0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91', {
38
- owner: '0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91',
39
- spender: '0x0000000000000000000000000000000000000000',
40
- value: ethers_1.BigNumber.from(0),
41
- }));
42
- }
43
- catch (e) {
44
- err = e;
45
- }
46
- (0, chai_1.assert)(err?.message.includes('Record infinite value'));
47
- });
48
- test('Check NaN', async () => {
49
- let err;
50
- try {
51
- await service.testLog((0, test_utils_1.mockTransferLog)('0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91', {
52
- from: '0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91',
53
- to: '0x0000000000000000000000000000000000000000',
54
- value: ethers_1.BigNumber.from(0),
55
- }));
56
- }
57
- catch (e) {
58
- err = e;
59
- }
60
- (0, chai_1.assert)(err?.message.includes('NaN'));
61
- });
62
- test('Check overflow', async () => {
63
- let err;
64
- try {
65
- await service.testLog((0, test_utils_1.mockOwnershipTransferredLog)('0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91', {
66
- previousOwner: '0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91',
67
- newOwner: '0x0000000000000000000000000000000000000000',
68
- }));
69
- }
70
- catch (e) {
71
- err = e;
72
- }
73
- (0, chai_1.assert)(err?.message.includes('overflow'));
74
- });
75
- });
76
- //# sourceMappingURL=error-capture.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-capture.test.js","sourceRoot":"","sources":["../../src/tests/error-capture.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { assert } from 'chai'\n\nimport { TestProcessorServer } from '../testing'\nimport { BigNumber } from 'ethers'\nimport { mockApprovalLog, mockOwnershipTransferredLog, mockTransferLog } from '../builtin/erc20/test-utils'\nimport { ERC20Processor } from '../builtin/internal/erc20_processor'\nimport { conversion } from '../utils'\nimport { BigDecimal } from '@sentio/sdk'\n\ndescribe('Test Error Capture', () => {\n const service = new TestProcessorServer(() => {\n ERC20Processor.bind({ address: '0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91' })\n .onEventApproval((evt, ctx) => {\n const v = new BigDecimal(1).div(conversion.toBigDecimal(evt.args.value))\n ctx.meter.Gauge('xx').record(v)\n })\n .onEventTransfer((evt, ctx) => {\n const v = new BigDecimal(0).div(conversion.toBigDecimal(evt.args.value))\n ctx.meter.Gauge('xx').record(v)\n })\n .onEventOwnershipTransferred((evt, ctx) => {\n ctx.meter.Gauge('xx').record(BigNumber.from(10 ** 18))\n })\n })\n\n beforeAll(async () => {\n await service.start()\n })\n\n test('Check infinite', async () => {\n let err: Error | undefined\n try {\n // TODO check why order matters\n // await service.testLog(mockApprovalLog(\"0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91\", {\n // value: BigNumber.from(3000000),\n // spender: \"0x0000000000000000000000000000000000000000\",\n // owner: \"0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91\"\n // }))\n await service.testLog(\n mockApprovalLog('0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91', {\n owner: '0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91',\n spender: '0x0000000000000000000000000000000000000000',\n value: BigNumber.from(0),\n })\n )\n } catch (e) {\n err = e\n }\n assert(err?.message.includes('Record infinite value'))\n })\n\n test('Check NaN', async () => {\n let err: Error | undefined\n try {\n await service.testLog(\n mockTransferLog('0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91', {\n from: '0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91',\n to: '0x0000000000000000000000000000000000000000',\n value: BigNumber.from(0),\n })\n )\n } catch (e) {\n err = e\n }\n assert(err?.message.includes('NaN'))\n })\n\n test('Check overflow', async () => {\n let err: Error | undefined\n try {\n await service.testLog(\n mockOwnershipTransferredLog('0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91', {\n previousOwner: '0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91',\n newOwner: '0x0000000000000000000000000000000000000000',\n })\n )\n } catch (e) {\n err = e\n }\n assert(err?.message.includes('overflow'))\n })\n})\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_1 = require("chai");
4
- const testing_1 = require("../testing");
5
- const ethers_1 = require("ethers");
6
- const test_utils_1 = require("../builtin/erc20/test-utils");
7
- const erc20_processor_1 = require("../builtin/internal/erc20_processor");
8
- describe('Test Error Capture', () => {
9
- const service = new testing_1.TestProcessorServer(() => {
10
- erc20_processor_1.ERC20Processor.bind({ address: '0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91' })
11
- .onEventApproval((evt, ctx) => {
12
- ctx.logger.info(`approve ${evt.args}`);
13
- })
14
- .onEventTransfer((evt, ctx) => {
15
- ctx.logger.warn('transferred ' + evt.args.value, { from: evt.args.from });
16
- });
17
- });
18
- beforeAll(async () => {
19
- await service.start();
20
- });
21
- test('Check approve', async () => {
22
- const res = await service.testLog((0, test_utils_1.mockApprovalLog)('0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91', {
23
- owner: '0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91',
24
- spender: '0x0000000000000000000000000000000000000000',
25
- value: ethers_1.BigNumber.from(0),
26
- }));
27
- (0, chai_1.assert)(res.result?.logs?.[0].message.includes('approve '));
28
- });
29
- test('Check transfer', async () => {
30
- const res = await service.testLog((0, test_utils_1.mockTransferLog)('0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91', {
31
- from: '0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91',
32
- to: '0x0000000000000000000000000000000000000000',
33
- value: ethers_1.BigNumber.from(0),
34
- }));
35
- const log = res.result?.logs?.[0];
36
- (0, chai_1.expect)(log?.message).eq('transferred 0');
37
- (0, chai_1.expect)(JSON.parse(log?.attributes || '')['from'].toLowerCase()).eq('0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91');
38
- });
39
- });
40
- //# sourceMappingURL=logger.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.test.js","sourceRoot":"","sources":["../../src/tests/logger.test.ts"],"names":[],"mappings":";;AAAA,+BAAqC;AAErC,wCAAgD;AAChD,mCAAkC;AAClC,4DAA8E;AAC9E,yEAAoE;AAEpE,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,MAAM,OAAO,GAAG,IAAI,6BAAmB,CAAC,GAAG,EAAE;QAC3C,gCAAc,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC;aAC3E,eAAe,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC5B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;QACxC,CAAC,CAAC;aACD,eAAe,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC5B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC3E,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAC/B,IAAA,4BAAe,EAAC,4CAA4C,EAAE;YAC5D,KAAK,EAAE,4CAA4C;YACnD,OAAO,EAAE,4CAA4C;YACrD,KAAK,EAAE,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC;SACzB,CAAC,CACH,CAAA;QACD,IAAA,aAAM,EAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAC/B,IAAA,4BAAe,EAAC,4CAA4C,EAAE;YAC5D,IAAI,EAAE,4CAA4C;YAClD,EAAE,EAAE,4CAA4C;YAChD,KAAK,EAAE,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC;SACzB,CAAC,CACH,CAAA;QACD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QACjC,IAAA,aAAM,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAA;QACxC,IAAA,aAAM,EAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,4CAA4C,CAAC,CAAA;IAClH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { assert, expect } from 'chai'\n\nimport { TestProcessorServer } from '../testing'\nimport { BigNumber } from 'ethers'\nimport { mockApprovalLog, mockTransferLog } from '../builtin/erc20/test-utils'\nimport { ERC20Processor } from '../builtin/internal/erc20_processor'\n\ndescribe('Test Error Capture', () => {\n const service = new TestProcessorServer(() => {\n ERC20Processor.bind({ address: '0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91' })\n .onEventApproval((evt, ctx) => {\n ctx.logger.info(`approve ${evt.args}`)\n })\n .onEventTransfer((evt, ctx) => {\n ctx.logger.warn('transferred ' + evt.args.value, { from: evt.args.from })\n })\n })\n\n beforeAll(async () => {\n await service.start()\n })\n\n test('Check approve', async () => {\n const res = await service.testLog(\n mockApprovalLog('0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91', {\n owner: '0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91',\n spender: '0x0000000000000000000000000000000000000000',\n value: BigNumber.from(0),\n })\n )\n assert(res.result?.logs?.[0].message.includes('approve '))\n })\n\n test('Check transfer', async () => {\n const res = await service.testLog(\n mockTransferLog('0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91', {\n from: '0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91',\n to: '0x0000000000000000000000000000000000000000',\n value: BigNumber.from(0),\n })\n )\n const log = res.result?.logs?.[0]\n expect(log?.message).eq('transferred 0')\n expect(JSON.parse(log?.attributes || '')['from'].toLowerCase()).eq('0x80009ff8154bd5653c6dda2fa5f5053e5a5c1a91')\n })\n})\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,77 +0,0 @@
1
- "use strict";
2
- // TODO move out of this package
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- const chai_1 = require("chai");
8
- const __1 = require("..");
9
- const long_1 = __importDefault(require("long"));
10
- const util_1 = require("util");
11
- const testing_1 = require("../testing");
12
- describe('Test Solana Example', () => {
13
- const service = new testing_1.TestProcessorServer(() => {
14
- require('./wormhole-token-bridge');
15
- });
16
- beforeAll(async () => {
17
- await service.start({ templateInstances: [] });
18
- });
19
- test('check configuration ', async () => {
20
- const config = await service.getConfig({});
21
- (0, chai_1.expect)(config.contractConfigs).length(2);
22
- });
23
- test('Check wormhole token bridge instruction dispatch', async () => {
24
- const request = {
25
- instructions: [
26
- {
27
- instructionData: '33G5T8yXAQWdH8FX7fTy1mBJ6e4dUKfQWbViSrT7qJjpS8UAA3ftEQx9sNzrkaJm56xtENhDsWf',
28
- slot: long_1.default.fromNumber(12345),
29
- programAccountId: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',
30
- accounts: ['worm'],
31
- },
32
- {
33
- instructionData: '33G5T8yXAQWdH8FX7fTy1mBJ6e4dUKfQWbViSrT7qJjpS8UAA3ftEQx9sNzrkaJm56xtENhDsWf',
34
- slot: long_1.default.fromNumber(1),
35
- programAccountId: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',
36
- accounts: ['worm'],
37
- },
38
- ],
39
- };
40
- const res = await service.processInstructions(request);
41
- (0, chai_1.expect)(res.result?.counters).length(4);
42
- (0, chai_1.expect)(res.result?.gauges).length(0);
43
- (0, chai_1.expect)(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(12345);
44
- (0, chai_1.expect)((0, testing_1.firstCounterValue)(res.result, 'total_transfer_amount')).equal(1000000n);
45
- (0, chai_1.expect)((0, testing_1.firstCounterValue)(res.result, 'worm')).equal(1000000n);
46
- (0, chai_1.expect)(res.result?.counters[0].runtimeInfo?.from).equals(__1.HandlerType.INSTRUCTION);
47
- });
48
- test('Check SPLToken parsed instruction dispatch', async () => {
49
- const parsedIns = {
50
- info: {
51
- account: '2SDN4vEJdCdW3pGyhx2km9gB3LeHzMGLrG2j4uVNZfrx',
52
- amount: '12000000000000',
53
- mint: '7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs',
54
- mintAuthority: 'BCD75RNBHrJJpW4dXVagL5mPjzRLnVZq4YirJdjEYMV7',
55
- },
56
- type: 'mintTo',
57
- };
58
- const request = {
59
- instructions: [
60
- {
61
- instructionData: '',
62
- slot: long_1.default.fromNumber(0),
63
- programAccountId: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',
64
- parsed: new util_1.TextEncoder().encode(JSON.stringify(parsedIns)),
65
- accounts: [],
66
- },
67
- ],
68
- };
69
- const res = await service.processInstructions(request);
70
- (0, chai_1.expect)(res.result?.counters).length(1);
71
- (0, chai_1.expect)(res.result?.gauges).length(0);
72
- (0, chai_1.expect)(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(0);
73
- (0, chai_1.expect)((0, testing_1.firstCounterValue)(res.result, 'totalWeth_supply')).equal(12000000000000);
74
- (0, chai_1.expect)(res.result?.counters[0].runtimeInfo?.from).equals(__1.HandlerType.INSTRUCTION);
75
- });
76
- });
77
- //# sourceMappingURL=solana.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solana.test.js","sourceRoot":"","sources":["../../src/tests/solana.test.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO move out of this package\n\nimport { expect } from 'chai'\n\nimport { HandlerType, ProcessInstructionsRequest } from '..'\n\nimport Long from 'long'\nimport { TextEncoder } from 'util'\nimport { TestProcessorServer, firstCounterValue } from '../testing'\n\ndescribe('Test Solana Example', () => {\n const service = new TestProcessorServer(() => {\n require('./wormhole-token-bridge')\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(2)\n })\n\n test('Check wormhole token bridge instruction dispatch', async () => {\n const request: ProcessInstructionsRequest = {\n instructions: [\n {\n instructionData: '33G5T8yXAQWdH8FX7fTy1mBJ6e4dUKfQWbViSrT7qJjpS8UAA3ftEQx9sNzrkaJm56xtENhDsWf',\n slot: Long.fromNumber(12345),\n programAccountId: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',\n accounts: ['worm'],\n },\n {\n instructionData: '33G5T8yXAQWdH8FX7fTy1mBJ6e4dUKfQWbViSrT7qJjpS8UAA3ftEQx9sNzrkaJm56xtENhDsWf',\n slot: Long.fromNumber(1),\n programAccountId: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',\n accounts: ['worm'],\n },\n ],\n }\n const res = await service.processInstructions(request)\n expect(res.result?.counters).length(4)\n expect(res.result?.gauges).length(0)\n expect(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(12345)\n expect(firstCounterValue(res.result, 'total_transfer_amount')).equal(1000000n)\n expect(firstCounterValue(res.result, 'worm')).equal(1000000n)\n expect(res.result?.counters[0].runtimeInfo?.from).equals(HandlerType.INSTRUCTION)\n })\n\n test('Check SPLToken parsed instruction dispatch', async () => {\n const parsedIns = {\n info: {\n account: '2SDN4vEJdCdW3pGyhx2km9gB3LeHzMGLrG2j4uVNZfrx',\n amount: '12000000000000',\n mint: '7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs',\n mintAuthority: 'BCD75RNBHrJJpW4dXVagL5mPjzRLnVZq4YirJdjEYMV7',\n },\n type: 'mintTo',\n }\n const request: ProcessInstructionsRequest = {\n instructions: [\n {\n instructionData: '',\n slot: Long.fromNumber(0),\n programAccountId: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',\n parsed: new TextEncoder().encode(JSON.stringify(parsedIns)),\n accounts: [],\n },\n ],\n }\n const res = await service.processInstructions(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(0)\n expect(firstCounterValue(res.result, 'totalWeth_supply')).equal(12000000000000)\n expect(res.result?.counters[0].runtimeInfo?.from).equals(HandlerType.INSTRUCTION)\n })\n})\n"]}
@@ -1 +0,0 @@
1
- export {};