@sentio/sdk 2.11.0-rc.3 → 2.11.0-rc.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.
@@ -0,0 +1,3 @@
1
+ import { Event, Transaction_UserTransaction } from '../move-types.js';
2
+ export declare function getDepositCoinType(evt: Event, tx: Transaction_UserTransaction): string;
3
+ export declare function getWithDrawCoinType(evt: Event, tx: Transaction_UserTransaction): string;
@@ -0,0 +1,33 @@
1
+ import { parseMoveType } from '../../move/index.js';
2
+ // TODO event handler name could be auto located from ABI
3
+ function findResourceChangeType(evt, tx, eventHandlerName) {
4
+ if (!tx.changes) {
5
+ throw Error('No resource change found, did you forget set fetchOption to { resourceChanges: true } ');
6
+ }
7
+ for (const change of tx.changes) {
8
+ if (change.type !== 'write_resource') {
9
+ continue;
10
+ }
11
+ const writeResource = change;
12
+ if (writeResource.address !== evt.guid.account_address) {
13
+ continue;
14
+ }
15
+ const state = writeResource.data.data[eventHandlerName];
16
+ if (BigInt(state.counter) === BigInt(evt.sequence_number) + 1n &&
17
+ state.guid.id.addr === evt.guid.account_address &&
18
+ state.guid.id.creation_num === evt.guid.creation_number) {
19
+ return writeResource.data.type;
20
+ }
21
+ }
22
+ const errStr = `Can't find matched resource change type: ${JSON.stringify(evt.data)} ${tx.version} ${eventHandlerName}`;
23
+ throw Error(errStr);
24
+ }
25
+ export function getDepositCoinType(evt, tx) {
26
+ const coinStore = findResourceChangeType(evt, tx, 'deposit_events');
27
+ return parseMoveType(coinStore).typeArgs[0].getSignature();
28
+ }
29
+ export function getWithDrawCoinType(evt, tx) {
30
+ const coinStore = findResourceChangeType(evt, tx, 'withdraw_events');
31
+ return parseMoveType(coinStore).typeArgs[0].getSignature();
32
+ }
33
+ //# sourceMappingURL=coin-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coin-event.js","sourceRoot":"","sources":["../../../src/aptos/ext/coin-event.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAYnD,yDAAyD;AACzD,SAAS,sBAAsB,CAAC,GAAU,EAAE,EAA+B,EAAE,gBAAwB;IACnG,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE;QACf,MAAM,KAAK,CAAC,yFAAyF,CAAC,CAAA;KACvG;IAED,KAAK,MAAM,MAAM,IAAI,EAAE,CAAC,OAAO,EAAE;QAC/B,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE;YACpC,SAAQ;SACT;QAED,MAAM,aAAa,GAAG,MAA4C,CAAA;QAClE,IAAI,aAAa,CAAC,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE;YACtD,SAAQ;SACT;QAED,MAAM,KAAK,GAAuB,aAAa,CAAC,IAAI,CAAC,IAAY,CAAC,gBAAgB,CAAC,CAAA;QAEnF,IACE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE;YAC1D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,eAAe;YAC/C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,IAAI,CAAC,eAAe,EACvD;YACA,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAA;SAC/B;KACF;IAED,MAAM,MAAM,GAAG,4CAA4C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IACjF,EAAE,CAAC,OACL,IAAI,gBAAgB,EAAE,CAAA;IACtB,MAAM,KAAK,CAAC,MAAM,CAAC,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAU,EAAE,EAA+B;IAC5E,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,EAAE,EAAE,EAAE,gBAAgB,CAAC,CAAA;IACnE,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAU,EAAE,EAA+B;IAC7E,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAA;IACpE,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAA;AAC5D,CAAC","sourcesContent":["import { Event, Transaction_UserTransaction } from '../move-types.js'\nimport { Types } from 'aptos-sdk'\nimport { parseMoveType } from '../../move/index.js'\n\ninterface EventHandlerState {\n counter: string\n guid: {\n id: {\n addr: string\n creation_num: string\n }\n }\n}\n\n// TODO event handler name could be auto located from ABI\nfunction findResourceChangeType(evt: Event, tx: Transaction_UserTransaction, eventHandlerName: string) {\n if (!tx.changes) {\n throw Error('No resource change found, did you forget set fetchOption to { resourceChanges: true } ')\n }\n\n for (const change of tx.changes) {\n if (change.type !== 'write_resource') {\n continue\n }\n\n const writeResource = change as Types.WriteSetChange_WriteResource\n if (writeResource.address !== evt.guid.account_address) {\n continue\n }\n\n const state: EventHandlerState = (writeResource.data.data as any)[eventHandlerName]\n\n if (\n BigInt(state.counter) === BigInt(evt.sequence_number) + 1n &&\n state.guid.id.addr === evt.guid.account_address &&\n state.guid.id.creation_num === evt.guid.creation_number\n ) {\n return writeResource.data.type\n }\n }\n\n const errStr = `Can't find matched resource change type: ${JSON.stringify(evt.data)} ${\n tx.version\n } ${eventHandlerName}`\n throw Error(errStr)\n}\n\nexport function getDepositCoinType(evt: Event, tx: Transaction_UserTransaction) {\n const coinStore = findResourceChangeType(evt, tx, 'deposit_events')\n return parseMoveType(coinStore).typeArgs[0].getSignature()\n}\n\nexport function getWithDrawCoinType(evt: Event, tx: Transaction_UserTransaction) {\n const coinStore = findResourceChangeType(evt, tx, 'withdraw_events')\n return parseMoveType(coinStore).typeArgs[0].getSignature()\n}\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coin-event.test.js","sourceRoot":"","sources":["../../../src/aptos/ext/coin-event.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { getDepositCoinType, getWithDrawCoinType } from './coin-event.js'\nimport { expect } from 'chai'\nimport { Transaction_UserTransaction } from '../move-types.js'\n\ndescribe('resource change ', () => {\n test('withdraw usdc', () => {\n const evt = tx.events[0]\n const type = getWithDrawCoinType(evt, tx)\n expect(type).eq('0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC')\n })\n\n test('deposit usdc', () => {\n const evt = tx.events[1]\n const type = getDepositCoinType(evt, tx)\n expect(type).eq('0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC')\n })\n\n test('deposit thl', () => {\n const evt = tx.events[4]\n const type = getDepositCoinType(evt, tx)\n expect(type).eq('0x7fd500c11216f0fe3095d0c4b8aa4d64a4e2e04f83758462f2b127255643615::thl_coin::THL')\n })\n})\n\nconst tx: Transaction_UserTransaction = {\n version: '112145263',\n hash: '0xe8a9cc7e974ce2c0b737241f034e76dc03c6b6e2eea2deb3538ba9c5fa18c6c6',\n state_change_hash: '0xc8e8d9cebaf525d1a330cd68bfcff596e364f67df37ccb50a4ad2f5ce7855e36',\n event_root_hash: '0x419261b51b786ac315ada03ec34be32cf2187c4f5e8604fa71d6896b1a371108',\n gas_used: '10974',\n success: true,\n vm_status: 'Executed successfully',\n accumulator_root_hash: '0x8d56f2a61ffe3df0565850cb2e8a7e4d94c2dc6a8401e51d55946932de25309f',\n changes: [\n {\n address: '0x121d3f79798e75b04273f6364b8973e61e8fcab896a44f1e0914d97f4d36d6de',\n state_key_hash: '0x06c0d616285a1917619b93784eeca7deeb42fcc4c3a3fceaa050afa372543182',\n data: {\n type: '0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>',\n data: {\n coin: {\n value: '508465811',\n },\n deposit_events: {\n counter: '5',\n guid: {\n id: {\n addr: '0x121d3f79798e75b04273f6364b8973e61e8fcab896a44f1e0914d97f4d36d6de',\n creation_num: '2',\n },\n },\n },\n frozen: false,\n withdraw_events: {\n counter: '20',\n guid: {\n id: {\n addr: '0x121d3f79798e75b04273f6364b8973e61e8fcab896a44f1e0914d97f4d36d6de',\n creation_num: '3',\n },\n },\n },\n },\n },\n type: 'write_resource',\n },\n {\n address: '0x121d3f79798e75b04273f6364b8973e61e8fcab896a44f1e0914d97f4d36d6de',\n state_key_hash: '0x0bf2b538b396fedbd1aa90cabfdc29ba93c466b0c110b5ffb81305aa6e82ef16',\n data: {\n type: '0x1::coin::CoinStore<0x7fd500c11216f0fe3095d0c4b8aa4d64a4e2e04f83758462f2b127255643615::thl_coin::THL>',\n data: {\n coin: {\n value: '5811069565',\n },\n deposit_events: {\n counter: '1',\n guid: {\n id: {\n addr: '0x121d3f79798e75b04273f6364b8973e61e8fcab896a44f1e0914d97f4d36d6de',\n creation_num: '17',\n },\n },\n },\n frozen: false,\n withdraw_events: {\n counter: '0',\n guid: {\n id: {\n addr: '0x121d3f79798e75b04273f6364b8973e61e8fcab896a44f1e0914d97f4d36d6de',\n creation_num: '18',\n },\n },\n },\n },\n },\n type: 'write_resource',\n },\n {\n address: '0x121d3f79798e75b04273f6364b8973e61e8fcab896a44f1e0914d97f4d36d6de',\n state_key_hash: '0x43f2dc6124f3c13a30d716c0359d50246ecaec8376c9928e87d1bc8895e6b51e',\n data: {\n type: '0x1::coin::CoinStore<0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC>',\n data: {\n coin: {\n value: '103679210',\n },\n deposit_events: {\n counter: '2',\n guid: {\n id: {\n addr: '0x121d3f79798e75b04273f6364b8973e61e8fcab896a44f1e0914d97f4d36d6de',\n creation_num: '15',\n },\n },\n },\n frozen: false,\n withdraw_events: {\n counter: '1',\n guid: {\n id: {\n addr: '0x121d3f79798e75b04273f6364b8973e61e8fcab896a44f1e0914d97f4d36d6de',\n creation_num: '16',\n },\n },\n },\n },\n },\n type: 'write_resource',\n },\n {\n address: '0x121d3f79798e75b04273f6364b8973e61e8fcab896a44f1e0914d97f4d36d6de',\n state_key_hash: '0x909bb549fa3d06c40ef7dbbafe0d19838d4c8024f94c352e27aaeec2dcedf690',\n data: {\n type: '0x1::account::Account',\n data: {\n authentication_key: '0x121d3f79798e75b04273f6364b8973e61e8fcab896a44f1e0914d97f4d36d6de',\n coin_register_events: {\n counter: '6',\n guid: {\n id: {\n addr: '0x121d3f79798e75b04273f6364b8973e61e8fcab896a44f1e0914d97f4d36d6de',\n creation_num: '0',\n },\n },\n },\n guid_creation_num: '19',\n key_rotation_events: {\n counter: '0',\n guid: {\n id: {\n addr: '0x121d3f79798e75b04273f6364b8973e61e8fcab896a44f1e0914d97f4d36d6de',\n creation_num: '1',\n },\n },\n },\n rotation_capability_offer: {\n for: {\n vec: [],\n },\n },\n sequence_number: '24',\n signer_capability_offer: {\n for: {\n vec: [],\n },\n },\n },\n },\n type: 'write_resource',\n },\n {\n address: '0x6970b4878c3aea96732be3f31c2dded12d94d9455ff0c76c67d84859dce35136',\n state_key_hash: '0x9b9cc662dd91ed7ca91208cc659642ffbe16e7bafafbc5e98062a85b867c876d',\n data: {\n type: '0x1::coin::CoinStore<0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC>',\n data: {\n coin: {\n value: '42779473',\n },\n deposit_events: {\n counter: '181',\n guid: {\n id: {\n addr: '0x6970b4878c3aea96732be3f31c2dded12d94d9455ff0c76c67d84859dce35136',\n creation_num: '8',\n },\n },\n },\n frozen: false,\n withdraw_events: {\n counter: '0',\n guid: {\n id: {\n addr: '0x6970b4878c3aea96732be3f31c2dded12d94d9455ff0c76c67d84859dce35136',\n creation_num: '9',\n },\n },\n },\n },\n },\n type: 'write_resource',\n },\n {\n state_key_hash: '0x7b6af779cb568ceab26c256848a7da4c1e32be96b445674bb23f4d895a137090',\n handle: '0x1ae3702f4b77f5422c21a1e821a3863a2bb05b13c6663ba3e5e325ad82973c0c',\n key: '0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9',\n value:\n '0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9ac4c20318e000000b81e85eb51b81e05000000000000000033333333333333b300000000000000002ec7f0639c5e030000000000d4fa950201000000000000005c8fc2f5285c8f020000000000000000f06527640000000070fd2d64000000000070c9b28b0000000060891c056003000000000000000000000000000000000000010000000000000005000000000000006970b4878c3aea96732be3f31c2dded12d94d9455ff0c76c67d84859dce35136000000000000000006000000000000006970b4878c3aea96732be3f31c2dded12d94d9455ff0c76c67d84859dce35136db0000000000000007000000000000006970b4878c3aea96732be3f31c2dded12d94d9455ff0c76c67d84859dce35136',\n type: 'write_table_item',\n },\n {\n state_key_hash: '0x6e4b28d40f98a106a65163530924c0dcb40c1349d3aa915d108b4d6cfc1ddb19',\n handle: '0x1b854694ae746cdbd8d44186ca4929b2b337df21d1c74633be19b2710552fdca',\n key: '0x0619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935',\n value: '0x0111df3e1bfc6c010000000000000000',\n type: 'write_table_item',\n },\n ],\n sender: '0x121d3f79798e75b04273f6364b8973e61e8fcab896a44f1e0914d97f4d36d6de',\n sequence_number: '23',\n max_gas_amount: '21796',\n gas_unit_price: '220',\n expiration_timestamp_secs: '1680391931',\n payload: {\n function: '0x6970b4878c3aea96732be3f31c2dded12d94d9455ff0c76c67d84859dce35136::lbp_scripts::swap_exact_in',\n type_arguments: [\n '0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC',\n '0x7fd500c11216f0fe3095d0c4b8aa4d64a4e2e04f83758462f2b127255643615::thl_coin::THL',\n '0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC',\n '0x7fd500c11216f0fe3095d0c4b8aa4d64a4e2e04f83758462f2b127255643615::thl_coin::THL',\n ],\n arguments: ['0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9', '20000000', '5777018785'],\n type: 'entry_function_payload',\n },\n signature: {\n public_key: '0xb9c9d2fc80b377d75d5b78d30cc2f0edb046a215c3e46444ed2ce66b0788ebff',\n signature:\n '0x5b9cd5d8ae0d100e956ec2d8a15844de0777b692985a61b7038b6a9d5c28e5ad03606f82760bf0fa6312697dfc2c56f47665d12ddfaf056d3e00583a8ed7840a',\n type: 'ed25519_signature',\n },\n events: [\n {\n guid: {\n creation_number: '16',\n account_address: '0x121d3f79798e75b04273f6364b8973e61e8fcab896a44f1e0914d97f4d36d6de',\n },\n sequence_number: '0',\n type: '0x1::coin::WithdrawEvent',\n data: {\n amount: '20000000',\n },\n },\n {\n guid: {\n creation_number: '8',\n account_address: '0x6970b4878c3aea96732be3f31c2dded12d94d9455ff0c76c67d84859dce35136',\n },\n sequence_number: '180',\n type: '0x1::coin::DepositEvent',\n data: {\n amount: '40000',\n },\n },\n {\n guid: {\n creation_number: '7',\n account_address: '0x6970b4878c3aea96732be3f31c2dded12d94d9455ff0c76c67d84859dce35136',\n },\n sequence_number: '218',\n type: '0x6970b4878c3aea96732be3f31c2dded12d94d9455ff0c76c67d84859dce35136::lbp::SwapEvent<0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC, 0x7fd500c11216f0fe3095d0c4b8aa4d64a4e2e04f83758462f2b127255643615::thl_coin::THL>',\n data: {\n amount_in: '20000000',\n amount_out: '5811069565',\n balance_0: '610709556396',\n balance_1: '948450714765102',\n creator_addr: '0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9',\n fee_amount: '200000',\n is_buy: true,\n weight_0: {\n v: '2932309810243598415',\n },\n weight_1: {\n v: '15514434263465953201',\n },\n },\n },\n {\n guid: {\n creation_number: '0',\n account_address: '0x121d3f79798e75b04273f6364b8973e61e8fcab896a44f1e0914d97f4d36d6de',\n },\n sequence_number: '5',\n type: '0x1::account::CoinRegisterEvent',\n data: {\n type_info: {\n account_address: '0x7fd500c11216f0fe3095d0c4b8aa4d64a4e2e04f83758462f2b127255643615',\n module_name: '0x74686c5f636f696e',\n struct_name: '0x54484c',\n },\n },\n },\n {\n guid: {\n creation_number: '17',\n account_address: '0x121d3f79798e75b04273f6364b8973e61e8fcab896a44f1e0914d97f4d36d6de',\n },\n sequence_number: '0',\n type: '0x1::coin::DepositEvent',\n data: {\n amount: '5811069565',\n },\n },\n ],\n timestamp: '1680391881111067',\n type: 'user_transaction',\n}\n"]}
@@ -1,2 +1,3 @@
1
1
  export * from './aptos-dex.js';
2
2
  export * from './coin.js';
3
+ export * from './coin-event.js';
@@ -1,3 +1,4 @@
1
1
  export * from './aptos-dex.js';
2
2
  export * from './coin.js';
3
+ export * from './coin-event.js';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/aptos/ext/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA","sourcesContent":["export * from './aptos-dex.js'\nexport * from './coin.js'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/aptos/ext/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA","sourcesContent":["export * from './aptos-dex.js'\nexport * from './coin.js'\nexport * from './coin-event.js'\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sentio/sdk",
3
3
  "license": "Apache-2.0",
4
- "version": "2.11.0-rc.3",
4
+ "version": "2.11.0-rc.4",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "compile": "tsc && cp src/utils/*.csv lib/utils && cp src/tsup.config.ts lib",
@@ -23,8 +23,8 @@
23
23
  "@project-serum/anchor": "^0.26.0",
24
24
  "@sentio/bigdecimal": "^9.1.1-patch.3",
25
25
  "@sentio/ethers-v6": "^1.0.25",
26
- "@sentio/protos": "^2.11.0-rc.3",
27
- "@sentio/runtime": "^2.11.0-rc.3",
26
+ "@sentio/protos": "^2.11.0-rc.4",
27
+ "@sentio/runtime": "^2.11.0-rc.4",
28
28
  "@solana/web3.js": "^1.73.2",
29
29
  "@types/prettier": "^2.7.2",
30
30
  "aptos-sdk": "npm:aptos@^1.7.1",
@@ -83,5 +83,5 @@
83
83
  "engines": {
84
84
  "node": ">=16"
85
85
  },
86
- "gitHead": "96d5331fadc018694e7544a47a300c2fde9e217c"
86
+ "gitHead": "ffcec91c9cb2b2323b0f6e45e8ec3b5711ca065f"
87
87
  }
@@ -0,0 +1,56 @@
1
+ import { Event, Transaction_UserTransaction } from '../move-types.js'
2
+ import { Types } from 'aptos-sdk'
3
+ import { parseMoveType } from '../../move/index.js'
4
+
5
+ interface EventHandlerState {
6
+ counter: string
7
+ guid: {
8
+ id: {
9
+ addr: string
10
+ creation_num: string
11
+ }
12
+ }
13
+ }
14
+
15
+ // TODO event handler name could be auto located from ABI
16
+ function findResourceChangeType(evt: Event, tx: Transaction_UserTransaction, eventHandlerName: string) {
17
+ if (!tx.changes) {
18
+ throw Error('No resource change found, did you forget set fetchOption to { resourceChanges: true } ')
19
+ }
20
+
21
+ for (const change of tx.changes) {
22
+ if (change.type !== 'write_resource') {
23
+ continue
24
+ }
25
+
26
+ const writeResource = change as Types.WriteSetChange_WriteResource
27
+ if (writeResource.address !== evt.guid.account_address) {
28
+ continue
29
+ }
30
+
31
+ const state: EventHandlerState = (writeResource.data.data as any)[eventHandlerName]
32
+
33
+ if (
34
+ BigInt(state.counter) === BigInt(evt.sequence_number) + 1n &&
35
+ state.guid.id.addr === evt.guid.account_address &&
36
+ state.guid.id.creation_num === evt.guid.creation_number
37
+ ) {
38
+ return writeResource.data.type
39
+ }
40
+ }
41
+
42
+ const errStr = `Can't find matched resource change type: ${JSON.stringify(evt.data)} ${
43
+ tx.version
44
+ } ${eventHandlerName}`
45
+ throw Error(errStr)
46
+ }
47
+
48
+ export function getDepositCoinType(evt: Event, tx: Transaction_UserTransaction) {
49
+ const coinStore = findResourceChangeType(evt, tx, 'deposit_events')
50
+ return parseMoveType(coinStore).typeArgs[0].getSignature()
51
+ }
52
+
53
+ export function getWithDrawCoinType(evt: Event, tx: Transaction_UserTransaction) {
54
+ const coinStore = findResourceChangeType(evt, tx, 'withdraw_events')
55
+ return parseMoveType(coinStore).typeArgs[0].getSignature()
56
+ }
@@ -1,2 +1,3 @@
1
1
  export * from './aptos-dex.js'
2
2
  export * from './coin.js'
3
+ export * from './coin-event.js'