@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 +152 -10
- package/dist/main.js.map +1 -1
- package/dist/module.js +152 -10
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
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]
|
|
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]
|
|
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]
|
|
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
|
-
|
|
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
|
-
]
|
|
1378
|
+
]
|
|
1237
1379
|
};
|
|
1238
1380
|
|
|
1239
1381
|
|