@btc-vision/transaction 1.7.27 → 1.7.29

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.
Files changed (122) hide show
  1. package/browser/_version.d.ts +1 -1
  2. package/browser/btc-vision-bitcoin.js +1610 -1609
  3. package/browser/consensus/ConsensusConfig.d.ts +1 -5
  4. package/browser/consensus/IConsensusConfig.d.ts +6 -0
  5. package/browser/consensus/metadata/RoswellConsensus.d.ts +1 -1
  6. package/browser/epoch/interfaces/IChallengeSolution.d.ts +15 -1
  7. package/browser/generators/builders/CalldataGenerator.d.ts +2 -2
  8. package/browser/generators/builders/DeploymentGenerator.d.ts +2 -2
  9. package/browser/generators/builders/P2WDAGenerator.d.ts +2 -2
  10. package/browser/index.js +876 -1055
  11. package/browser/opnet.d.ts +7 -2
  12. package/browser/signer/AddressRotation.d.ts +2 -3
  13. package/browser/signer/IRotationSigner.d.ts +8 -0
  14. package/browser/transaction/TransactionFactory.d.ts +4 -27
  15. package/browser/transaction/browser/Web3Provider.d.ts +2 -25
  16. package/browser/transaction/builders/CancelTransaction.d.ts +1 -4
  17. package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts +3 -3
  18. package/browser/transaction/builders/CustomScriptTransaction.d.ts +2 -8
  19. package/browser/transaction/builders/DeploymentTransaction.d.ts +3 -3
  20. package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts +2 -2
  21. package/browser/transaction/builders/SharedInteractionTransaction.d.ts +3 -3
  22. package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts +4 -0
  23. package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts +8 -0
  24. package/browser/transaction/interfaces/ITransactionParameters.d.ts +6 -6
  25. package/browser/transaction/interfaces/ITransactionResponses.d.ts +26 -0
  26. package/browser/transaction/interfaces/ITweakedTransactionData.d.ts +17 -0
  27. package/browser/transaction/interfaces/IWeb3ProviderTypes.d.ts +24 -0
  28. package/browser/transaction/shared/TweakedTransaction.d.ts +2 -14
  29. package/browser/transaction/utils/WitnessUtils.d.ts +1 -0
  30. package/browser/utxo/OPNetLimitedProvider.d.ts +1 -1
  31. package/browser/utxo/interfaces/IUTXO.d.ts +2 -2
  32. package/browser/vendors.js +90 -90
  33. package/browser/verification/TapscriptVerificator.d.ts +2 -2
  34. package/build/_version.d.ts +1 -1
  35. package/build/_version.js +1 -1
  36. package/build/consensus/ConsensusConfig.d.ts +1 -5
  37. package/build/consensus/IConsensusConfig.d.ts +6 -0
  38. package/build/consensus/IConsensusConfig.js +1 -0
  39. package/build/consensus/metadata/RoswellConsensus.d.ts +1 -1
  40. package/build/epoch/interfaces/IChallengeSolution.d.ts +15 -1
  41. package/build/epoch/validator/EpochValidator.js +35 -3
  42. package/build/generators/builders/CalldataGenerator.d.ts +2 -2
  43. package/build/generators/builders/DeploymentGenerator.d.ts +2 -2
  44. package/build/generators/builders/P2WDAGenerator.d.ts +2 -2
  45. package/build/opnet.d.ts +7 -2
  46. package/build/opnet.js +7 -2
  47. package/build/signer/AddressRotation.d.ts +2 -3
  48. package/build/signer/IRotationSigner.d.ts +8 -0
  49. package/build/signer/IRotationSigner.js +1 -0
  50. package/build/transaction/TransactionFactory.d.ts +4 -27
  51. package/build/transaction/TransactionFactory.js +1 -1
  52. package/build/transaction/browser/Web3Provider.d.ts +2 -25
  53. package/build/transaction/builders/CancelTransaction.d.ts +1 -4
  54. package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts +3 -3
  55. package/build/transaction/builders/CustomScriptTransaction.d.ts +2 -8
  56. package/build/transaction/builders/DeploymentTransaction.d.ts +3 -3
  57. package/build/transaction/builders/InteractionTransactionP2WDA.d.ts +2 -2
  58. package/build/transaction/builders/SharedInteractionTransaction.d.ts +3 -3
  59. package/build/transaction/builders/TransactionBuilder.js +3 -21
  60. package/build/transaction/interfaces/ICancelTransactionParameters.d.ts +4 -0
  61. package/build/transaction/interfaces/ICancelTransactionParameters.js +1 -0
  62. package/build/transaction/interfaces/ICustomTransactionParameters.d.ts +8 -0
  63. package/build/transaction/interfaces/ICustomTransactionParameters.js +1 -0
  64. package/build/transaction/interfaces/ITransactionParameters.d.ts +6 -6
  65. package/build/transaction/interfaces/ITransactionResponses.d.ts +26 -0
  66. package/build/transaction/interfaces/ITransactionResponses.js +1 -0
  67. package/build/transaction/interfaces/ITweakedTransactionData.d.ts +17 -0
  68. package/build/transaction/interfaces/ITweakedTransactionData.js +1 -0
  69. package/build/transaction/interfaces/IWeb3ProviderTypes.d.ts +24 -0
  70. package/build/transaction/interfaces/IWeb3ProviderTypes.js +1 -0
  71. package/build/transaction/shared/TweakedTransaction.d.ts +2 -14
  72. package/build/transaction/shared/TweakedTransaction.js +3 -3
  73. package/build/transaction/utils/WitnessUtils.d.ts +1 -0
  74. package/build/transaction/utils/WitnessUtils.js +23 -0
  75. package/build/tsconfig.build.tsbuildinfo +1 -1
  76. package/build/utxo/OPNetLimitedProvider.d.ts +1 -1
  77. package/build/utxo/OPNetLimitedProvider.js +1 -1
  78. package/build/utxo/interfaces/IUTXO.d.ts +2 -2
  79. package/build/verification/TapscriptVerificator.d.ts +2 -2
  80. package/package.json +40 -20
  81. package/src/_version.ts +1 -1
  82. package/src/consensus/ConsensusConfig.ts +1 -28
  83. package/src/consensus/IConsensusConfig.ts +29 -0
  84. package/src/consensus/metadata/RoswellConsensus.ts +1 -1
  85. package/src/epoch/interfaces/IChallengeSolution.ts +13 -1
  86. package/src/epoch/validator/EpochValidator.ts +54 -3
  87. package/src/generators/builders/CalldataGenerator.ts +3 -3
  88. package/src/generators/builders/DeploymentGenerator.ts +3 -3
  89. package/src/generators/builders/P2WDAGenerator.ts +2 -2
  90. package/src/keypair/MessageSigner.ts +1 -1
  91. package/src/opnet.ts +7 -4
  92. package/src/signer/AddressRotation.ts +3 -4
  93. package/src/signer/IRotationSigner.ts +35 -0
  94. package/src/transaction/TransactionFactory.ts +14 -38
  95. package/src/transaction/browser/Web3Provider.ts +14 -78
  96. package/src/transaction/builders/CancelTransaction.ts +2 -11
  97. package/src/transaction/builders/ConsolidatedInteractionTransaction.ts +3 -3
  98. package/src/transaction/builders/CustomScriptTransaction.ts +1 -15
  99. package/src/transaction/builders/DeploymentTransaction.ts +3 -3
  100. package/src/transaction/builders/InteractionTransactionP2WDA.ts +3 -3
  101. package/src/transaction/builders/SharedInteractionTransaction.ts +3 -3
  102. package/src/transaction/builders/TransactionBuilder.ts +2 -28
  103. package/src/transaction/interfaces/ICancelTransactionParameters.ts +8 -0
  104. package/src/transaction/interfaces/ICustomTransactionParameters.ts +15 -0
  105. package/src/transaction/interfaces/ITransactionParameters.ts +6 -6
  106. package/src/transaction/interfaces/ITransactionResponses.ts +29 -0
  107. package/src/transaction/interfaces/ITweakedTransactionData.ts +24 -0
  108. package/src/transaction/interfaces/IWeb3ProviderTypes.ts +74 -0
  109. package/src/transaction/offline/TransactionReconstructor.ts +1 -1
  110. package/src/transaction/shared/TweakedTransaction.ts +6 -30
  111. package/src/transaction/utils/WitnessUtils.ts +36 -0
  112. package/src/utxo/OPNetLimitedProvider.ts +3 -1
  113. package/src/utxo/interfaces/IUTXO.ts +2 -2
  114. package/src/verification/TapscriptVerificator.ts +2 -2
  115. package/browser/metadata/tokens.d.ts +0 -39
  116. package/browser/transaction/processor/PsbtTransaction.d.ts +0 -25
  117. package/build/metadata/tokens.d.ts +0 -39
  118. package/build/metadata/tokens.js +0 -100
  119. package/build/transaction/processor/PsbtTransaction.d.ts +0 -25
  120. package/build/transaction/processor/PsbtTransaction.js +0 -80
  121. package/src/metadata/tokens.ts +0 -139
  122. package/src/transaction/processor/PsbtTransaction.ts +0 -179
@@ -1,22 +1,15 @@
1
1
  import { Transaction } from '@btc-vision/bitcoin';
2
2
  import { UTXO } from '../utxo/interfaces/IUTXO.js';
3
- import { ICustomTransactionParameters } from './builders/CustomScriptTransaction.js';
4
3
  import { FundingTransaction } from './builders/FundingTransaction.js';
5
4
  import { TransactionBuilder } from './builders/TransactionBuilder.js';
6
5
  import { TransactionType } from './enums/TransactionType.js';
7
6
  import { IDeploymentParameters, IFundingTransactionParameters, IInteractionParameters } from './interfaces/ITransactionParameters.js';
8
- import { ICancelTransactionParametersWithoutSigner, ICustomTransactionWithoutSigner, InteractionParametersWithoutSigner } from './browser/Web3Provider.js';
7
+ import { ICancelTransactionParametersWithoutSigner, ICustomTransactionWithoutSigner, InteractionParametersWithoutSigner } from './interfaces/IWeb3ProviderTypes.js';
9
8
  import { RawChallenge } from '../epoch/interfaces/IChallengeSolution.js';
10
- import { ICancelTransactionParameters } from './builders/CancelTransaction.js';
11
9
  import { IConsolidatedInteractionParameters } from './interfaces/IConsolidatedTransactionParameters.js';
12
- export interface DeploymentResult {
13
- readonly transaction: [string, string];
14
- readonly contractAddress: string;
15
- readonly contractPubKey: string;
16
- readonly challenge: RawChallenge;
17
- readonly utxos: UTXO[];
18
- readonly inputUtxos: UTXO[];
19
- }
10
+ import { CancelledTransaction, DeploymentResult, InteractionResponse } from './interfaces/ITransactionResponses.js';
11
+ import { ICancelTransactionParameters } from './interfaces/ICancelTransactionParameters.js';
12
+ import { ICustomTransactionParameters } from './interfaces/ICustomTransactionParameters.js';
20
13
  export interface FundingTransactionResponse {
21
14
  readonly tx: Transaction;
22
15
  readonly original: FundingTransaction;
@@ -30,25 +23,9 @@ export interface BitcoinTransferBase {
30
23
  readonly nextUTXOs: UTXO[];
31
24
  readonly inputUtxos: UTXO[];
32
25
  }
33
- export interface InteractionResponse {
34
- readonly fundingTransaction: string | null;
35
- readonly interactionTransaction: string;
36
- readonly estimatedFees: bigint;
37
- readonly nextUTXOs: UTXO[];
38
- readonly fundingUTXOs: UTXO[];
39
- readonly fundingInputUtxos: UTXO[];
40
- readonly challenge: RawChallenge;
41
- readonly interactionAddress: string | null;
42
- readonly compiledTargetScript: string | null;
43
- }
44
26
  export interface BitcoinTransferResponse extends BitcoinTransferBase {
45
27
  readonly original: FundingTransaction;
46
28
  }
47
- export interface CancelledTransaction {
48
- readonly transaction: string;
49
- readonly nextUTXOs: UTXO[];
50
- readonly inputUtxos: UTXO[];
51
- }
52
29
  export interface ConsolidatedInteractionResponse {
53
30
  readonly setupTransaction: string;
54
31
  readonly revealTransaction: string;
@@ -1,6 +1,6 @@
1
1
  import { Transaction } from '@btc-vision/bitcoin';
2
2
  import { currentConsensus } from '../consensus/ConsensusConfig.js';
3
- import { CustomScriptTransaction, } from './builders/CustomScriptTransaction.js';
3
+ import { CustomScriptTransaction } from './builders/CustomScriptTransaction.js';
4
4
  import { DeploymentTransaction } from './builders/DeploymentTransaction.js';
5
5
  import { FundingTransaction } from './builders/FundingTransaction.js';
6
6
  import { InteractionTransaction } from './builders/InteractionTransaction.js';
@@ -1,29 +1,6 @@
1
- import { IDeploymentParameters, IInteractionParameters } from '../interfaces/ITransactionParameters.js';
2
1
  import { UTXO } from '../../utxo/interfaces/IUTXO.js';
3
- import { CancelledTransaction, DeploymentResult, InteractionResponse } from '../TransactionFactory';
4
- import { ICustomTransactionParameters } from '../builders/CustomScriptTransaction.js';
5
- import { ICancelTransactionParameters } from '../builders/CancelTransaction.js';
6
- import { MLDSASecurityLevel } from '@btc-vision/bip32';
7
- export type InteractionParametersWithoutSigner = Omit<IInteractionParameters, 'signer' | 'challenge' | 'mldsaSigner'>;
8
- export type IDeploymentParametersWithoutSigner = Omit<IDeploymentParameters, 'signer' | 'network' | 'challenge' | 'mldsaSigner'>;
9
- export type ICustomTransactionWithoutSigner = Omit<ICustomTransactionParameters, 'signer' | 'challenge' | 'mldsaSigner'>;
10
- export type ICancelTransactionParametersWithoutSigner = Omit<ICancelTransactionParameters, 'signer' | 'challenge' | 'network' | 'mldsaSigner'>;
11
- export interface BroadcastTransactionOptions {
12
- raw: string;
13
- psbt: boolean;
14
- }
15
- export interface BroadcastedTransaction {
16
- readonly success: boolean;
17
- readonly result?: string;
18
- readonly error?: string;
19
- readonly peers?: number;
20
- }
21
- export interface MLDSASignature {
22
- readonly signature: string;
23
- readonly publicKey: string;
24
- readonly securityLevel: MLDSASecurityLevel;
25
- readonly messageHash: string;
26
- }
2
+ import { CancelledTransaction, DeploymentResult, InteractionResponse } from '../interfaces/ITransactionResponses.js';
3
+ import { BroadcastedTransaction, BroadcastTransactionOptions, ICancelTransactionParametersWithoutSigner, ICustomTransactionWithoutSigner, IDeploymentParametersWithoutSigner, InteractionParametersWithoutSigner, MLDSASignature } from '../interfaces/IWeb3ProviderTypes.js';
27
4
  export interface Web3Provider {
28
5
  signInteraction(interactionParameters: InteractionParametersWithoutSigner): Promise<InteractionResponse>;
29
6
  signAndBroadcastInteraction(interactionParameters: InteractionParametersWithoutSigner): Promise<[BroadcastedTransaction, BroadcastedTransaction, UTXO[], string]>;
@@ -2,10 +2,7 @@ import { TransactionType } from '../enums/TransactionType.js';
2
2
  import { P2TRPayment, Psbt, PsbtInput, Taptree } from '@btc-vision/bitcoin';
3
3
  import { TransactionBuilder } from './TransactionBuilder.js';
4
4
  import { TapLeafScript } from '../interfaces/Tap.js';
5
- import { ITransactionParameters } from '../interfaces/ITransactionParameters.js';
6
- export interface ICancelTransactionParameters extends Omit<ITransactionParameters, 'priorityFee' | 'gasSatFee'> {
7
- readonly compiledTargetScript: string | Buffer;
8
- }
5
+ import { ICancelTransactionParameters } from '../interfaces/ICancelTransactionParameters.js';
9
6
  export declare class CancelTransaction extends TransactionBuilder<TransactionType.CANCEL> {
10
7
  type: TransactionType.CANCEL;
11
8
  protected tapLeafScript: TapLeafScript | null;
@@ -6,14 +6,14 @@ import { HashCommitmentGenerator } from '../../generators/builders/HashCommitmen
6
6
  import { CalldataGenerator } from '../../generators/builders/CalldataGenerator.js';
7
7
  import { IConsolidatedInteractionParameters, IConsolidatedInteractionResult, IHashCommittedP2WSH, IRevealTransactionResult } from '../interfaces/IConsolidatedTransactionParameters.js';
8
8
  import { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
9
- import { ChallengeSolution } from '../../epoch/ChallengeSolution.js';
9
+ import { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
10
10
  export declare class ConsolidatedInteractionTransaction extends TransactionBuilder<TransactionType.INTERACTION> {
11
11
  readonly type: TransactionType.INTERACTION;
12
12
  readonly randomBytes: Buffer;
13
13
  protected readonly contractAddress: string;
14
14
  protected readonly contractSecret: Buffer;
15
15
  protected readonly calldata: Buffer;
16
- protected readonly challenge: ChallengeSolution;
16
+ protected readonly challenge: IChallengeSolution;
17
17
  protected readonly epochChallenge: IP2WSHAddress;
18
18
  protected readonly scriptSigner: ECPairInterface;
19
19
  protected readonly calldataGenerator: CalldataGenerator;
@@ -27,7 +27,7 @@ export declare class ConsolidatedInteractionTransaction extends TransactionBuild
27
27
  exportCompiledTargetScript(): Buffer;
28
28
  getContractSecret(): Buffer;
29
29
  getRndBytes(): Buffer;
30
- getChallenge(): ChallengeSolution;
30
+ getChallenge(): IChallengeSolution;
31
31
  getCommitmentOutputs(): IHashCommittedP2WSH[];
32
32
  getOutputCount(): number;
33
33
  getTotalChunkCount(): number;
@@ -1,14 +1,8 @@
1
- import { P2TRPayment, Psbt, PsbtInput, Stack } from '@btc-vision/bitcoin';
1
+ import { P2TRPayment, Psbt, PsbtInput } from '@btc-vision/bitcoin';
2
2
  import { TransactionType } from '../enums/TransactionType.js';
3
3
  import { TapLeafScript } from '../interfaces/Tap.js';
4
- import { SharedInteractionParameters } from '../interfaces/ITransactionParameters.js';
5
4
  import { TransactionBuilder } from './TransactionBuilder.js';
6
- export interface ICustomTransactionParameters extends Omit<SharedInteractionParameters, 'challenge'> {
7
- script: (Buffer | Stack)[];
8
- witnesses: Buffer[];
9
- annex?: Buffer;
10
- to: string;
11
- }
5
+ import { ICustomTransactionParameters } from '../interfaces/ICustomTransactionParameters.js';
12
6
  export declare class CustomScriptTransaction extends TransactionBuilder<TransactionType.CUSTOM_CODE> {
13
7
  type: TransactionType.CUSTOM_CODE;
14
8
  protected readonly _scriptAddress: string;
@@ -4,12 +4,12 @@ import { P2TRPayment, Psbt } from '@btc-vision/bitcoin';
4
4
  import { TransactionBuilder } from './TransactionBuilder.js';
5
5
  import { TapLeafScript } from '../interfaces/Tap.js';
6
6
  import { Address } from '../../keypair/Address.js';
7
- import { ChallengeSolution } from '../../epoch/ChallengeSolution.js';
7
+ import { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
8
8
  import { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
9
9
  export declare class DeploymentTransaction extends TransactionBuilder<TransactionType.DEPLOYMENT> {
10
10
  static readonly MAXIMUM_CONTRACT_SIZE: number;
11
11
  type: TransactionType.DEPLOYMENT;
12
- protected readonly challenge: ChallengeSolution;
12
+ protected readonly challenge: IChallengeSolution;
13
13
  protected readonly epochChallenge: IP2WSHAddress;
14
14
  protected readonly _contractAddress: Address;
15
15
  protected tapLeafScript: TapLeafScript | null;
@@ -32,7 +32,7 @@ export declare class DeploymentTransaction extends TransactionBuilder<Transactio
32
32
  get p2trAddress(): string;
33
33
  exportCompiledTargetScript(): Buffer;
34
34
  getRndBytes(): Buffer;
35
- getChallenge(): ChallengeSolution;
35
+ getChallenge(): IChallengeSolution;
36
36
  getContractAddress(): string;
37
37
  protected contractSignerXOnlyPubKey(): Buffer;
38
38
  protected buildTransaction(): Promise<void>;
@@ -3,7 +3,7 @@ import { Psbt } from '@btc-vision/bitcoin';
3
3
  import { TransactionType } from '../enums/TransactionType.js';
4
4
  import { IInteractionParameters } from '../interfaces/ITransactionParameters.js';
5
5
  import { TransactionBuilder } from './TransactionBuilder.js';
6
- import { ChallengeSolution } from '../../epoch/ChallengeSolution.js';
6
+ import { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
7
7
  import { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
8
8
  export declare class InteractionTransactionP2WDA extends TransactionBuilder<TransactionType.INTERACTION> {
9
9
  private static readonly MAX_WITNESS_FIELDS;
@@ -22,7 +22,7 @@ export declare class InteractionTransactionP2WDA extends TransactionBuilder<Tran
22
22
  private readonly compiledOperationData;
23
23
  constructor(parameters: IInteractionParameters);
24
24
  getRndBytes(): Buffer;
25
- getChallenge(): ChallengeSolution;
25
+ getChallenge(): IChallengeSolution;
26
26
  getContractSecret(): Buffer;
27
27
  protected buildTransaction(): Promise<void>;
28
28
  protected createMineableRewardOutputs(): Promise<void>;
@@ -4,7 +4,7 @@ import { TransactionBuilder } from './TransactionBuilder.js';
4
4
  import { TransactionType } from '../enums/TransactionType.js';
5
5
  import { CalldataGenerator } from '../../generators/builders/CalldataGenerator.js';
6
6
  import { SharedInteractionParameters } from '../interfaces/ITransactionParameters.js';
7
- import { ChallengeSolution } from '../../epoch/ChallengeSolution.js';
7
+ import { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
8
8
  import { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
9
9
  export declare abstract class SharedInteractionTransaction<T extends TransactionType> extends TransactionBuilder<T> {
10
10
  static readonly MAXIMUM_CALLDATA_SIZE: number;
@@ -13,7 +13,7 @@ export declare abstract class SharedInteractionTransaction<T extends Transaction
13
13
  protected leftOverFundsScriptRedeem: P2TRPayment | null;
14
14
  protected abstract readonly compiledTargetScript: Buffer;
15
15
  protected abstract readonly scriptTree: Taptree;
16
- protected readonly challenge: ChallengeSolution;
16
+ protected readonly challenge: IChallengeSolution;
17
17
  protected readonly epochChallenge: IP2WSHAddress;
18
18
  protected calldataGenerator: CalldataGenerator;
19
19
  protected readonly calldata: Buffer;
@@ -24,7 +24,7 @@ export declare abstract class SharedInteractionTransaction<T extends Transaction
24
24
  exportCompiledTargetScript(): Buffer;
25
25
  getContractSecret(): Buffer;
26
26
  getRndBytes(): Buffer;
27
- getChallenge(): ChallengeSolution;
27
+ getChallenge(): IChallengeSolution;
28
28
  protected scriptSignerXOnlyPubKey(): Buffer;
29
29
  protected generateKeyPairFromSeed(): ECPairInterface;
30
30
  protected buildTransaction(): Promise<void>;
@@ -1,4 +1,5 @@
1
- import bitcoin, { getFinalScripts, initEccLib, opcodes, Psbt, script, toXOnly, Transaction, varuint, } from '@btc-vision/bitcoin';
1
+ import bitcoin, { getFinalScripts, initEccLib, opcodes, Psbt, script, toXOnly, Transaction, } from '@btc-vision/bitcoin';
2
+ import { witnessStackToScriptWitness } from '../utils/WitnessUtils.js';
2
3
  import * as ecc from '@bitcoinerlab/secp256k1';
3
4
  import { EcKeyPair } from '../../keypair/EcKeyPair.js';
4
5
  import { AddressVerificator } from '../../keypair/AddressVerificator.js';
@@ -68,26 +69,7 @@ export class TransactionBuilder extends TweakedTransaction {
68
69
  return from || EcKeyPair.getTaprootAddress(keypair, network);
69
70
  }
70
71
  static witnessStackToScriptWitness(witness) {
71
- let buffer = Buffer.allocUnsafe(0);
72
- function writeSlice(slice) {
73
- buffer = Buffer.concat([buffer, Buffer.from(slice)]);
74
- }
75
- function writeVarInt(i) {
76
- const currentLen = buffer.length;
77
- const varintLen = varuint.encodingLength(i);
78
- buffer = Buffer.concat([buffer, Buffer.allocUnsafe(varintLen)]);
79
- varuint.encode(i, buffer, currentLen);
80
- }
81
- function writeVarSlice(slice) {
82
- writeVarInt(slice.length);
83
- writeSlice(slice);
84
- }
85
- function writeVector(vector) {
86
- writeVarInt(vector.length);
87
- vector.forEach(writeVarSlice);
88
- }
89
- writeVector(witness);
90
- return buffer;
72
+ return witnessStackToScriptWitness(witness);
91
73
  }
92
74
  addOPReturn(buffer) {
93
75
  const compileScript = script.compile([opcodes.OP_RETURN, buffer]);
@@ -0,0 +1,4 @@
1
+ import { ITransactionParameters } from './ITransactionParameters.js';
2
+ export interface ICancelTransactionParameters extends Omit<ITransactionParameters, 'priorityFee' | 'gasSatFee'> {
3
+ readonly compiledTargetScript: string | Buffer;
4
+ }
@@ -0,0 +1,8 @@
1
+ import { Stack } from '@btc-vision/bitcoin';
2
+ import { SharedInteractionParameters } from './ITransactionParameters.js';
3
+ export interface ICustomTransactionParameters extends Omit<SharedInteractionParameters, 'challenge'> {
4
+ script: (Buffer | Stack)[];
5
+ witnesses: Buffer[];
6
+ annex?: Buffer;
7
+ to: string;
8
+ }
@@ -1,9 +1,9 @@
1
1
  import { UTXO } from '../../utxo/interfaces/IUTXO.js';
2
- import { ITweakedTransactionData } from '../shared/TweakedTransaction.js';
2
+ import { ITweakedTransactionData } from './ITweakedTransactionData.js';
3
3
  import { ChainId } from '../../network/ChainId.js';
4
4
  import { PsbtOutputExtended } from '@btc-vision/bitcoin';
5
- import { ChallengeSolution } from '../../epoch/ChallengeSolution.js';
6
- import { AddressRotationConfig } from '../../signer/AddressRotation.js';
5
+ import { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
6
+ import { AddressRotationConfigBase } from '../../signer/IRotationSigner.js';
7
7
  export interface LoadedStorage {
8
8
  [key: string]: string[];
9
9
  }
@@ -26,7 +26,7 @@ export interface ITransactionParameters extends ITweakedTransactionData {
26
26
  readonly priorityFee: bigint;
27
27
  readonly gasSatFee: bigint;
28
28
  readonly compiledTargetScript?: Buffer | string;
29
- readonly addressRotation?: AddressRotationConfig;
29
+ readonly addressRotation?: AddressRotationConfigBase;
30
30
  }
31
31
  export interface IFundingTransactionParameters extends ITransactionParameters {
32
32
  amount: bigint;
@@ -35,7 +35,7 @@ export interface IFundingTransactionParameters extends ITransactionParameters {
35
35
  export interface SharedInteractionParameters extends ITransactionParameters {
36
36
  calldata?: Buffer;
37
37
  disableAutoRefund?: boolean;
38
- readonly challenge: ChallengeSolution;
38
+ readonly challenge: IChallengeSolution;
39
39
  readonly randomBytes?: Buffer;
40
40
  readonly loadedStorage?: LoadedStorage;
41
41
  readonly isCancellation?: boolean;
@@ -49,5 +49,5 @@ export interface IDeploymentParameters extends Omit<ITransactionParameters, 'to'
49
49
  readonly bytecode: Buffer;
50
50
  readonly calldata?: Buffer;
51
51
  readonly randomBytes?: Buffer;
52
- readonly challenge: ChallengeSolution;
52
+ readonly challenge: IChallengeSolution;
53
53
  }
@@ -0,0 +1,26 @@
1
+ import { RawChallenge } from '../../epoch/interfaces/IChallengeSolution.js';
2
+ import { UTXO } from '../../utxo/interfaces/IUTXO.js';
3
+ export interface DeploymentResult {
4
+ readonly transaction: [string, string];
5
+ readonly contractAddress: string;
6
+ readonly contractPubKey: string;
7
+ readonly challenge: RawChallenge;
8
+ readonly utxos: UTXO[];
9
+ readonly inputUtxos: UTXO[];
10
+ }
11
+ export interface InteractionResponse {
12
+ readonly fundingTransaction: string | null;
13
+ readonly interactionTransaction: string;
14
+ readonly estimatedFees: bigint;
15
+ readonly nextUTXOs: UTXO[];
16
+ readonly fundingUTXOs: UTXO[];
17
+ readonly fundingInputUtxos: UTXO[];
18
+ readonly challenge: RawChallenge;
19
+ readonly interactionAddress: string | null;
20
+ readonly compiledTargetScript: string | null;
21
+ }
22
+ export interface CancelledTransaction {
23
+ readonly transaction: string;
24
+ readonly nextUTXOs: UTXO[];
25
+ readonly inputUtxos: UTXO[];
26
+ }
@@ -0,0 +1,17 @@
1
+ import { Network, Signer } from '@btc-vision/bitcoin';
2
+ import { ECPairInterface } from 'ecpair';
3
+ import { QuantumBIP32Interface } from '@btc-vision/bip32';
4
+ import { ChainId } from '../../network/ChainId.js';
5
+ import { AddressRotationConfigBase } from '../../signer/IRotationSigner.js';
6
+ export type SupportedTransactionVersion = 1 | 2 | 3;
7
+ export interface ITweakedTransactionData {
8
+ readonly mldsaSigner: QuantumBIP32Interface | null;
9
+ readonly signer: Signer | ECPairInterface;
10
+ readonly network: Network;
11
+ readonly chainId?: ChainId;
12
+ readonly nonWitnessUtxo?: Buffer;
13
+ readonly noSignatures?: boolean;
14
+ readonly unlockScript?: Buffer[];
15
+ readonly txVersion?: SupportedTransactionVersion;
16
+ readonly addressRotation?: AddressRotationConfigBase;
17
+ }
@@ -0,0 +1,24 @@
1
+ import { IDeploymentParameters, IInteractionParameters } from './ITransactionParameters.js';
2
+ import { ICustomTransactionParameters } from './ICustomTransactionParameters.js';
3
+ import { ICancelTransactionParameters } from './ICancelTransactionParameters.js';
4
+ import { MLDSASecurityLevel } from '@btc-vision/bip32';
5
+ export type InteractionParametersWithoutSigner = Omit<IInteractionParameters, 'signer' | 'challenge' | 'mldsaSigner'>;
6
+ export type IDeploymentParametersWithoutSigner = Omit<IDeploymentParameters, 'signer' | 'network' | 'challenge' | 'mldsaSigner'>;
7
+ export type ICustomTransactionWithoutSigner = Omit<ICustomTransactionParameters, 'signer' | 'challenge' | 'mldsaSigner'>;
8
+ export type ICancelTransactionParametersWithoutSigner = Omit<ICancelTransactionParameters, 'signer' | 'challenge' | 'network' | 'mldsaSigner'>;
9
+ export interface BroadcastTransactionOptions {
10
+ raw: string;
11
+ psbt: boolean;
12
+ }
13
+ export interface BroadcastedTransaction {
14
+ readonly success: boolean;
15
+ readonly result?: string;
16
+ readonly error?: string;
17
+ readonly peers?: number;
18
+ }
19
+ export interface MLDSASignature {
20
+ readonly signature: string;
21
+ readonly publicKey: string;
22
+ readonly securityLevel: MLDSASecurityLevel;
23
+ readonly messageHash: string;
24
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -3,23 +3,11 @@ import { Network, P2TRPayment, Psbt, PsbtInput, PsbtInputExtended, Signer, Trans
3
3
  import { ECPairInterface } from 'ecpair';
4
4
  import { UTXO } from '../../utxo/interfaces/IUTXO.js';
5
5
  import { TapLeafScript } from '../interfaces/Tap.js';
6
- import { ChainId } from '../../network/ChainId.js';
7
6
  import { UnisatSigner } from '../browser/extensions/UnisatSigner.js';
8
7
  import { Buffer } from 'buffer';
9
8
  import { QuantumBIP32Interface } from '@btc-vision/bip32';
10
- import { AddressRotationConfig, RotationSigner, SignerMap } from '../../signer/AddressRotation.js';
11
- export type SupportedTransactionVersion = 1 | 2 | 3;
12
- export interface ITweakedTransactionData {
13
- readonly mldsaSigner: QuantumBIP32Interface | null;
14
- readonly signer: Signer | ECPairInterface | UnisatSigner;
15
- readonly network: Network;
16
- readonly chainId?: ChainId;
17
- readonly nonWitnessUtxo?: Buffer;
18
- readonly noSignatures?: boolean;
19
- readonly unlockScript?: Buffer[];
20
- readonly txVersion?: SupportedTransactionVersion;
21
- readonly addressRotation?: AddressRotationConfig;
22
- }
9
+ import { RotationSigner, SignerMap } from '../../signer/AddressRotation.js';
10
+ import { ITweakedTransactionData, SupportedTransactionVersion } from '../interfaces/ITweakedTransactionData.js';
23
11
  export declare enum TransactionSequence {
24
12
  REPLACE_BY_FEE = 4294967293,
25
13
  FINAL = 4294967295
@@ -2,7 +2,7 @@ import { Logger } from '@btc-vision/logger';
2
2
  import { address as bitAddress, crypto as bitCrypto, getFinalScripts, isP2A, isP2MS, isP2PK, isP2PKH, isP2SHScript, isP2TR, isP2WPKH, isP2WSHScript, isUnknownSegwitVersion, opcodes, payments, PaymentType, script, toXOnly, varuint, } from '@btc-vision/bitcoin';
3
3
  import { TweakedSigner } from '../../signer/TweakedSigner.js';
4
4
  import { canSignNonTaprootInput, isTaprootInput, pubkeyInScript, } from '../../signer/SignerUtils.js';
5
- import { TransactionBuilder } from '../builders/TransactionBuilder.js';
5
+ import { witnessStackToScriptWitness } from '../utils/WitnessUtils.js';
6
6
  import { Buffer } from 'buffer';
7
7
  import { P2WDADetector } from '../../p2wda/P2WDADetector.js';
8
8
  import { MessageSigner } from '../../keypair/MessageSigner.js';
@@ -69,7 +69,7 @@ export class TweakedTransaction extends Logger {
69
69
  const witnessStack = [input.partialSig[0].signature, input.witnessScript];
70
70
  return {
71
71
  finalScriptSig: undefined,
72
- finalScriptWitness: TransactionBuilder.witnessStackToScriptWitness(witnessStack),
72
+ finalScriptWitness: witnessStackToScriptWitness(witnessStack),
73
73
  };
74
74
  }
75
75
  }
@@ -609,7 +609,7 @@ export class TweakedTransaction extends Logger {
609
609
  const witnessStack = P2WDADetector.createSimpleP2WDAWitness(input.partialSig[0].signature, input.witnessScript);
610
610
  return {
611
611
  finalScriptSig: undefined,
612
- finalScriptWitness: TransactionBuilder.witnessStackToScriptWitness(witnessStack),
612
+ finalScriptWitness: witnessStackToScriptWitness(witnessStack),
613
613
  };
614
614
  }
615
615
  async signInputsWalletBased(transaction) {
@@ -0,0 +1 @@
1
+ export declare function witnessStackToScriptWitness(witness: Buffer[]): Buffer;
@@ -0,0 +1,23 @@
1
+ import { varuint } from '@btc-vision/bitcoin';
2
+ export function witnessStackToScriptWitness(witness) {
3
+ let buffer = Buffer.allocUnsafe(0);
4
+ function writeSlice(slice) {
5
+ buffer = Buffer.concat([buffer, Buffer.from(slice)]);
6
+ }
7
+ function writeVarInt(i) {
8
+ const currentLen = buffer.length;
9
+ const varintLen = varuint.encodingLength(i);
10
+ buffer = Buffer.concat([buffer, Buffer.allocUnsafe(varintLen)]);
11
+ varuint.encode(i, buffer, currentLen);
12
+ }
13
+ function writeVarSlice(slice) {
14
+ writeVarInt(slice.length);
15
+ writeSlice(slice);
16
+ }
17
+ function writeVector(vector) {
18
+ writeVarInt(vector.length);
19
+ vector.forEach(writeVarSlice);
20
+ }
21
+ writeVector(witness);
22
+ return buffer;
23
+ }