@clayno-club/asset-flow 0.1.3 → 0.2.0
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/README.md +15 -5
- package/dist/index.d.ts +323 -57
- package/dist/index.js +852 -60
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
# @clayno-club/asset-flow
|
|
2
2
|
|
|
3
|
-
Deterministic
|
|
3
|
+
Deterministic asset-flow classification and normalization for supported chains.
|
|
4
4
|
|
|
5
|
-
This package turns transaction data into a canonical ownership history for a
|
|
5
|
+
This package turns transaction data into a canonical ownership history for a tracked asset. It is designed for consumers that want consistent classification results across services, codebases, or audit pipelines.
|
|
6
|
+
|
|
7
|
+
Current support:
|
|
8
|
+
|
|
9
|
+
- Solana NFT asset-flow normalization via the root convenience exports such as `classify`, `buildFlows`, and `buildOwnershipPeriods`
|
|
10
|
+
- Sui Popkins classification via explicit Sui exports such as `classifySuiTransactionForAsset`
|
|
6
11
|
|
|
7
12
|
## What it does
|
|
8
13
|
|
|
9
|
-
- classify
|
|
10
|
-
- merge raw ownership evidence into enhanced transactions when needed
|
|
11
|
-
- normalize
|
|
14
|
+
- classify supported chain transactions for a tracked asset
|
|
15
|
+
- merge raw ownership evidence into enhanced Solana transactions when needed
|
|
16
|
+
- normalize an asset's transaction history into canonical flows
|
|
12
17
|
- derive ownership periods from normalized flows
|
|
13
18
|
- explain why a transaction matched a given classification path
|
|
14
19
|
- analyze provided transaction sets for review candidates
|
|
@@ -21,6 +26,11 @@ This package turns transaction data into a canonical ownership history for a min
|
|
|
21
26
|
|
|
22
27
|
You provide the transaction data. The package provides deterministic interpretation.
|
|
23
28
|
|
|
29
|
+
## Supported entrypoints
|
|
30
|
+
|
|
31
|
+
- Root exports: Solana-oriented convenience API such as `classify`, `buildMintHistory`, `buildFlows`, `buildValueMovements`, and `augmentWithRaw`
|
|
32
|
+
- Sui exports: explicit helpers such as `classifySuiTransactionForAsset` and the Sui transaction/type definitions
|
|
33
|
+
|
|
24
34
|
## Install
|
|
25
35
|
|
|
26
36
|
```bash
|
package/dist/index.d.ts
CHANGED
|
@@ -152,6 +152,53 @@ interface NormalizedMintHistory {
|
|
|
152
152
|
periods: ReconstructedOwnershipPeriod[];
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
+
declare function classifyEnhancedTransactionForMint(tx: HeliusEnhancedTx, mint: string): AssetFlowTxClassification;
|
|
156
|
+
|
|
157
|
+
interface AssetFlowCoverageReviewCandidate {
|
|
158
|
+
mint: string;
|
|
159
|
+
signature: string;
|
|
160
|
+
timestamp: number | null;
|
|
161
|
+
source: string;
|
|
162
|
+
normalizedType: string;
|
|
163
|
+
matcherId: string;
|
|
164
|
+
family: AssetFlowTxClassification["family"];
|
|
165
|
+
effect: AssetFlowTxClassification["effect"];
|
|
166
|
+
materialization: AssetFlowTxClassification["materialization"];
|
|
167
|
+
confidence: AssetFlowTxClassification["confidence"];
|
|
168
|
+
reason: AssetFlowTxClassification["reason"];
|
|
169
|
+
hasOwnershipChange: boolean;
|
|
170
|
+
hasMeaningfulSettlement: boolean;
|
|
171
|
+
programIds: string[];
|
|
172
|
+
instructionLabels: string[];
|
|
173
|
+
}
|
|
174
|
+
interface AssetFlowCoverageCluster {
|
|
175
|
+
fingerprint: string;
|
|
176
|
+
matcherId: string;
|
|
177
|
+
family: AssetFlowTxClassification["family"];
|
|
178
|
+
effect: AssetFlowTxClassification["effect"];
|
|
179
|
+
materialization: AssetFlowTxClassification["materialization"];
|
|
180
|
+
confidence: AssetFlowTxClassification["confidence"];
|
|
181
|
+
normalizedType: string;
|
|
182
|
+
source: string;
|
|
183
|
+
reason: AssetFlowTxClassification["reason"];
|
|
184
|
+
hasOwnershipChange: boolean;
|
|
185
|
+
hasMeaningfulSettlement: boolean;
|
|
186
|
+
programIds: string[];
|
|
187
|
+
instructionLabels: string[];
|
|
188
|
+
count: number;
|
|
189
|
+
sampleSignatures: string[];
|
|
190
|
+
sampleMints: string[];
|
|
191
|
+
}
|
|
192
|
+
interface AssetFlowCoverageScanResult {
|
|
193
|
+
mint: string;
|
|
194
|
+
transactionsScanned: number;
|
|
195
|
+
reviewCandidates: AssetFlowCoverageReviewCandidate[];
|
|
196
|
+
clusters: AssetFlowCoverageCluster[];
|
|
197
|
+
}
|
|
198
|
+
declare function collectCoverageReviewCandidates(transactions: HeliusEnhancedTx[], mint: string): AssetFlowCoverageReviewCandidate[];
|
|
199
|
+
declare function clusterCoverageReviewCandidates(candidates: AssetFlowCoverageReviewCandidate[], sampleLimit?: number): AssetFlowCoverageCluster[];
|
|
200
|
+
declare function scanTransactionsForCoverage(transactions: HeliusEnhancedTx[], mint: string): AssetFlowCoverageScanResult;
|
|
201
|
+
|
|
155
202
|
type AssetOwnershipKind = "NONE" | "DIRECT" | "CUSTODY" | "SAME_OWNER" | "AMBIGUOUS";
|
|
156
203
|
type AssetSettlementKind = "NONE" | "NATIVE_SALE" | "POTENTIAL_SALE" | "AMBIGUOUS";
|
|
157
204
|
type AssetNftTouchKind = "NONE" | "SAME_OWNER" | "OWNERSHIP_CHANGE";
|
|
@@ -175,20 +222,6 @@ interface AssetFlowTransactionFacts {
|
|
|
175
222
|
instructionLabels: string[];
|
|
176
223
|
}
|
|
177
224
|
|
|
178
|
-
declare function buildTransactionFacts(tx: HeliusEnhancedTx, mint: string): AssetFlowTransactionFacts;
|
|
179
|
-
|
|
180
|
-
declare function normalizeEnhancedType(value: string | undefined): string;
|
|
181
|
-
declare function toNullableNumber(value: unknown): number | null;
|
|
182
|
-
declare function isNonFungibleTokenStandard(tokenStandard: string | null | undefined): boolean;
|
|
183
|
-
declare function isMintNftTransfer(transfer: HeliusTokenTransfer, mint: string): boolean;
|
|
184
|
-
declare function getMintNftTransfers(tx: HeliusEnhancedTx, mint: string): HeliusTokenTransfer[];
|
|
185
|
-
declare function hasMeaningfulNativeSettlement(tx: HeliusEnhancedTx, mint: string): boolean;
|
|
186
|
-
|
|
187
|
-
declare function observationFromFacts(facts: AssetFlowTransactionFacts): AssetFlowObservation;
|
|
188
|
-
declare function observeEnhancedTransactionForMint(tx: HeliusEnhancedTx, mint: string): AssetFlowObservation;
|
|
189
|
-
|
|
190
|
-
declare function classifyEnhancedTransactionForMint(tx: HeliusEnhancedTx, mint: string): AssetFlowTxClassification;
|
|
191
|
-
|
|
192
225
|
interface AssetFlowClassificationMatcher {
|
|
193
226
|
id: string;
|
|
194
227
|
matches(observation: AssetFlowObservation): boolean;
|
|
@@ -211,50 +244,28 @@ interface AssetFlowClassificationExplanation {
|
|
|
211
244
|
}
|
|
212
245
|
declare function explainEnhancedTransactionForMint(tx: HeliusEnhancedTx, mint: string): AssetFlowClassificationExplanation;
|
|
213
246
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
normalizedType: string;
|
|
220
|
-
matcherId: string;
|
|
221
|
-
family: AssetFlowTxClassification["family"];
|
|
222
|
-
effect: AssetFlowTxClassification["effect"];
|
|
223
|
-
materialization: AssetFlowTxClassification["materialization"];
|
|
224
|
-
confidence: AssetFlowTxClassification["confidence"];
|
|
225
|
-
reason: AssetFlowTxClassification["reason"];
|
|
226
|
-
hasOwnershipChange: boolean;
|
|
227
|
-
hasMeaningfulSettlement: boolean;
|
|
228
|
-
programIds: string[];
|
|
229
|
-
instructionLabels: string[];
|
|
230
|
-
}
|
|
231
|
-
interface AssetFlowCoverageCluster {
|
|
232
|
-
fingerprint: string;
|
|
247
|
+
declare function buildTransactionFacts(tx: HeliusEnhancedTx, mint: string): AssetFlowTransactionFacts;
|
|
248
|
+
|
|
249
|
+
interface ClassificationInput {
|
|
250
|
+
family: AssetFlowFamily;
|
|
251
|
+
derivedType: AssetFlowDerivedType;
|
|
233
252
|
matcherId: string;
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
reason: AssetFlowTxClassification["reason"];
|
|
241
|
-
hasOwnershipChange: boolean;
|
|
242
|
-
hasMeaningfulSettlement: boolean;
|
|
243
|
-
programIds: string[];
|
|
244
|
-
instructionLabels: string[];
|
|
245
|
-
count: number;
|
|
246
|
-
sampleSignatures: string[];
|
|
247
|
-
sampleMints: string[];
|
|
248
|
-
}
|
|
249
|
-
interface AssetFlowCoverageScanResult {
|
|
250
|
-
mint: string;
|
|
251
|
-
transactionsScanned: number;
|
|
252
|
-
reviewCandidates: AssetFlowCoverageReviewCandidate[];
|
|
253
|
-
clusters: AssetFlowCoverageCluster[];
|
|
253
|
+
reason: string;
|
|
254
|
+
observation: {
|
|
255
|
+
normalizedType: string;
|
|
256
|
+
hasOwnershipChange: boolean;
|
|
257
|
+
};
|
|
258
|
+
overrides?: Partial<Pick<AssetFlowTxClassification, "normalizedType" | "effect" | "materialization" | "confidence" | "shouldExtractValueMovements">>;
|
|
254
259
|
}
|
|
255
|
-
declare
|
|
256
|
-
declare function
|
|
257
|
-
|
|
260
|
+
declare const PERSIST_DERIVED_TYPES: Set<AssetFlowDerivedType>;
|
|
261
|
+
declare function classification(input: ClassificationInput): AssetFlowTxClassification;
|
|
262
|
+
|
|
263
|
+
declare const protocolMatchers: RegisteredAssetFlowClassificationMatcher[];
|
|
264
|
+
declare const coreAndMarketplaceMatchers: RegisteredAssetFlowClassificationMatcher[];
|
|
265
|
+
declare const assetFlowMatchers: RegisteredAssetFlowClassificationMatcher[];
|
|
266
|
+
|
|
267
|
+
declare function getMatchingAssetFlowMatchers(matchers: RegisteredAssetFlowClassificationMatcher[], observation: AssetFlowObservation): RegisteredAssetFlowClassificationMatcher[];
|
|
268
|
+
declare function selectAssetFlowMatcher(matchers: RegisteredAssetFlowClassificationMatcher[], observation: AssetFlowObservation): RegisteredAssetFlowClassificationMatcher;
|
|
258
269
|
|
|
259
270
|
declare function reconstructOwnershipPeriods(flows: ExtractedMintFlow[]): ReconstructedOwnershipPeriod[];
|
|
260
271
|
|
|
@@ -263,6 +274,30 @@ declare function extractMintFlows(transactions: HeliusEnhancedTx[], mint: string
|
|
|
263
274
|
declare function extractValueMovements(transactions: HeliusEnhancedTx[], mint: string, classificationCache?: Map<string, AssetFlowTxClassification>): ExtractedValueMovement[];
|
|
264
275
|
declare function normalizeMintHistory(transactions: HeliusEnhancedTx[], mint: string): NormalizedMintHistory;
|
|
265
276
|
|
|
277
|
+
declare function observationFromFacts(facts: AssetFlowTransactionFacts): AssetFlowObservation;
|
|
278
|
+
declare function observeEnhancedTransactionForMint(tx: HeliusEnhancedTx, mint: string): AssetFlowObservation;
|
|
279
|
+
|
|
280
|
+
type MintFlowProtocolEventKind = "DIRECT_FLOW" | "POOL_SALE" | "ESCROW_SALE" | "SWAP_REASSIGN";
|
|
281
|
+
interface MintFlowProtocolEventFlow {
|
|
282
|
+
fromAddress: string | null;
|
|
283
|
+
toAddress: string | null;
|
|
284
|
+
transferIndex: number;
|
|
285
|
+
tokenStandard: string | null;
|
|
286
|
+
derivedType: ExtractedMintFlow["derivedType"];
|
|
287
|
+
}
|
|
288
|
+
interface MintFlowProtocolEvent {
|
|
289
|
+
kind: MintFlowProtocolEventKind;
|
|
290
|
+
tx: HeliusEnhancedTx;
|
|
291
|
+
timestamp: number;
|
|
292
|
+
classification: AssetFlowTxClassification | null;
|
|
293
|
+
flows: MintFlowProtocolEventFlow[];
|
|
294
|
+
}
|
|
295
|
+
declare function interpretMintFlowProtocolEvent(params: {
|
|
296
|
+
tx: HeliusEnhancedTx;
|
|
297
|
+
mint: string;
|
|
298
|
+
getClassification: (tx: HeliusEnhancedTx) => AssetFlowTxClassification;
|
|
299
|
+
}): MintFlowProtocolEvent | null;
|
|
300
|
+
|
|
266
301
|
declare function extractCandidateMintsFromRawTransaction(tx: RawAssetFlowTransaction): string[];
|
|
267
302
|
declare function synthesizeEnhancedTransactionsFromRaw(tx: RawAssetFlowTransaction): HeliusEnhancedTx[];
|
|
268
303
|
declare function mergeRawProgramEvidence(tx: HeliusEnhancedTx, rawTx: RawAssetFlowTransaction): HeliusEnhancedTx;
|
|
@@ -271,4 +306,235 @@ declare function augmentEnhancedTransactionWithRaw(tx: HeliusEnhancedTx, rawTx:
|
|
|
271
306
|
declare function applyRawOwnerOverridesToEnhanced(tx: HeliusEnhancedTx, rawTx: RawAssetFlowTransaction): HeliusEnhancedTx;
|
|
272
307
|
declare function shouldFetchRawForMintTx(tx: HeliusEnhancedTx, mint: string): boolean;
|
|
273
308
|
|
|
274
|
-
|
|
309
|
+
declare function normalizeEnhancedType(value: string | undefined): string;
|
|
310
|
+
declare function toNullableNumber(value: unknown): number | null;
|
|
311
|
+
declare function isNonFungibleTokenStandard(tokenStandard: string | null | undefined): boolean;
|
|
312
|
+
declare function isMintNftTransfer(transfer: HeliusTokenTransfer, mint: string): boolean;
|
|
313
|
+
declare function getMintNftTransfers(tx: HeliusEnhancedTx, mint: string): HeliusTokenTransfer[];
|
|
314
|
+
declare function hasMeaningfulNativeSettlement(tx: HeliusEnhancedTx, mint: string): boolean;
|
|
315
|
+
|
|
316
|
+
type index$1_AssetFlowClassificationExplanation = AssetFlowClassificationExplanation;
|
|
317
|
+
type index$1_AssetFlowClassificationMatcher = AssetFlowClassificationMatcher;
|
|
318
|
+
type index$1_AssetFlowCoverageCluster = AssetFlowCoverageCluster;
|
|
319
|
+
type index$1_AssetFlowCoverageReviewCandidate = AssetFlowCoverageReviewCandidate;
|
|
320
|
+
type index$1_AssetFlowCoverageScanResult = AssetFlowCoverageScanResult;
|
|
321
|
+
type index$1_AssetFlowMatcherExplanation = AssetFlowMatcherExplanation;
|
|
322
|
+
type index$1_AssetFlowTransactionFacts = AssetFlowTransactionFacts;
|
|
323
|
+
type index$1_AssetNftTouchKind = AssetNftTouchKind;
|
|
324
|
+
type index$1_AssetOwnershipKind = AssetOwnershipKind;
|
|
325
|
+
type index$1_AssetSettlementKind = AssetSettlementKind;
|
|
326
|
+
type index$1_MintFlowProtocolEvent = MintFlowProtocolEvent;
|
|
327
|
+
type index$1_MintFlowProtocolEventFlow = MintFlowProtocolEventFlow;
|
|
328
|
+
type index$1_MintFlowProtocolEventKind = MintFlowProtocolEventKind;
|
|
329
|
+
declare const index$1_PERSIST_DERIVED_TYPES: typeof PERSIST_DERIVED_TYPES;
|
|
330
|
+
type index$1_RegisteredAssetFlowClassificationMatcher = RegisteredAssetFlowClassificationMatcher;
|
|
331
|
+
declare const index$1_applyRawOwnerOverridesToEnhanced: typeof applyRawOwnerOverridesToEnhanced;
|
|
332
|
+
declare const index$1_assetFlowMatchers: typeof assetFlowMatchers;
|
|
333
|
+
declare const index$1_augmentEnhancedTransactionWithRaw: typeof augmentEnhancedTransactionWithRaw;
|
|
334
|
+
declare const index$1_buildTransactionFacts: typeof buildTransactionFacts;
|
|
335
|
+
declare const index$1_classification: typeof classification;
|
|
336
|
+
declare const index$1_classifyEnhancedTransactionForMint: typeof classifyEnhancedTransactionForMint;
|
|
337
|
+
declare const index$1_clusterCoverageReviewCandidates: typeof clusterCoverageReviewCandidates;
|
|
338
|
+
declare const index$1_collectCoverageReviewCandidates: typeof collectCoverageReviewCandidates;
|
|
339
|
+
declare const index$1_coreAndMarketplaceMatchers: typeof coreAndMarketplaceMatchers;
|
|
340
|
+
declare const index$1_explainEnhancedTransactionForMint: typeof explainEnhancedTransactionForMint;
|
|
341
|
+
declare const index$1_extractCandidateMintsFromEnhancedTx: typeof extractCandidateMintsFromEnhancedTx;
|
|
342
|
+
declare const index$1_extractCandidateMintsFromRawTransaction: typeof extractCandidateMintsFromRawTransaction;
|
|
343
|
+
declare const index$1_extractMintFlows: typeof extractMintFlows;
|
|
344
|
+
declare const index$1_extractValueMovements: typeof extractValueMovements;
|
|
345
|
+
declare const index$1_getMatchingAssetFlowMatchers: typeof getMatchingAssetFlowMatchers;
|
|
346
|
+
declare const index$1_getMintNftTransfers: typeof getMintNftTransfers;
|
|
347
|
+
declare const index$1_hasMeaningfulNativeSettlement: typeof hasMeaningfulNativeSettlement;
|
|
348
|
+
declare const index$1_interpretMintFlowProtocolEvent: typeof interpretMintFlowProtocolEvent;
|
|
349
|
+
declare const index$1_isMintNftTransfer: typeof isMintNftTransfer;
|
|
350
|
+
declare const index$1_isNonFungibleTokenStandard: typeof isNonFungibleTokenStandard;
|
|
351
|
+
declare const index$1_mergeRawProgramEvidence: typeof mergeRawProgramEvidence;
|
|
352
|
+
declare const index$1_normalizeEnhancedType: typeof normalizeEnhancedType;
|
|
353
|
+
declare const index$1_normalizeMintHistory: typeof normalizeMintHistory;
|
|
354
|
+
declare const index$1_observationFromFacts: typeof observationFromFacts;
|
|
355
|
+
declare const index$1_observeEnhancedTransactionForMint: typeof observeEnhancedTransactionForMint;
|
|
356
|
+
declare const index$1_protocolMatchers: typeof protocolMatchers;
|
|
357
|
+
declare const index$1_reconstructOwnershipPeriods: typeof reconstructOwnershipPeriods;
|
|
358
|
+
declare const index$1_scanTransactionsForCoverage: typeof scanTransactionsForCoverage;
|
|
359
|
+
declare const index$1_selectAssetFlowMatcher: typeof selectAssetFlowMatcher;
|
|
360
|
+
declare const index$1_shouldApplyRawOwnerOverrides: typeof shouldApplyRawOwnerOverrides;
|
|
361
|
+
declare const index$1_shouldFetchRawForMintTx: typeof shouldFetchRawForMintTx;
|
|
362
|
+
declare const index$1_synthesizeEnhancedTransactionsFromRaw: typeof synthesizeEnhancedTransactionsFromRaw;
|
|
363
|
+
declare const index$1_toNullableNumber: typeof toNullableNumber;
|
|
364
|
+
declare namespace index$1 {
|
|
365
|
+
export { type index$1_AssetFlowClassificationExplanation as AssetFlowClassificationExplanation, type index$1_AssetFlowClassificationMatcher as AssetFlowClassificationMatcher, type index$1_AssetFlowCoverageCluster as AssetFlowCoverageCluster, type index$1_AssetFlowCoverageReviewCandidate as AssetFlowCoverageReviewCandidate, type index$1_AssetFlowCoverageScanResult as AssetFlowCoverageScanResult, type index$1_AssetFlowMatcherExplanation as AssetFlowMatcherExplanation, type index$1_AssetFlowTransactionFacts as AssetFlowTransactionFacts, type index$1_AssetNftTouchKind as AssetNftTouchKind, type index$1_AssetOwnershipKind as AssetOwnershipKind, type index$1_AssetSettlementKind as AssetSettlementKind, type index$1_MintFlowProtocolEvent as MintFlowProtocolEvent, type index$1_MintFlowProtocolEventFlow as MintFlowProtocolEventFlow, type index$1_MintFlowProtocolEventKind as MintFlowProtocolEventKind, index$1_PERSIST_DERIVED_TYPES as PERSIST_DERIVED_TYPES, type index$1_RegisteredAssetFlowClassificationMatcher as RegisteredAssetFlowClassificationMatcher, index$1_applyRawOwnerOverridesToEnhanced as applyRawOwnerOverridesToEnhanced, index$1_assetFlowMatchers as assetFlowMatchers, index$1_augmentEnhancedTransactionWithRaw as augmentEnhancedTransactionWithRaw, augmentEnhancedTransactionWithRaw as augmentWithRaw, extractMintFlows as buildFlows, normalizeMintHistory as buildMintHistory, reconstructOwnershipPeriods as buildOwnershipPeriods, index$1_buildTransactionFacts as buildTransactionFacts, extractValueMovements as buildValueMovements, index$1_classification as classification, classifyEnhancedTransactionForMint as classify, index$1_classifyEnhancedTransactionForMint as classifyEnhancedTransactionForMint, index$1_clusterCoverageReviewCandidates as clusterCoverageReviewCandidates, index$1_collectCoverageReviewCandidates as collectCoverageReviewCandidates, index$1_coreAndMarketplaceMatchers as coreAndMarketplaceMatchers, explainEnhancedTransactionForMint as explain, index$1_explainEnhancedTransactionForMint as explainEnhancedTransactionForMint, index$1_extractCandidateMintsFromEnhancedTx as extractCandidateMintsFromEnhancedTx, index$1_extractCandidateMintsFromRawTransaction as extractCandidateMintsFromRawTransaction, index$1_extractMintFlows as extractMintFlows, extractCandidateMintsFromEnhancedTx as extractMints, index$1_extractValueMovements as extractValueMovements, index$1_getMatchingAssetFlowMatchers as getMatchingAssetFlowMatchers, index$1_getMintNftTransfers as getMintNftTransfers, index$1_hasMeaningfulNativeSettlement as hasMeaningfulNativeSettlement, index$1_interpretMintFlowProtocolEvent as interpretMintFlowProtocolEvent, index$1_isMintNftTransfer as isMintNftTransfer, index$1_isNonFungibleTokenStandard as isNonFungibleTokenStandard, index$1_mergeRawProgramEvidence as mergeRawProgramEvidence, index$1_normalizeEnhancedType as normalizeEnhancedType, index$1_normalizeMintHistory as normalizeMintHistory, index$1_observationFromFacts as observationFromFacts, index$1_observeEnhancedTransactionForMint as observeEnhancedTransactionForMint, index$1_protocolMatchers as protocolMatchers, index$1_reconstructOwnershipPeriods as reconstructOwnershipPeriods, index$1_scanTransactionsForCoverage as scanTransactionsForCoverage, index$1_selectAssetFlowMatcher as selectAssetFlowMatcher, index$1_shouldApplyRawOwnerOverrides as shouldApplyRawOwnerOverrides, shouldFetchRawForMintTx as shouldFetchRaw, index$1_shouldFetchRawForMintTx as shouldFetchRawForMintTx, index$1_synthesizeEnhancedTransactionsFromRaw as synthesizeEnhancedTransactionsFromRaw, index$1_toNullableNumber as toNullableNumber };
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
interface SuiEventLike {
|
|
369
|
+
type: string;
|
|
370
|
+
parsedJson?: unknown | null;
|
|
371
|
+
}
|
|
372
|
+
type SuiObjectOwnerLike = {
|
|
373
|
+
AddressOwner: string;
|
|
374
|
+
} | {
|
|
375
|
+
ObjectOwner: string;
|
|
376
|
+
} | {
|
|
377
|
+
Shared: {
|
|
378
|
+
initial_shared_version: string;
|
|
379
|
+
};
|
|
380
|
+
} | {
|
|
381
|
+
ConsensusV2: unknown;
|
|
382
|
+
} | "Immutable" | null | undefined;
|
|
383
|
+
interface SuiObjectChangeLike {
|
|
384
|
+
type: string;
|
|
385
|
+
objectId?: string;
|
|
386
|
+
objectType?: string;
|
|
387
|
+
sender?: string;
|
|
388
|
+
owner?: SuiObjectOwnerLike;
|
|
389
|
+
recipient?: SuiObjectOwnerLike;
|
|
390
|
+
}
|
|
391
|
+
interface SuiBalanceChangeLike {
|
|
392
|
+
owner?: SuiObjectOwnerLike;
|
|
393
|
+
coinType?: string;
|
|
394
|
+
amount?: string;
|
|
395
|
+
}
|
|
396
|
+
interface SuiTransactionBlockLike {
|
|
397
|
+
digest: string;
|
|
398
|
+
checkpoint?: string | null;
|
|
399
|
+
timestampMs?: string | null;
|
|
400
|
+
events?: SuiEventLike[] | null;
|
|
401
|
+
objectChanges?: SuiObjectChangeLike[] | null;
|
|
402
|
+
balanceChanges?: SuiBalanceChangeLike[] | null;
|
|
403
|
+
transaction?: {
|
|
404
|
+
data?: {
|
|
405
|
+
sender?: string | null;
|
|
406
|
+
} | null;
|
|
407
|
+
} | null;
|
|
408
|
+
}
|
|
409
|
+
type SuiAssetFlowFamily = "NFT_MINT" | "TRADEPORT_SALE" | "TRADEPORT_LISTING" | "TRADEPORT_BID_INTENT" | "KIOSK_LISTING" | "KIOSK_CUSTODY" | "POPKINS_STAKING" | "POPSWAP" | "GENERIC_OBJECT_TRANSFER" | "UNKNOWN";
|
|
410
|
+
interface SuiAssetOwnerChange {
|
|
411
|
+
sender: string | null;
|
|
412
|
+
nextOwner: string | null;
|
|
413
|
+
nextOwnerKind?: "address" | "object" | "shared" | "immutable" | "consensus" | null;
|
|
414
|
+
objectType: string | null;
|
|
415
|
+
}
|
|
416
|
+
interface SuiAssetFlowClassification {
|
|
417
|
+
assetId: string;
|
|
418
|
+
family: SuiAssetFlowFamily;
|
|
419
|
+
effect: AssetFlowEffect;
|
|
420
|
+
materialization: AssetFlowMaterialization;
|
|
421
|
+
confidence: AssetFlowInterpreterConfidence;
|
|
422
|
+
derivedType: AssetFlowDerivedType;
|
|
423
|
+
matcherId: string;
|
|
424
|
+
reason: string;
|
|
425
|
+
hasOwnershipChange: boolean;
|
|
426
|
+
shouldExtractValueMovements: boolean;
|
|
427
|
+
eventTypes: string[];
|
|
428
|
+
market: string | null;
|
|
429
|
+
priceRaw: string | null;
|
|
430
|
+
currency: string | null;
|
|
431
|
+
ownerChange: SuiAssetOwnerChange | null;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
declare const SUI_COIN_TYPE = "0x2::sui::SUI";
|
|
435
|
+
declare const POPKINS_MINTED_EVENT_SUFFIX = "::popkins_nft::PopkinsMinted";
|
|
436
|
+
declare const POPKINS_STAKED_EVENT_SUFFIX = "::events::PopkinsStakedEvent";
|
|
437
|
+
declare const POPKINS_UNSTAKED_EVENT_SUFFIX = "::events::PopkinsUnstakedEvent";
|
|
438
|
+
declare const TRADEPORT_BUY_SIMPLE_EVENT_SUFFIX = "::tradeport_listings::BuySimpleListingEvent";
|
|
439
|
+
declare const TRADEPORT_MATCH_SINGLE_BID_EVENT_SUFFIX = "::tradeport_biddings::MatchSingleBidEvent";
|
|
440
|
+
declare const TRADEPORT_KIOSK_BUY_EVENT_SUFFIX = "::kiosk_listings::BuyEvent";
|
|
441
|
+
declare const TRADEPORT_ADD_LISTING_EVENT_SUFFIX = "::tradeport_orderbook::AddListingEvent";
|
|
442
|
+
declare const TRADEPORT_RELIST_SIMPLE_EVENT_SUFFIX = "::tradeport_listings::RelistSimpleListingEvent";
|
|
443
|
+
declare const TRADEPORT_REMOVE_LISTING_EVENT_SUFFIX = "::tradeport_orderbook::RemoveListingEvent";
|
|
444
|
+
declare const TRADEPORT_CANCEL_SIMPLE_EVENT_SUFFIX = "::tradeport_listings::CancelSimpleListingEvent";
|
|
445
|
+
declare const TRADEPORT_CREATE_SINGLE_BID_EVENT_SUFFIX = "::tradeport_biddings::CreateSingleBidEvent";
|
|
446
|
+
declare const KIOSK_LIST_EVENT_SUFFIX = "::kiosk_listings::ListEvent";
|
|
447
|
+
declare const KIOSK_UNLIST_EVENT_SUFFIX = "::kiosk_listings::UnlistEvent";
|
|
448
|
+
declare const KIOSK_TRANSFER_EVENT_SUFFIX = "::kiosk_transfers::TransferWithPurchaseCapEvent";
|
|
449
|
+
declare const KIOSK_CLAIM_EVENT_SUFFIX = "::kiosk_transfers::ClaimWithPurchaseCapEvent";
|
|
450
|
+
declare const PERSONAL_KIOSK_CREATED_EVENT_SUFFIX = "::personal_kiosk::NewPersonalKiosk";
|
|
451
|
+
declare const KIOSK_BIDDING_CLAIM_EVENT_SUFFIX = "::kiosk_biddings::ClaimWithPurchaseCapEvent";
|
|
452
|
+
type SuiAssetOwnerRefKind = "address" | "object" | "shared" | "immutable" | "consensus";
|
|
453
|
+
interface SuiAssetOwnerRef {
|
|
454
|
+
value: string;
|
|
455
|
+
kind: SuiAssetOwnerRefKind;
|
|
456
|
+
}
|
|
457
|
+
interface SuiAssetOwnerChangeDetails {
|
|
458
|
+
sender: string | null;
|
|
459
|
+
nextOwner: SuiAssetOwnerRef | null;
|
|
460
|
+
objectType: string | null;
|
|
461
|
+
}
|
|
462
|
+
declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
463
|
+
declare function getString(value: unknown): string | null;
|
|
464
|
+
declare function getRecordString(record: Record<string, unknown>, key: string): string | null;
|
|
465
|
+
declare function getRecordStringArray(record: Record<string, unknown>, key: string): string[];
|
|
466
|
+
declare function eventTypeMatches(event: Pick<SuiEventLike, "type">, suffixes: readonly string[]): boolean;
|
|
467
|
+
declare function normalizeOwnerRef(owner: SuiObjectOwnerLike): SuiAssetOwnerRef | null;
|
|
468
|
+
declare function getAssetObjectChange(tx: SuiTransactionBlockLike, assetId: string): SuiObjectChangeLike | null;
|
|
469
|
+
declare function getAssetOwnerChangeDetails(tx: SuiTransactionBlockLike, assetId: string): SuiAssetOwnerChangeDetails | null;
|
|
470
|
+
declare function getAssetOwnerChange(tx: SuiTransactionBlockLike, assetId: string): SuiAssetOwnerChange | null;
|
|
471
|
+
declare function eventTouchesAsset(event: SuiEventLike, assetId: string): boolean;
|
|
472
|
+
declare function getAssetEvents(tx: SuiTransactionBlockLike, assetId: string): SuiEventLike[];
|
|
473
|
+
declare function getEventTypes(events: SuiEventLike[]): string[];
|
|
474
|
+
declare function findFirstEvent(events: SuiEventLike[], suffixes: readonly string[]): SuiEventLike | null;
|
|
475
|
+
declare function getPriceRaw(event: SuiEventLike | null): string | null;
|
|
476
|
+
declare function getMarket(event: SuiEventLike | null, fallback?: string | null): string | null;
|
|
477
|
+
declare function hasMeaningfulSuiSettlement(balanceChanges: SuiBalanceChangeLike[] | null | undefined): boolean;
|
|
478
|
+
|
|
479
|
+
declare function classifySuiTransactionForAsset(tx: SuiTransactionBlockLike, assetId: string): SuiAssetFlowClassification;
|
|
480
|
+
|
|
481
|
+
declare function extractAssetFlows(transactions: SuiTransactionBlockLike[], assetId: string, classificationCache?: Map<string, SuiAssetFlowClassification>): ExtractedMintFlow[];
|
|
482
|
+
declare function normalizeAssetHistory(transactions: SuiTransactionBlockLike[], assetId: string): {
|
|
483
|
+
flows: ExtractedMintFlow[];
|
|
484
|
+
periods: ReconstructedOwnershipPeriod[];
|
|
485
|
+
};
|
|
486
|
+
|
|
487
|
+
declare const index_KIOSK_BIDDING_CLAIM_EVENT_SUFFIX: typeof KIOSK_BIDDING_CLAIM_EVENT_SUFFIX;
|
|
488
|
+
declare const index_KIOSK_CLAIM_EVENT_SUFFIX: typeof KIOSK_CLAIM_EVENT_SUFFIX;
|
|
489
|
+
declare const index_KIOSK_LIST_EVENT_SUFFIX: typeof KIOSK_LIST_EVENT_SUFFIX;
|
|
490
|
+
declare const index_KIOSK_TRANSFER_EVENT_SUFFIX: typeof KIOSK_TRANSFER_EVENT_SUFFIX;
|
|
491
|
+
declare const index_KIOSK_UNLIST_EVENT_SUFFIX: typeof KIOSK_UNLIST_EVENT_SUFFIX;
|
|
492
|
+
declare const index_PERSONAL_KIOSK_CREATED_EVENT_SUFFIX: typeof PERSONAL_KIOSK_CREATED_EVENT_SUFFIX;
|
|
493
|
+
declare const index_POPKINS_MINTED_EVENT_SUFFIX: typeof POPKINS_MINTED_EVENT_SUFFIX;
|
|
494
|
+
declare const index_POPKINS_STAKED_EVENT_SUFFIX: typeof POPKINS_STAKED_EVENT_SUFFIX;
|
|
495
|
+
declare const index_POPKINS_UNSTAKED_EVENT_SUFFIX: typeof POPKINS_UNSTAKED_EVENT_SUFFIX;
|
|
496
|
+
declare const index_SUI_COIN_TYPE: typeof SUI_COIN_TYPE;
|
|
497
|
+
type index_SuiAssetFlowClassification = SuiAssetFlowClassification;
|
|
498
|
+
type index_SuiAssetFlowFamily = SuiAssetFlowFamily;
|
|
499
|
+
type index_SuiAssetOwnerChange = SuiAssetOwnerChange;
|
|
500
|
+
type index_SuiAssetOwnerChangeDetails = SuiAssetOwnerChangeDetails;
|
|
501
|
+
type index_SuiAssetOwnerRef = SuiAssetOwnerRef;
|
|
502
|
+
type index_SuiAssetOwnerRefKind = SuiAssetOwnerRefKind;
|
|
503
|
+
type index_SuiBalanceChangeLike = SuiBalanceChangeLike;
|
|
504
|
+
type index_SuiEventLike = SuiEventLike;
|
|
505
|
+
type index_SuiObjectChangeLike = SuiObjectChangeLike;
|
|
506
|
+
type index_SuiObjectOwnerLike = SuiObjectOwnerLike;
|
|
507
|
+
type index_SuiTransactionBlockLike = SuiTransactionBlockLike;
|
|
508
|
+
declare const index_TRADEPORT_ADD_LISTING_EVENT_SUFFIX: typeof TRADEPORT_ADD_LISTING_EVENT_SUFFIX;
|
|
509
|
+
declare const index_TRADEPORT_BUY_SIMPLE_EVENT_SUFFIX: typeof TRADEPORT_BUY_SIMPLE_EVENT_SUFFIX;
|
|
510
|
+
declare const index_TRADEPORT_CANCEL_SIMPLE_EVENT_SUFFIX: typeof TRADEPORT_CANCEL_SIMPLE_EVENT_SUFFIX;
|
|
511
|
+
declare const index_TRADEPORT_CREATE_SINGLE_BID_EVENT_SUFFIX: typeof TRADEPORT_CREATE_SINGLE_BID_EVENT_SUFFIX;
|
|
512
|
+
declare const index_TRADEPORT_KIOSK_BUY_EVENT_SUFFIX: typeof TRADEPORT_KIOSK_BUY_EVENT_SUFFIX;
|
|
513
|
+
declare const index_TRADEPORT_MATCH_SINGLE_BID_EVENT_SUFFIX: typeof TRADEPORT_MATCH_SINGLE_BID_EVENT_SUFFIX;
|
|
514
|
+
declare const index_TRADEPORT_RELIST_SIMPLE_EVENT_SUFFIX: typeof TRADEPORT_RELIST_SIMPLE_EVENT_SUFFIX;
|
|
515
|
+
declare const index_TRADEPORT_REMOVE_LISTING_EVENT_SUFFIX: typeof TRADEPORT_REMOVE_LISTING_EVENT_SUFFIX;
|
|
516
|
+
declare const index_classifySuiTransactionForAsset: typeof classifySuiTransactionForAsset;
|
|
517
|
+
declare const index_eventTouchesAsset: typeof eventTouchesAsset;
|
|
518
|
+
declare const index_eventTypeMatches: typeof eventTypeMatches;
|
|
519
|
+
declare const index_extractAssetFlows: typeof extractAssetFlows;
|
|
520
|
+
declare const index_findFirstEvent: typeof findFirstEvent;
|
|
521
|
+
declare const index_getAssetEvents: typeof getAssetEvents;
|
|
522
|
+
declare const index_getAssetObjectChange: typeof getAssetObjectChange;
|
|
523
|
+
declare const index_getAssetOwnerChange: typeof getAssetOwnerChange;
|
|
524
|
+
declare const index_getAssetOwnerChangeDetails: typeof getAssetOwnerChangeDetails;
|
|
525
|
+
declare const index_getEventTypes: typeof getEventTypes;
|
|
526
|
+
declare const index_getMarket: typeof getMarket;
|
|
527
|
+
declare const index_getPriceRaw: typeof getPriceRaw;
|
|
528
|
+
declare const index_getRecordString: typeof getRecordString;
|
|
529
|
+
declare const index_getRecordStringArray: typeof getRecordStringArray;
|
|
530
|
+
declare const index_getString: typeof getString;
|
|
531
|
+
declare const index_hasMeaningfulSuiSettlement: typeof hasMeaningfulSuiSettlement;
|
|
532
|
+
declare const index_isRecord: typeof isRecord;
|
|
533
|
+
declare const index_normalizeAssetHistory: typeof normalizeAssetHistory;
|
|
534
|
+
declare const index_normalizeOwnerRef: typeof normalizeOwnerRef;
|
|
535
|
+
declare const index_reconstructOwnershipPeriods: typeof reconstructOwnershipPeriods;
|
|
536
|
+
declare namespace index {
|
|
537
|
+
export { index_KIOSK_BIDDING_CLAIM_EVENT_SUFFIX as KIOSK_BIDDING_CLAIM_EVENT_SUFFIX, index_KIOSK_CLAIM_EVENT_SUFFIX as KIOSK_CLAIM_EVENT_SUFFIX, index_KIOSK_LIST_EVENT_SUFFIX as KIOSK_LIST_EVENT_SUFFIX, index_KIOSK_TRANSFER_EVENT_SUFFIX as KIOSK_TRANSFER_EVENT_SUFFIX, index_KIOSK_UNLIST_EVENT_SUFFIX as KIOSK_UNLIST_EVENT_SUFFIX, index_PERSONAL_KIOSK_CREATED_EVENT_SUFFIX as PERSONAL_KIOSK_CREATED_EVENT_SUFFIX, index_POPKINS_MINTED_EVENT_SUFFIX as POPKINS_MINTED_EVENT_SUFFIX, index_POPKINS_STAKED_EVENT_SUFFIX as POPKINS_STAKED_EVENT_SUFFIX, index_POPKINS_UNSTAKED_EVENT_SUFFIX as POPKINS_UNSTAKED_EVENT_SUFFIX, index_SUI_COIN_TYPE as SUI_COIN_TYPE, type index_SuiAssetFlowClassification as SuiAssetFlowClassification, type index_SuiAssetFlowFamily as SuiAssetFlowFamily, type index_SuiAssetOwnerChange as SuiAssetOwnerChange, type index_SuiAssetOwnerChangeDetails as SuiAssetOwnerChangeDetails, type index_SuiAssetOwnerRef as SuiAssetOwnerRef, type index_SuiAssetOwnerRefKind as SuiAssetOwnerRefKind, type index_SuiBalanceChangeLike as SuiBalanceChangeLike, type index_SuiEventLike as SuiEventLike, type index_SuiObjectChangeLike as SuiObjectChangeLike, type index_SuiObjectOwnerLike as SuiObjectOwnerLike, type index_SuiTransactionBlockLike as SuiTransactionBlockLike, index_TRADEPORT_ADD_LISTING_EVENT_SUFFIX as TRADEPORT_ADD_LISTING_EVENT_SUFFIX, index_TRADEPORT_BUY_SIMPLE_EVENT_SUFFIX as TRADEPORT_BUY_SIMPLE_EVENT_SUFFIX, index_TRADEPORT_CANCEL_SIMPLE_EVENT_SUFFIX as TRADEPORT_CANCEL_SIMPLE_EVENT_SUFFIX, index_TRADEPORT_CREATE_SINGLE_BID_EVENT_SUFFIX as TRADEPORT_CREATE_SINGLE_BID_EVENT_SUFFIX, index_TRADEPORT_KIOSK_BUY_EVENT_SUFFIX as TRADEPORT_KIOSK_BUY_EVENT_SUFFIX, index_TRADEPORT_MATCH_SINGLE_BID_EVENT_SUFFIX as TRADEPORT_MATCH_SINGLE_BID_EVENT_SUFFIX, index_TRADEPORT_RELIST_SIMPLE_EVENT_SUFFIX as TRADEPORT_RELIST_SIMPLE_EVENT_SUFFIX, index_TRADEPORT_REMOVE_LISTING_EVENT_SUFFIX as TRADEPORT_REMOVE_LISTING_EVENT_SUFFIX, normalizeAssetHistory as buildAssetHistory, extractAssetFlows as buildFlows, reconstructOwnershipPeriods as buildOwnershipPeriods, classifySuiTransactionForAsset as classify, index_classifySuiTransactionForAsset as classifySuiTransactionForAsset, index_eventTouchesAsset as eventTouchesAsset, index_eventTypeMatches as eventTypeMatches, index_extractAssetFlows as extractAssetFlows, index_findFirstEvent as findFirstEvent, index_getAssetEvents as getAssetEvents, index_getAssetObjectChange as getAssetObjectChange, index_getAssetOwnerChange as getAssetOwnerChange, index_getAssetOwnerChangeDetails as getAssetOwnerChangeDetails, index_getEventTypes as getEventTypes, index_getMarket as getMarket, index_getPriceRaw as getPriceRaw, index_getRecordString as getRecordString, index_getRecordStringArray as getRecordStringArray, index_getString as getString, index_hasMeaningfulSuiSettlement as hasMeaningfulSuiSettlement, index_isRecord as isRecord, index_normalizeAssetHistory as normalizeAssetHistory, index_normalizeOwnerRef as normalizeOwnerRef, index_reconstructOwnershipPeriods as reconstructOwnershipPeriods };
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
export { type AssetFlowClassificationExplanation, type AssetFlowClassificationMatcher, type AssetFlowCoverageCluster, type AssetFlowCoverageReviewCandidate, type AssetFlowCoverageScanResult, type AssetFlowDerivedType, type AssetFlowEffect, type AssetFlowFamily, type AssetFlowInterpreterConfidence, type AssetFlowMatcherExplanation, type AssetFlowMaterialization, type AssetFlowObservation, type AssetFlowTransactionFacts, type AssetFlowTxClassification, type AssetNftTouchKind, type AssetOwnershipKind, type AssetSettlementKind, type ExtractedMintFlow, type ExtractedValueMovement, type HeliusEnhancedAction, type HeliusEnhancedInstruction, type HeliusEnhancedTx, type HeliusNativeTransfer, type HeliusTokenTransfer, KIOSK_BIDDING_CLAIM_EVENT_SUFFIX, KIOSK_CLAIM_EVENT_SUFFIX, KIOSK_LIST_EVENT_SUFFIX, KIOSK_TRANSFER_EVENT_SUFFIX, KIOSK_UNLIST_EVENT_SUFFIX, type MintFlowProtocolEvent, type MintFlowProtocolEventFlow, type MintFlowProtocolEventKind, type NormalizedMintHistory, PERSIST_DERIVED_TYPES, PERSONAL_KIOSK_CREATED_EVENT_SUFFIX, POPKINS_MINTED_EVENT_SUFFIX, POPKINS_STAKED_EVENT_SUFFIX, POPKINS_UNSTAKED_EVENT_SUFFIX, type RawAssetFlowAccountKey, type RawAssetFlowInstruction, type RawAssetFlowTokenBalance, type RawAssetFlowTransaction, type ReconstructedOwnershipPeriod, type RegisteredAssetFlowClassificationMatcher, SUI_COIN_TYPE, type SuiAssetFlowClassification, type SuiAssetFlowFamily, type SuiAssetOwnerChange, type SuiAssetOwnerChangeDetails, type SuiAssetOwnerRef, type SuiAssetOwnerRefKind, type SuiBalanceChangeLike, type SuiEventLike, type SuiObjectChangeLike, type SuiObjectOwnerLike, type SuiTransactionBlockLike, TRADEPORT_ADD_LISTING_EVENT_SUFFIX, TRADEPORT_BUY_SIMPLE_EVENT_SUFFIX, TRADEPORT_CANCEL_SIMPLE_EVENT_SUFFIX, TRADEPORT_CREATE_SINGLE_BID_EVENT_SUFFIX, TRADEPORT_KIOSK_BUY_EVENT_SUFFIX, TRADEPORT_MATCH_SINGLE_BID_EVENT_SUFFIX, TRADEPORT_RELIST_SIMPLE_EVENT_SUFFIX, TRADEPORT_REMOVE_LISTING_EVENT_SUFFIX, applyRawOwnerOverridesToEnhanced, assetFlowMatchers, augmentEnhancedTransactionWithRaw, augmentEnhancedTransactionWithRaw as augmentWithRaw, extractMintFlows as buildFlows, normalizeMintHistory as buildMintHistory, reconstructOwnershipPeriods as buildOwnershipPeriods, buildTransactionFacts, extractValueMovements as buildValueMovements, classification, classifyEnhancedTransactionForMint as classify, classifyEnhancedTransactionForMint, classifySuiTransactionForAsset, clusterCoverageReviewCandidates, collectCoverageReviewCandidates, coreAndMarketplaceMatchers, eventTouchesAsset, eventTypeMatches, explainEnhancedTransactionForMint as explain, explainEnhancedTransactionForMint, extractAssetFlows, extractCandidateMintsFromEnhancedTx, extractCandidateMintsFromRawTransaction, extractMintFlows, extractCandidateMintsFromEnhancedTx as extractMints, extractValueMovements, findFirstEvent, getAssetEvents, getAssetObjectChange, getAssetOwnerChange, getAssetOwnerChangeDetails, getEventTypes, getMarket, getMatchingAssetFlowMatchers, getMintNftTransfers, getPriceRaw, getRecordString, getRecordStringArray, getString, hasMeaningfulNativeSettlement, hasMeaningfulSuiSettlement, interpretMintFlowProtocolEvent, isMintNftTransfer, isNonFungibleTokenStandard, isRecord, mergeRawProgramEvidence, normalizeAssetHistory, normalizeEnhancedType, normalizeMintHistory, normalizeOwnerRef, observationFromFacts, observeEnhancedTransactionForMint, protocolMatchers, reconstructOwnershipPeriods, scanTransactionsForCoverage, selectAssetFlowMatcher, shouldApplyRawOwnerOverrides, shouldFetchRawForMintTx as shouldFetchRaw, shouldFetchRawForMintTx, index$1 as solana, index as sui, synthesizeEnhancedTransactionsFromRaw, toNullableNumber };
|