@indexing/jiti 0.0.35 → 0.0.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js CHANGED
@@ -74,7 +74,32 @@ const $25d5bdd23cba31eb$export$ace043a4f2efe476 = {
74
74
  for (const tx of block.transactions){
75
75
  if (!tx?.events || !Array.isArray(tx.events)) continue;
76
76
  const timestamp = tx.timestamp ? new Date(parseInt(tx.timestamp, 10) / 1000).toISOString() : null;
77
+ const gasUsed = BigInt(tx.gas_used || "0");
77
78
  const transfersByKey = {};
79
+ const sender = tx.sender;
80
+ const accountAddressMap = {};
81
+ const changes = tx.changes;
82
+ for(let ci = 0; ci < changes.length; ci += 1){
83
+ if (!changes[ci]?.data) continue;
84
+ const { address: accountAddress, data: { data: { balance: balance, metadata: metadata }, type: changeType } } = changes[ci];
85
+ if (changeType === "0x1::fungible_asset::FungibleStore") {
86
+ if (!accountAddressMap[accountAddress]) accountAddressMap[accountAddress] = changes[ci + 1]?.data.data.owner;
87
+ const to = accountAddressMap[accountAddress];
88
+ const tokenAddress = metadata?.inner;
89
+ if (!to || !tokenAddress || to === sender) continue;
90
+ transfers.push({
91
+ amount: BigInt(balance),
92
+ blockNumber: parseInt(block.block_height, 10),
93
+ from: sender,
94
+ to: to,
95
+ timestamp: timestamp,
96
+ token: tokenAddress,
97
+ tokenType: "TOKEN",
98
+ transactionGasFee: gasUsed,
99
+ transactionHash: tx.hash
100
+ });
101
+ }
102
+ }
78
103
  for (const evt of tx.events){
79
104
  const evtType = evt.type;
80
105
  if (/::(Withdraw|Deposit)[^:]*/.test(evtType)) {
@@ -96,11 +121,11 @@ const $25d5bdd23cba31eb$export$ace043a4f2efe476 = {
96
121
  if (!partial.from || !partial.to) continue;
97
122
  const fromAddr = partial.from.length < 66 ? `0x0${partial.from.slice(2)}` : partial.from;
98
123
  const toAddr = partial.to.length < 66 ? `0x0${partial.to.slice(2)}` : partial.to;
124
+ if (toAddr === "0x00") continue;
99
125
  let finalToken = null;
100
126
  let finalTokenType = "TOKEN";
101
127
  if (partial.tokenAddress?.toLowerCase().includes("aptos_coin")) finalToken = null;
102
128
  else finalToken = partial.tokenAddress?.toLowerCase();
103
- const gasUsed = BigInt(tx.gas_used || "0");
104
129
  transfers.push({
105
130
  amount: BigInt(partial.amount),
106
131
  blockNumber: parseInt(block.block_height, 10),
@@ -155,6 +180,17 @@ const $25d5bdd23cba31eb$export$ace043a4f2efe476 = {
155
180
  },
156
181
  payload: "https://jiti.indexing.co/networks/aptos/303623631",
157
182
  output: [
183
+ {
184
+ amount: 3000160n,
185
+ blockNumber: 303623631,
186
+ from: "0xa4e7455d27731ab857e9701b1e6ed72591132b909fe6e4fd99b66c1d6318d9e8",
187
+ timestamp: "2025-03-14T15:39:49.845Z",
188
+ to: "0x9317336bfc9ba6987d40492ddea8d41e11b7c2e473f3556a9c82309d326e79ce",
189
+ token: "0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b",
190
+ tokenType: "TOKEN",
191
+ transactionGasFee: 16n,
192
+ transactionHash: "0x24b8854bad1f6543b35069eacd6ec40a583ca7fa452b422b04d747d24b65279c"
193
+ },
158
194
  {
159
195
  amount: 1000060n,
160
196
  blockNumber: 303623631,
@@ -167,6 +203,27 @@ const $25d5bdd23cba31eb$export$ace043a4f2efe476 = {
167
203
  transactionHash: "0x24b8854bad1f6543b35069eacd6ec40a583ca7fa452b422b04d747d24b65279c"
168
204
  }
169
205
  ]
206
+ },
207
+ {
208
+ params: {
209
+ network: "APTOS",
210
+ contractAddress: "0x357b0b74bc833e95a115ad22604854d6b0fca151cecd94111770e5d6ffc9dc2b",
211
+ walletAddress: "0x1a07942979574456e8197ac0ba8e3bfcf93d7922493cc3ca0c6b46b580b0a47e"
212
+ },
213
+ payload: "https://jiti.indexing.co/networks/aptos/326121833",
214
+ output: [
215
+ {
216
+ amount: 10000000n,
217
+ blockNumber: 326121833,
218
+ from: "0xd91c64b777e51395c6ea9dec562ed79a4afa0cd6dad5a87b187c37198a1f855a",
219
+ timestamp: "2025-04-19T08:57:28.135Z",
220
+ to: "0x1a07942979574456e8197ac0ba8e3bfcf93d7922493cc3ca0c6b46b580b0a47e",
221
+ token: "0x357b0b74bc833e95a115ad22604854d6b0fca151cecd94111770e5d6ffc9dc2b",
222
+ tokenType: "TOKEN",
223
+ transactionGasFee: 10877n,
224
+ transactionHash: "0xc5a21679a947f986908b09091516bc3896245d974686ca2bd5709b7dbc5118fb"
225
+ }
226
+ ]
170
227
  }
171
228
  ]
172
229
  };
@@ -947,7 +1004,18 @@ const $290fd8bc430da9f0$export$1f0fe79deb1b813b = {
947
1004
  };
948
1005
  if (isNegDiff) delete txfer.to;
949
1006
  else delete txfer.from;
950
- transfersByKey[key] = Object.assign(transfersByKey[key] || {}, txfer);
1007
+ if (!transfersByKey[key]) transfersByKey[key] = [
1008
+ txfer
1009
+ ];
1010
+ else {
1011
+ let didMerge = false;
1012
+ for(let tbi = 0; tbi < transfersByKey[key].length; tbi += 1)if (txfer.to && !transfersByKey[key][tbi].to || txfer.from && !transfersByKey[key][tbi].from) {
1013
+ didMerge = true;
1014
+ transfersByKey[key][tbi] = Object.assign(transfersByKey[key][tbi] || {}, txfer);
1015
+ break;
1016
+ }
1017
+ if (!didMerge) transfersByKey[key].push(txfer);
1018
+ }
951
1019
  matched = true;
952
1020
  }
953
1021
  if (!matched) {
@@ -968,7 +1036,18 @@ const $290fd8bc430da9f0$export$1f0fe79deb1b813b = {
968
1036
  };
969
1037
  if (isNegDiff) delete txfer.to;
970
1038
  else delete txfer.from;
971
- transfersByKey[key] = Object.assign(transfersByKey[key] || {}, txfer);
1039
+ if (!transfersByKey[key]) transfersByKey[key] = [
1040
+ txfer
1041
+ ];
1042
+ else {
1043
+ let didMerge = false;
1044
+ for(let tbi = 0; tbi < transfersByKey[key].length; tbi += 1)if (txfer.to && !transfersByKey[key][tbi].to || txfer.from && !transfersByKey[key][tbi].from) {
1045
+ didMerge = true;
1046
+ transfersByKey[key][tbi] = Object.assign(transfersByKey[key][tbi] || {}, txfer);
1047
+ break;
1048
+ }
1049
+ if (!didMerge) transfersByKey[key].push(txfer);
1050
+ }
972
1051
  }
973
1052
  }
974
1053
  for(let i = 0; i < solanaTx.meta.postBalances.length; i += 1){
@@ -991,13 +1070,23 @@ const $290fd8bc430da9f0$export$1f0fe79deb1b813b = {
991
1070
  };
992
1071
  if (post > pre) delete txfer.from;
993
1072
  else delete txfer.to;
994
- transfersByKey[key] = Object.assign(transfersByKey[key] || {}, txfer);
1073
+ if (!transfersByKey[key]) transfersByKey[key] = [
1074
+ txfer
1075
+ ];
1076
+ else {
1077
+ let didMerge = false;
1078
+ for(let tbi = 0; tbi < transfersByKey[key].length; tbi += 1)if (txfer.to && !transfersByKey[key][tbi].to || txfer.from && !transfersByKey[key][tbi].from) {
1079
+ didMerge = true;
1080
+ transfersByKey[key][tbi] = Object.assign(transfersByKey[key][tbi] || {}, txfer);
1081
+ break;
1082
+ }
1083
+ if (!didMerge) transfersByKey[key].push(txfer);
1084
+ }
995
1085
  }
996
1086
  }
997
1087
  const unmatchedFrom = {};
998
1088
  const unmatchedTo = {};
999
- for(const key in transfersByKey){
1000
- const txfer = transfersByKey[key];
1089
+ for(const key in transfersByKey)for (const txfer of transfersByKey[key]){
1001
1090
  if (!txfer.from) {
1002
1091
  if (!unmatchedFrom[txfer.token]) unmatchedFrom[txfer.token] = [];
1003
1092
  unmatchedFrom[txfer.token].push(txfer);
@@ -1006,7 +1095,7 @@ const $290fd8bc430da9f0$export$1f0fe79deb1b813b = {
1006
1095
  if (!unmatchedTo[txfer.token]) unmatchedTo[txfer.token] = [];
1007
1096
  unmatchedTo[txfer.token].push(txfer);
1008
1097
  delete transfersByKey[key];
1009
- }
1098
+ } else transfers.push(txfer);
1010
1099
  }
1011
1100
  for(const token in unmatchedFrom)if (unmatchedTo[token]?.length && unmatchedFrom[token]?.length) {
1012
1101
  const unmatchedDiff = unmatchedTo[token].reduce((a, b)=>a + BigInt(b.amount), BigInt(0)) - unmatchedFrom[token].reduce((a, b)=>a + BigInt(b.amount), BigInt(0));
@@ -1014,15 +1103,68 @@ const $290fd8bc430da9f0$export$1f0fe79deb1b813b = {
1014
1103
  unmatchedTo[token].sort((a, b)=>a.amount > b.amount ? 1 : -1);
1015
1104
  unmatchedFrom[token].forEach((um)=>{
1016
1105
  um.from = unmatchedTo[token][0].from;
1017
- transfersByKey[`${token}-${um.amount.toString()}`] = um;
1106
+ transfers.push(um);
1018
1107
  });
1019
1108
  }
1020
1109
  }
1021
- transfers.push(...Object.values(transfersByKey));
1022
1110
  }
1023
1111
  return transfers;
1024
1112
  },
1025
1113
  tests: [
1114
+ {
1115
+ params: {
1116
+ network: "SOLANA",
1117
+ walletAddress: "DgC9bBDvJYeVyTqcp8nW5F5USNvxBiZ9NMoTUVy5UVPz",
1118
+ contractAddress: "6MQpbiTC2YcogidTmKqMLK82qvE9z5QEm7EP3AEDpump"
1119
+ },
1120
+ payload: "https://jiti.indexing.co/networks/solana/345871978",
1121
+ output: [
1122
+ {
1123
+ amount: 10492578617n,
1124
+ blockNumber: 324081557,
1125
+ from: "DgC9bBDvJYeVyTqcp8nW5F5USNvxBiZ9NMoTUVy5UVPz",
1126
+ timestamp: "2025-06-10T12:06:56.000Z",
1127
+ to: "ChkRerg6X89xHYqV4iBqcboBdU1WA8Uvs9fp2yZrqbg",
1128
+ token: "6MQpbiTC2YcogidTmKqMLK82qvE9z5QEm7EP3AEDpump",
1129
+ tokenType: "TOKEN",
1130
+ transactionGasFee: 2506024n,
1131
+ transactionHash: "65sABMeYatoyzsp1mL6UjAXoBqUdw47HR33ouvR9BFNipTNydqvWTt8PMbVqZZfvnX3TzwB3XSdk55cy3N6u8okR"
1132
+ },
1133
+ {
1134
+ amount: 10492578617n,
1135
+ blockNumber: 324081557,
1136
+ from: "DgC9bBDvJYeVyTqcp8nW5F5USNvxBiZ9NMoTUVy5UVPz",
1137
+ timestamp: "2025-06-10T12:06:56.000Z",
1138
+ to: "3shatpFgdVVwy8Pr723iE9L1fozzaXNdGYKtgrSwHYeJ",
1139
+ token: "6MQpbiTC2YcogidTmKqMLK82qvE9z5QEm7EP3AEDpump",
1140
+ tokenType: "TOKEN",
1141
+ transactionGasFee: 2506024n,
1142
+ transactionHash: "65sABMeYatoyzsp1mL6UjAXoBqUdw47HR33ouvR9BFNipTNydqvWTt8PMbVqZZfvnX3TzwB3XSdk55cy3N6u8okR"
1143
+ },
1144
+ {
1145
+ amount: 16788125787n,
1146
+ blockNumber: 324081557,
1147
+ from: "DgC9bBDvJYeVyTqcp8nW5F5USNvxBiZ9NMoTUVy5UVPz",
1148
+ timestamp: "2025-06-10T12:06:56.000Z",
1149
+ to: "GWPLjamb5ZxrGbTsYNWW7V3p1pAMryZSfaPFTdaEsWgC",
1150
+ token: "6MQpbiTC2YcogidTmKqMLK82qvE9z5QEm7EP3AEDpump",
1151
+ tokenType: "TOKEN",
1152
+ transactionGasFee: 2506024n,
1153
+ transactionHash: "65sABMeYatoyzsp1mL6UjAXoBqUdw47HR33ouvR9BFNipTNydqvWTt8PMbVqZZfvnX3TzwB3XSdk55cy3N6u8okR"
1154
+ },
1155
+ {
1156
+ amount: 4197031447n,
1157
+ blockNumber: 324081557,
1158
+ from: "DgC9bBDvJYeVyTqcp8nW5F5USNvxBiZ9NMoTUVy5UVPz",
1159
+ timestamp: "2025-06-10T12:06:56.000Z",
1160
+ to: "ANcfLC9JcbYbEWu71fE8973V8S6vD5hS98RNrz56hrT7",
1161
+ token: "6MQpbiTC2YcogidTmKqMLK82qvE9z5QEm7EP3AEDpump",
1162
+ tokenType: "TOKEN",
1163
+ transactionGasFee: 2506024n,
1164
+ transactionHash: "65sABMeYatoyzsp1mL6UjAXoBqUdw47HR33ouvR9BFNipTNydqvWTt8PMbVqZZfvnX3TzwB3XSdk55cy3N6u8okR"
1165
+ }
1166
+ ]
1167
+ },
1026
1168
  {
1027
1169
  params: {
1028
1170
  network: "SOLANA",
@@ -1233,7 +1375,7 @@ const $290fd8bc430da9f0$export$1f0fe79deb1b813b = {
1233
1375
  }
1234
1376
  ]
1235
1377
  }
1236
- ].slice(0)
1378
+ ]
1237
1379
  };
1238
1380
 
1239
1381