tbc-tx-parser 0.1.0 → 0.1.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/result/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EAEd,KAAK,YAAY,EACjB,KAAK,aAAa,EAGlB,KAAK,mBAAmB,EACzB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EACV,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAiC,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAoJ/F,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,UAiB1D;AA2WD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAAC,EACxC,kCAAkC,cAAoB,WAiCvD;AA0cD,wBAAgB,eAAe,CAC7B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,YAAY,EAAE,EACtB,OAAO,EAAE,aAAa,EAAE,EACxB,WAAW,EAAE,qBAAqB,EAAE,EACpC,YAAY,EAAE,WAAW,EAAE,EAC3B,kBAAkB,EAAE,iBAAiB,EAAE,EACvC,gBAAgB,EAAE,eAAe,EAAE,EACnC,eAAe,EAAE,cAAc,EAAE,EACjC,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,GAAE,mBAAmB,EAAO,GACtC,SAAS,EAAE,CA4Db"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/result/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EAEd,KAAK,YAAY,EACjB,KAAK,aAAa,EAGlB,KAAK,mBAAmB,EACzB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EACV,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAiC,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAuM/F,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,UAiB1D;AAsZD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAAC,EACxC,kCAAkC,cAAoB,WAiCvD;AAofD,wBAAgB,eAAe,CAC7B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,YAAY,EAAE,EACtB,OAAO,EAAE,aAAa,EAAE,EACxB,WAAW,EAAE,qBAAqB,EAAE,EACpC,YAAY,EAAE,WAAW,EAAE,EAC3B,kBAAkB,EAAE,iBAAiB,EAAE,EACvC,gBAAgB,EAAE,eAAe,EAAE,EACnC,eAAe,EAAE,cAAc,EAAE,EACjC,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,GAAE,mBAAmB,EAAO,GACtC,SAAS,EAAE,CA4Db"}
@@ -28,6 +28,17 @@ function firstInputOwnerEndpoint(inputs) {
28
28
  hash: input.prevout.hash,
29
29
  };
30
30
  }
31
+ function inputOutpointEndpoint(inputs) {
32
+ if (inputs.length === 0) {
33
+ return undefined;
34
+ }
35
+ if (inputs.length === 1) {
36
+ return { txid: inputs[0].prevTxid, vout: inputs[0].vout };
37
+ }
38
+ return {
39
+ outpoints: inputs.map((input) => ({ txid: input.prevTxid, vout: input.vout })),
40
+ };
41
+ }
31
42
  function scriptLockHash(scriptHex) {
32
43
  if (!scriptHex || scriptHex.length % 2 !== 0) {
33
44
  return undefined;
@@ -62,11 +73,12 @@ function isFtCodePrevout(input) {
62
73
  const hex = input.prevout?.script.hex?.toLowerCase();
63
74
  return Boolean(hex?.endsWith(FT_CODE_MARKER_HEX) || hex?.endsWith(FTLP_CODE_MARKER_HEX));
64
75
  }
65
- function ftInputOwnerEndpoint(inputs, outputs) {
76
+ function ftInputOwnerEndpoint(inputs, outputs, contractId) {
66
77
  // Prefer the verified FT Code prevout over the first ordinary input as the FT source.
67
- const ftInput = inputs.find(isFtCodePrevout);
78
+ const ftInputs = inputs.filter((input) => isFtCodePrevout(input) && !input.prevout?.script.data?.poolNft);
79
+ const ftInput = ftInputs.find((input) => contractId !== undefined && input.prevout?.contractId === contractId) ?? ftInputs[0];
68
80
  if (!ftInput?.prevout) {
69
- return firstInputOwnerEndpoint(inputs);
81
+ return firstInputOwnerEndpoint(inputs) ?? inputOutpointEndpoint(inputs);
70
82
  }
71
83
  const ownerHash = ftInput.prevout.hash ?? ftInput.prevout.script.data?.hash;
72
84
  if (ownerHash) {
@@ -76,7 +88,7 @@ function ftInputOwnerEndpoint(inputs, outputs) {
76
88
  if (ftInput.prevout.address) {
77
89
  return { address: ftInput.prevout.address };
78
90
  }
79
- return firstInputOwnerEndpoint(inputs);
91
+ return inputOutpointEndpoint([ftInput]);
80
92
  }
81
93
  function inputAddresses(inputs) {
82
94
  return new Set(inputs.map((input) => input.prevout?.address).filter((address) => Boolean(address)));
@@ -92,6 +104,19 @@ function inputAddressEndpoint(inputs) {
92
104
  }
93
105
  return addresses.length === 1 ? { address: addresses[0] } : { addresses };
94
106
  }
107
+ function inputOwnerOrOutpointEndpoint(inputs) {
108
+ return inputAddressEndpoint(inputs) ?? inputOutpointEndpoint(inputs);
109
+ }
110
+ function inputAtIndexEndpoint(inputs, inputIndex) {
111
+ const input = inputs.find((candidate) => candidate.index === inputIndex);
112
+ if (!input) {
113
+ return undefined;
114
+ }
115
+ if (input.prevout?.address || input.prevout?.hash) {
116
+ return endpoint({ address: input.prevout.address, hash: input.prevout.hash });
117
+ }
118
+ return endpoint({ txid: input.prevTxid, vout: input.vout });
119
+ }
95
120
  function nativeTbcSourceInputs(inputs, ftMovements) {
96
121
  // FT transactions may include protocol inputs; prefer ordinary spendable inputs as native TBC sources.
97
122
  if (ftMovements.length === 0) {
@@ -120,7 +145,7 @@ export function normalizeActionType(transactionType) {
120
145
  }
121
146
  function tokenTransactionAsset(movement) {
122
147
  return {
123
- type: movement.isStableCoin ? 'stablecoin' : 'ft',
148
+ type: movement.isStableCoin ? 'stablecoin' : movement.isFtLp ? 'ftlp' : 'ft',
124
149
  symbol: movement.symbol,
125
150
  name: movement.name,
126
151
  contractId: movement.contractId,
@@ -224,6 +249,7 @@ function endpoint(value) {
224
249
  poolId: value.poolId,
225
250
  txid: value.txid,
226
251
  vout: value.vout,
252
+ outpoints: value.outpoints?.length ? value.outpoints : undefined,
227
253
  script: value.script ? withoutUndefinedValues(value.script) : undefined,
228
254
  });
229
255
  return Object.values(publicEndpoint).some((item) => item !== undefined) ? publicEndpoint : undefined;
@@ -274,6 +300,12 @@ function directionForFlow(purpose, from, to) {
274
300
  }
275
301
  return 'unknown';
276
302
  }
303
+ function hasOwnerIdentity(value) {
304
+ return Boolean(value?.address ||
305
+ value?.addresses?.length ||
306
+ value?.hash ||
307
+ value?.poolId);
308
+ }
277
309
  function unsupportedOutputContexts(unsupported) {
278
310
  const markersByOutput = new Map();
279
311
  for (const item of unsupported) {
@@ -314,7 +346,7 @@ function canAggregateAssetFlow(flow) {
314
346
  if ('satoshis' in flow.amount) {
315
347
  return flow.asset.type === 'tbc';
316
348
  }
317
- return flow.asset.type === 'ft' || flow.asset.type === 'stablecoin';
349
+ return flow.asset.type === 'ft' || flow.asset.type === 'ftlp' || flow.asset.type === 'stablecoin';
318
350
  }
319
351
  function aggregateAssetFlowAmount(target, source) {
320
352
  if ('satoshis' in target.amount && 'satoshis' in source.amount) {
@@ -351,10 +383,41 @@ function aggregateAssetFlows(flows) {
351
383
  }
352
384
  return aggregated;
353
385
  }
386
+ function canonicalizeAssetFlow(flow) {
387
+ const canonical = flow.purpose === 'transfer' && flow.direction === 'self'
388
+ ? { ...flow, purpose: 'self', direction: 'self' }
389
+ : flow;
390
+ switch (canonical.purpose) {
391
+ case 'mint':
392
+ break;
393
+ case 'burn':
394
+ if (!canonical.from)
395
+ throw new Error('Burn asset flow requires a source endpoint.');
396
+ break;
397
+ case 'transfer':
398
+ case 'self':
399
+ case 'lock':
400
+ case 'release':
401
+ if (!canonical.from || !canonical.to) {
402
+ throw new Error(`${canonical.purpose} asset flow requires source and destination endpoints.`);
403
+ }
404
+ break;
405
+ case 'fee':
406
+ if (!canonical.from)
407
+ throw new Error('Fee asset flow requires a source endpoint.');
408
+ break;
409
+ default:
410
+ break;
411
+ }
412
+ return canonical;
413
+ }
414
+ function finalizeAssetFlows(flows) {
415
+ return aggregateAssetFlows(flows.map(canonicalizeAssetFlow));
416
+ }
354
417
  function buildNativeAssetFlows(inputs, outputs, transactionType, ftMovements, protocolNativeOutputIndexes = new Set(), nativeFtCarrierOutputIndexes = new Set(), unsupportedContexts = new Map()) {
355
418
  // Native TBC flows cover ordinary transfers and significant TBC value carried by protocol transactions.
356
419
  const sourceInputs = nativeTbcSourceInputs(inputs, ftMovements);
357
- const sourceEndpoint = inputAddressEndpoint(sourceInputs);
420
+ const sourceEndpoint = inputOwnerOrOutpointEndpoint(sourceInputs);
358
421
  const sourceAddresses = inputAddresses(sourceInputs);
359
422
  const firstFtReceiver = ftMovements[0]?.receiver;
360
423
  const nativeOutputs = outputs.filter((output) => isNativeTbcFlowOutput(output, protocolNativeOutputIndexes, nativeFtCarrierOutputIndexes));
@@ -397,7 +460,7 @@ function buildNativeAssetFlows(inputs, outputs, transactionType, ftMovements, pr
397
460
  purpose = 'transfer';
398
461
  }
399
462
  }
400
- const from = endpoint(purpose === 'transfer' ? sourceEndpoint : undefined);
463
+ const from = endpoint(sourceEndpoint);
401
464
  const to = nativeOutputEndpoint(output);
402
465
  return {
403
466
  purpose,
@@ -442,8 +505,8 @@ function isAddressLikeNativeOutput(output) {
442
505
  function buildFtAssetFlows(inputs, outputs, transactionType, movements) {
443
506
  // Build FT asset flows from verified movements, never directly from FTape markers.
444
507
  const sourceAddress = firstInputAddress(inputs);
445
- const sourceOwnerEndpoint = ftInputOwnerEndpoint(inputs, outputs);
446
508
  return movements.map((movement, index) => {
509
+ const sourceOwnerEndpoint = ftInputOwnerEndpoint(inputs, outputs, movement.contractId);
447
510
  const to = endpoint({
448
511
  address: movement.receiver,
449
512
  hash: movement.receiverHash,
@@ -451,18 +514,25 @@ function buildFtAssetFlows(inputs, outputs, transactionType, movements) {
451
514
  tapeOutputIndex: movement.tapeOutputIndex,
452
515
  });
453
516
  const isMint = index === 0 && transactionType.endsWith('mint');
454
- const candidateFrom = endpoint(index === 0 ? (sourceOwnerEndpoint ?? { address: sourceAddress }) : undefined);
455
- const purpose = index > 0
456
- ? 'self'
457
- : isMint
458
- ? 'mint'
459
- : transactionType.endsWith('merge') && directionForFlow('transfer', candidateFrom, to) === 'self'
517
+ const candidateFrom = endpoint(sourceOwnerEndpoint ?? { address: sourceAddress });
518
+ const transferDirection = directionForFlow('transfer', candidateFrom, to);
519
+ const purpose = !to
520
+ ? 'unknown'
521
+ : index > 0
522
+ ? transferDirection === 'self'
460
523
  ? 'self'
461
- : 'transfer';
524
+ : hasOwnerIdentity(candidateFrom) && hasOwnerIdentity(to)
525
+ ? 'transfer'
526
+ : 'unknown'
527
+ : isMint
528
+ ? 'mint'
529
+ : transactionType.endsWith('merge') && transferDirection === 'self'
530
+ ? 'self'
531
+ : 'transfer';
462
532
  const from = isMint ? undefined : candidateFrom;
463
533
  return {
464
534
  purpose,
465
- direction: directionForFlow(purpose, from, to),
535
+ direction: purpose === 'unknown' ? 'unknown' : directionForFlow(purpose, from, to),
466
536
  asset: tokenTransactionAsset(movement),
467
537
  amount: tokenTransactionAmount(movement),
468
538
  ...(from ? { from } : {}),
@@ -470,7 +540,29 @@ function buildFtAssetFlows(inputs, outputs, transactionType, movements) {
470
540
  };
471
541
  });
472
542
  }
473
- function buildSemanticAssetFlows(semantic) {
543
+ function semanticEffectSourceEndpoint(effect, asset, inputs, outputs) {
544
+ const declared = endpoint({ address: effect.from?.address, hash: effect.from?.hash });
545
+ if (declared) {
546
+ return declared;
547
+ }
548
+ const indexed = inputAtIndexEndpoint(inputs, effect.inputIndex);
549
+ if (indexed) {
550
+ return indexed;
551
+ }
552
+ if (effect.kind === 'orderLock') {
553
+ const funding = asset.type === 'ft' || asset.type === 'ftlp' || asset.type === 'stablecoin'
554
+ ? endpoint(ftInputOwnerEndpoint(inputs, outputs, asset.contractId))
555
+ : endpoint(inputOwnerOrOutpointEndpoint(inputs.filter((input) => input.prevout?.script.type === ScriptType.P2PKH || input.prevout?.script.type === ScriptType.MULTISIG)));
556
+ if (funding) {
557
+ return funding;
558
+ }
559
+ }
560
+ if (effect.kind === 'orderLock' || effect.kind === 'orderRelease') {
561
+ return endpoint({ address: effect.to?.address, hash: effect.to?.hash });
562
+ }
563
+ return undefined;
564
+ }
565
+ function buildSemanticAssetFlows(semantic, inputs, outputs) {
474
566
  // Derive asset flows for complex protocols such as OrderBook from semantic effects to avoid duplicate inference.
475
567
  const orderBookContext = orderBookSemanticContext(semantic);
476
568
  const publicEffects = orderBookContext
@@ -479,13 +571,14 @@ function buildSemanticAssetFlows(semantic) {
479
571
  return publicEffects.map((effect) => {
480
572
  const purpose = semanticEffectPurpose(effect, Boolean(orderBookContext));
481
573
  const context = purpose === 'lock' ? orderBookContext : undefined;
482
- const from = endpoint({ address: effect.from?.address, inputIndex: effect.inputIndex });
574
+ const asset = semanticAssetToTransactionAsset(effect.asset);
575
+ const from = semanticEffectSourceEndpoint(effect, asset, inputs, outputs);
483
576
  const to = endpoint({
484
577
  address: effect.to?.address,
578
+ hash: effect.to?.hash,
485
579
  outputIndex: effect.outputIndex,
486
580
  tapeOutputIndex: effect.tapeOutputIndex,
487
581
  });
488
- const asset = semanticAssetToTransactionAsset(effect.asset);
489
582
  if (asset.type === 'nftCollection') {
490
583
  return {
491
584
  purpose: 'mint',
@@ -526,19 +619,11 @@ function poolNftTokenAsset(movement) {
526
619
  };
527
620
  }
528
621
  function poolNftLpAsset(movement) {
529
- const asset = {
530
- type: 'ft',
531
- symbol: movement.ftSymbol ? `${movement.ftSymbol}-LP` : 'LP',
532
- name: movement.ftName ? `${movement.ftName} LP` : undefined,
533
- decimal: movement.ftDecimal,
534
- };
535
- if (!movement.poolId) {
536
- return asset;
537
- }
538
622
  return {
539
- ...asset,
540
- subtype: 'poolLp',
541
- poolId: movement.poolId,
623
+ type: 'ftlp',
624
+ symbol: movement.ftSymbol ?? 'FTLP',
625
+ name: movement.ftName,
626
+ decimal: movement.ftDecimal,
542
627
  };
543
628
  }
544
629
  function poolNftCreateAsset(movement) {
@@ -570,9 +655,12 @@ function poolNftPoolEndpoint(movement) {
570
655
  if (pool) {
571
656
  return pool;
572
657
  }
658
+ const hash = endpoint({ hash: movement.poolStateHash });
659
+ if (hash) {
660
+ return hash;
661
+ }
573
662
  return endpoint({
574
663
  address: movement.poolStateAddress,
575
- hash: movement.poolStateAddress ? undefined : movement.poolStateHash,
576
664
  outputIndex: movement.poolStateOutputIndex ?? movement.poolOutputIndex,
577
665
  tapeOutputIndex: movement.tapeOutputIndex,
578
666
  });
@@ -598,26 +686,22 @@ function poolNftFeeEndpoint(feeOutput) {
598
686
  outputIndex: feeOutput.outputIndex,
599
687
  });
600
688
  }
601
- function buildPoolNftAssetFlows(movement) {
689
+ function buildPoolNftAssetFlows(movement, inputs) {
602
690
  const flows = [];
603
691
  const pool = poolNftPoolEndpoint(movement);
604
692
  const receiver = poolNftReceiverEndpoint(movement);
605
693
  const sender = poolNftSenderEndpoint(movement);
606
- const userIn = sender ?? receiver;
694
+ const inputFallback = endpoint(inputOwnerOrOutpointEndpoint(inputs));
695
+ const userIn = sender ?? receiver ?? inputFallback;
607
696
  const userOut = receiver ?? sender;
608
697
  const tokenAsset = poolNftTokenAsset(movement);
609
698
  const lpAsset = poolNftLpAsset(movement);
610
699
  const createAsset = poolNftCreateAsset(movement);
611
700
  if (createAsset) {
612
- const to = endpoint({
613
- txid: movement.contractId,
614
- vout: movement.poolStateOutputIndex ?? movement.poolOutputIndex ?? 0,
615
- });
616
701
  flows.push({
617
702
  purpose: 'mint',
618
703
  direction: 'in',
619
704
  asset: createAsset,
620
- ...(to ? { to } : {}),
621
705
  });
622
706
  }
623
707
  if (movement.tbcInSatoshis !== undefined && movement.tbcInSatoshis > 0) {
@@ -668,13 +752,15 @@ function buildPoolNftAssetFlows(movement) {
668
752
  });
669
753
  }
670
754
  if (movement.ftLpInRawAmount) {
671
- const purpose = 'burn';
755
+ const purpose = 'transfer';
756
+ const lpDestination = movement.action === 'burnFtLp' ? receiver : pool;
672
757
  flows.push({
673
758
  purpose,
674
- direction: directionForFlow(purpose, userIn, undefined),
759
+ direction: directionForFlow(purpose, userIn, lpDestination),
675
760
  asset: lpAsset,
676
761
  amount: poolNftRawAmount(movement.ftLpInRawAmount, movement.ftDecimal),
677
762
  ...(userIn ? { from: userIn } : {}),
763
+ ...(lpDestination ? { to: lpDestination } : {}),
678
764
  });
679
765
  }
680
766
  if (movement.ftLpOutRawAmount) {
@@ -701,7 +787,7 @@ function buildPoolNftAssetFlows(movement) {
701
787
  }
702
788
  return flows;
703
789
  }
704
- function buildProtocolAssetFlows(nftMovements, piggyBankMovements, poolNftMovements) {
790
+ function buildProtocolAssetFlows(inputs, nftMovements, piggyBankMovements, poolNftMovements) {
705
791
  // Add protocol-specific non-FT flows here; native TBC carriers are handled separately below.
706
792
  const piggyBankFlows = piggyBankMovements.map((movement) => {
707
793
  const purpose = movement.action === 'unfreeze' ? 'release' : 'lock';
@@ -710,7 +796,7 @@ function buildProtocolAssetFlows(nftMovements, piggyBankMovements, poolNftMoveme
710
796
  address: movement.address,
711
797
  inputIndex: movement.inputIndex,
712
798
  }
713
- : undefined);
799
+ : inputOwnerOrOutpointEndpoint(inputs));
714
800
  const to = endpoint({
715
801
  address: movement.receiver ?? movement.address,
716
802
  outputIndex: movement.action === 'unfreeze' ? movement.releaseOutputIndex : movement.outputIndex,
@@ -774,7 +860,7 @@ function buildProtocolAssetFlows(nftMovements, piggyBankMovements, poolNftMoveme
774
860
  ...(to ? { to } : {}),
775
861
  };
776
862
  });
777
- const poolFlows = poolNftMovements.flatMap(buildPoolNftAssetFlows);
863
+ const poolFlows = poolNftMovements.flatMap((movement) => buildPoolNftAssetFlows(movement, inputs));
778
864
  return [...piggyBankFlows, ...nftFlows, ...poolFlows];
779
865
  }
780
866
  function poolNftExplainedFtOutputIndexes(poolNftMovements) {
@@ -825,7 +911,7 @@ export function buildAssetFlows(transactionType, inputs, outputs, ftMovements, n
825
911
  // Asset flows are the core public display layer for observable protocol assets and native TBC movements.
826
912
  // Contract state remains available from decoded chain inputs and outputs and internal semantic evidence.
827
913
  if (orderBookOrders.length) {
828
- return aggregateAssetFlows(buildSemanticAssetFlows(semantic));
914
+ return finalizeAssetFlows(buildSemanticAssetFlows(semantic, inputs, outputs));
829
915
  }
830
916
  const protocolNativeOutputIndexes = new Set([
831
917
  ...nftMovements.flatMap((movement) => [movement.outputIndex, movement.holdOutputIndex]),
@@ -860,9 +946,9 @@ export function buildAssetFlows(transactionType, inputs, outputs, ftMovements, n
860
946
  : undefined,
861
947
  ]),
862
948
  ].filter((index) => index !== undefined));
863
- return aggregateAssetFlows([
949
+ return finalizeAssetFlows([
864
950
  ...buildFtAssetFlows(inputs, outputs, transactionType, ftMovementsForAssetFlows),
865
- ...buildProtocolAssetFlows(nftMovements, piggyBankMovements, poolNftMovements),
951
+ ...buildProtocolAssetFlows(inputs, nftMovements, piggyBankMovements, poolNftMovements),
866
952
  ...buildNativeAssetFlows(inputs, outputs, transactionType, ftMovements, protocolNativeOutputIndexes, nativeProtocolCarrierOutputIndexes, unsupportedOutputContexts(unsupported)),
867
953
  ]);
868
954
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/result/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/result/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"semantic.d.ts","sourceRoot":"","sources":["../../src/result/semantic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,mBAAmB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAIV,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AA+hC9B,wBAAgB,aAAa,CAC3B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,YAAY,EAAE,EACtB,OAAO,EAAE,aAAa,EAAE,EACxB,WAAW,EAAE,qBAAqB,EAAE,EACpC,YAAY,EAAE,WAAW,EAAE,EAC3B,eAAe,EAAE,cAAc,EAAE,EACjC,gBAAgB,GAAE,eAAe,EAAO,GACvC,mBAAmB,GAAG,SAAS,CAUjC;AAED,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,CAwBtH"}
1
+ {"version":3,"file":"semantic.d.ts","sourceRoot":"","sources":["../../src/result/semantic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,mBAAmB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAIV,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAkiC9B,wBAAgB,aAAa,CAC3B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,YAAY,EAAE,EACtB,OAAO,EAAE,aAAa,EAAE,EACxB,WAAW,EAAE,qBAAqB,EAAE,EACpC,YAAY,EAAE,WAAW,EAAE,EAC3B,eAAe,EAAE,cAAc,EAAE,EACjC,gBAAgB,GAAE,eAAe,EAAO,GACvC,mBAAmB,GAAG,SAAS,CAUjC;AAED,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,CAwBtH"}
@@ -26,7 +26,7 @@ function firstInputAddress(inputs) {
26
26
  }
27
27
  function tokenAssetFromMovement(movement) {
28
28
  return {
29
- type: movement.isStableCoin ? 'stablecoin' : 'ft',
29
+ type: movement.isStableCoin ? 'stablecoin' : movement.isFtLp ? 'ftlp' : 'ft',
30
30
  symbol: movement.symbol,
31
31
  name: movement.name,
32
32
  contractId: movement.contractId,
@@ -61,10 +61,9 @@ function poolNftTokenAsset(movement) {
61
61
  }
62
62
  function poolNftLpAsset(movement) {
63
63
  return {
64
- type: 'ft',
65
- symbol: movement.ftSymbol ? `${movement.ftSymbol}-LP` : 'LP',
66
- name: movement.ftName ? `${movement.ftName} LP` : undefined,
67
- contractId: movement.lpTokenId,
64
+ type: 'ftlp',
65
+ symbol: movement.ftSymbol ?? 'FTLP',
66
+ name: movement.ftName,
68
67
  decimal: movement.ftDecimal,
69
68
  };
70
69
  }
@@ -102,9 +101,9 @@ function ownerParty(role, owner) {
102
101
  function poolNftPoolParty(movement) {
103
102
  return {
104
103
  role: 'pool',
105
- address: movement.poolStateAddress,
106
- hash: movement.poolStateAddress ? undefined : movement.poolStateHash,
107
- label: movement.poolId ?? movement.ftContractTxid ?? 'PoolNFT pool',
104
+ address: movement.poolStateHash ? undefined : movement.poolStateAddress,
105
+ hash: movement.poolId ? undefined : movement.poolStateHash,
106
+ label: movement.poolId ?? movement.poolStateHash ?? 'PoolNFT pool',
108
107
  outputIndex: movement.poolStateOutputIndex ?? movement.poolOutputIndex,
109
108
  };
110
109
  }
@@ -448,15 +447,15 @@ function buildPoolNftSemantic(transactionType, movements) {
448
447
  }
449
448
  const ftLpInAmount = poolNftRawAmount(movement.ftLpInRawAmount, movement.ftDecimal);
450
449
  if (ftLpInAmount) {
450
+ const lpDestination = movement.action === 'burnFtLp'
451
+ ? ownerParty('burn', { address: movement.receiver })
452
+ : pool;
451
453
  movementEffects.push({
452
- kind: 'burn',
454
+ kind: 'transfer',
453
455
  asset: lpAsset,
454
456
  amount: ftLpInAmount,
455
457
  ...(userIn ? { from: userIn } : {}),
456
- to: {
457
- role: 'burn',
458
- ...(movement.action === 'burnFtLp' ? { address: movement.receiver } : { label: 'PoolNFT burn' }),
459
- },
458
+ ...(lpDestination ? { to: lpDestination } : {}),
460
459
  tapeOutputIndex: movement.tapeOutputIndex,
461
460
  movementIndex,
462
461
  source: 'decoded',
@@ -496,13 +495,17 @@ function buildPoolNftSemantic(transactionType, movements) {
496
495
  type: transactionType,
497
496
  confidence: hasHeuristic ? 'heuristic' : 'exact',
498
497
  actors: uniqueSemanticParties([
499
- ...movements.map(poolNftPoolParty),
498
+ ...movements
499
+ .filter((movement) => movement.action !== 'burnFtLp')
500
+ .map(poolNftPoolParty),
500
501
  ...movements.map(poolNftSenderParty),
501
- ...movements.map(poolNftReceiverParty),
502
+ ...movements
503
+ .filter((movement) => movement.action !== 'burnFtLp')
504
+ .map(poolNftReceiverParty),
502
505
  ...movements.flatMap((movement) => (movement.feeOutputs ?? []).map(poolNftFeeCollectorParty)),
503
506
  ...movements
504
- .filter((movement) => movement.ftLpInRawAmount)
505
- .map((movement) => ownerParty('burn', movement.action === 'burnFtLp' ? { address: movement.receiver } : { label: 'PoolNFT burn' })),
507
+ .filter((movement) => movement.action === 'burnFtLp' && movement.ftLpInRawAmount)
508
+ .map((movement) => ownerParty('burn', { address: movement.receiver })),
506
509
  ]),
507
510
  effects,
508
511
  relations: [