@btc-vision/transaction 1.0.113 → 1.0.114

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 (134) hide show
  1. package/browser/_version.d.ts +1 -1
  2. package/browser/abi/ABICoder.d.ts +31 -0
  3. package/browser/buffer/BinaryReader.d.ts +37 -0
  4. package/browser/buffer/BinaryWriter.d.ts +46 -0
  5. package/browser/deterministic/AddressMap.d.ts +10 -0
  6. package/browser/deterministic/AddressSet.d.ts +13 -0
  7. package/browser/deterministic/DeterministicMap.d.ts +17 -0
  8. package/browser/deterministic/DeterministicSet.d.ts +13 -0
  9. package/browser/deterministic/Map.d.ts +14 -0
  10. package/browser/event/NetEvent.d.ts +5 -0
  11. package/browser/generators/AddressGenerator.d.ts +3 -0
  12. package/browser/index.js +1 -1
  13. package/browser/keypair/Address.d.ts +23 -0
  14. package/browser/keypair/AddressVerificator.d.ts +1 -2
  15. package/browser/keypair/EcKeyPair.d.ts +9 -9
  16. package/browser/keypair/Wallet.d.ts +11 -5
  17. package/browser/metadata/ContractBaseMetadata.d.ts +3 -4
  18. package/browser/metadata/contracts/wBTC.d.ts +2 -3
  19. package/browser/metadata/tokens.d.ts +1 -1
  20. package/browser/opnet.d.ts +11 -0
  21. package/browser/transaction/TransactionFactory.d.ts +6 -6
  22. package/browser/transaction/browser/BrowserSignerBase.d.ts +3 -4
  23. package/browser/transaction/browser/extensions/UnisatSigner.d.ts +3 -4
  24. package/browser/transaction/browser/types/Unisat.d.ts +2 -3
  25. package/browser/transaction/builders/CustomScriptTransaction.d.ts +4 -5
  26. package/browser/transaction/builders/DeploymentTransaction.d.ts +4 -2
  27. package/browser/transaction/builders/MultiSignTransaction.d.ts +4 -5
  28. package/browser/transaction/builders/TransactionBuilder.d.ts +5 -6
  29. package/browser/transaction/builders/WrapTransaction.d.ts +2 -2
  30. package/browser/transaction/interfaces/ITransactionParameters.d.ts +6 -6
  31. package/browser/transaction/processor/PsbtTransaction.d.ts +3 -4
  32. package/browser/transaction/shared/P2TR_MS.d.ts +1 -2
  33. package/browser/utils/BufferHelper.d.ts +11 -0
  34. package/browser/utils/types.d.ts +12 -0
  35. package/browser/utxo/OPNetLimitedProvider.d.ts +1 -2
  36. package/build/_version.d.ts +1 -1
  37. package/build/_version.js +1 -1
  38. package/build/abi/ABICoder.d.ts +31 -0
  39. package/build/abi/ABICoder.js +137 -0
  40. package/build/buffer/BinaryReader.d.ts +37 -0
  41. package/build/buffer/BinaryReader.js +192 -0
  42. package/build/buffer/BinaryWriter.d.ts +46 -0
  43. package/build/buffer/BinaryWriter.js +258 -0
  44. package/build/deterministic/AddressMap.d.ts +10 -0
  45. package/build/deterministic/AddressMap.js +46 -0
  46. package/build/deterministic/AddressSet.d.ts +13 -0
  47. package/build/deterministic/AddressSet.js +44 -0
  48. package/build/deterministic/DeterministicMap.d.ts +17 -0
  49. package/build/deterministic/DeterministicMap.js +83 -0
  50. package/build/deterministic/DeterministicSet.d.ts +13 -0
  51. package/build/deterministic/DeterministicSet.js +46 -0
  52. package/build/deterministic/Map.d.ts +14 -0
  53. package/build/deterministic/Map.js +56 -0
  54. package/build/event/NetEvent.d.ts +5 -0
  55. package/build/event/NetEvent.js +6 -0
  56. package/build/generators/AddressGenerator.d.ts +3 -0
  57. package/build/generators/AddressGenerator.js +8 -1
  58. package/build/keypair/Address.d.ts +23 -0
  59. package/build/keypair/Address.js +129 -0
  60. package/build/keypair/AddressVerificator.d.ts +1 -2
  61. package/build/keypair/AddressVerificator.js +7 -2
  62. package/build/keypair/EcKeyPair.d.ts +9 -9
  63. package/build/keypair/EcKeyPair.js +9 -2
  64. package/build/keypair/Wallet.d.ts +11 -5
  65. package/build/keypair/Wallet.js +14 -1
  66. package/build/metadata/ContractBaseMetadata.d.ts +3 -4
  67. package/build/metadata/contracts/wBTC.d.ts +2 -3
  68. package/build/metadata/contracts/wBTC.js +4 -6
  69. package/build/metadata/tokens.d.ts +1 -1
  70. package/build/metadata/tokens.js +19 -15
  71. package/build/opnet.d.ts +11 -0
  72. package/build/opnet.js +11 -0
  73. package/build/transaction/TransactionFactory.d.ts +6 -6
  74. package/build/transaction/TransactionFactory.js +3 -2
  75. package/build/transaction/browser/BrowserSignerBase.d.ts +3 -4
  76. package/build/transaction/browser/extensions/UnisatSigner.d.ts +3 -4
  77. package/build/transaction/browser/types/Unisat.d.ts +2 -3
  78. package/build/transaction/builders/CustomScriptTransaction.d.ts +4 -5
  79. package/build/transaction/builders/DeploymentTransaction.d.ts +4 -2
  80. package/build/transaction/builders/DeploymentTransaction.js +6 -2
  81. package/build/transaction/builders/MultiSignTransaction.d.ts +4 -5
  82. package/build/transaction/builders/TransactionBuilder.d.ts +5 -6
  83. package/build/transaction/builders/UnwrapSegwitTransaction.js +2 -1
  84. package/build/transaction/builders/UnwrapTransaction.js +2 -1
  85. package/build/transaction/builders/WrapTransaction.d.ts +2 -2
  86. package/build/transaction/builders/WrapTransaction.js +5 -6
  87. package/build/transaction/interfaces/ITransactionParameters.d.ts +6 -6
  88. package/build/transaction/processor/PsbtTransaction.d.ts +3 -4
  89. package/build/transaction/shared/P2TR_MS.d.ts +1 -2
  90. package/build/utils/BufferHelper.d.ts +11 -0
  91. package/build/utils/BufferHelper.js +50 -0
  92. package/build/utils/types.d.ts +12 -0
  93. package/build/utils/types.js +1 -0
  94. package/build/utxo/OPNetLimitedProvider.d.ts +1 -2
  95. package/build/utxo/OPNetLimitedProvider.js +1 -1
  96. package/build/verification/TapscriptVerificator.js +3 -2
  97. package/package.json +3 -2
  98. package/src/_version.ts +1 -1
  99. package/src/abi/ABICoder.ts +158 -0
  100. package/src/buffer/BinaryReader.ts +260 -0
  101. package/src/buffer/BinaryWriter.ts +331 -0
  102. package/src/deterministic/AddressMap.ts +57 -0
  103. package/src/deterministic/AddressSet.ts +62 -0
  104. package/src/deterministic/DeterministicMap.ts +88 -0
  105. package/src/deterministic/DeterministicSet.ts +56 -0
  106. package/src/deterministic/Map.ts +66 -0
  107. package/src/event/NetEvent.ts +6 -0
  108. package/src/generators/AddressGenerator.ts +15 -1
  109. package/src/keypair/Address.ts +235 -0
  110. package/src/keypair/AddressVerificator.ts +9 -5
  111. package/src/keypair/EcKeyPair.ts +39 -37
  112. package/src/keypair/Wallet.ts +61 -12
  113. package/src/metadata/ContractBaseMetadata.ts +3 -4
  114. package/src/metadata/contracts/wBTC.ts +8 -9
  115. package/src/metadata/tokens.ts +21 -16
  116. package/src/opnet.ts +13 -0
  117. package/src/transaction/TransactionFactory.ts +11 -10
  118. package/src/transaction/browser/BrowserSignerBase.ts +3 -4
  119. package/src/transaction/browser/extensions/UnisatSigner.ts +6 -7
  120. package/src/transaction/browser/types/Unisat.ts +2 -3
  121. package/src/transaction/builders/CustomScriptTransaction.ts +4 -5
  122. package/src/transaction/builders/DeploymentTransaction.ts +17 -4
  123. package/src/transaction/builders/MultiSignTransaction.ts +4 -5
  124. package/src/transaction/builders/TransactionBuilder.ts +8 -9
  125. package/src/transaction/builders/UnwrapSegwitTransaction.ts +3 -1
  126. package/src/transaction/builders/UnwrapTransaction.ts +3 -17
  127. package/src/transaction/builders/WrapTransaction.ts +7 -8
  128. package/src/transaction/interfaces/ITransactionParameters.ts +7 -6
  129. package/src/transaction/processor/PsbtTransaction.ts +3 -4
  130. package/src/transaction/shared/P2TR_MS.ts +2 -3
  131. package/src/utils/BufferHelper.ts +71 -0
  132. package/src/utils/types.ts +19 -0
  133. package/src/utxo/OPNetLimitedProvider.ts +3 -8
  134. package/src/verification/TapscriptVerificator.ts +4 -2
@@ -1,6 +1,7 @@
1
1
  import { EcKeyPair } from './EcKeyPair.js';
2
2
  import { networks } from 'bitcoinjs-lib';
3
3
  import { toXOnly } from 'bitcoinjs-lib/src/psbt/bip371.js';
4
+ import { Address } from './Address.js';
4
5
  export class Wallet {
5
6
  constructor(wallet, network = networks.bitcoin) {
6
7
  this.network = network;
@@ -8,7 +9,16 @@ export class Wallet {
8
9
  this._p2wpkh = EcKeyPair.getP2WPKHAddress(this._keypair, this.network);
9
10
  this._p2tr = EcKeyPair.getTaprootAddress(this._keypair, this.network);
10
11
  this._legacy = EcKeyPair.getLegacyAddress(this._keypair, this.network);
12
+ this._segwitLegacy = EcKeyPair.getLegacySegwitAddress(this._keypair, this.network);
13
+ this._tweakedKey = Buffer.from(EcKeyPair.tweakPublicKey(this._keypair.publicKey.toString('hex')), 'hex');
11
14
  this._bufferPubKey = Buffer.from(wallet.publicKey, 'hex');
15
+ this._address = new Address(this._keypair.publicKey);
16
+ }
17
+ get address() {
18
+ return this._address;
19
+ }
20
+ get tweakedPubKeyKey() {
21
+ return this._tweakedKey;
12
22
  }
13
23
  get keypair() {
14
24
  if (!this._keypair)
@@ -25,7 +35,10 @@ export class Wallet {
25
35
  return this._legacy;
26
36
  }
27
37
  get addresses() {
28
- return [this.p2wpkh, this.p2tr, this.legacy];
38
+ return [this.p2wpkh, this.p2tr, this.legacy, this.segwitLegacy];
39
+ }
40
+ get segwitLegacy() {
41
+ return this._segwitLegacy;
29
42
  }
30
43
  get publicKey() {
31
44
  if (!this._bufferPubKey)
@@ -1,9 +1,8 @@
1
- import { Address } from '@btc-vision/bsi-binary';
2
1
  import { Network } from 'bitcoinjs-lib';
3
2
  export declare abstract class ContractBaseMetadata {
4
3
  protected network: Network;
5
- protected abstract readonly address: Address;
4
+ protected abstract readonly address: string;
6
5
  protected constructor(network?: Network);
7
- static getAddress(network?: Network): Address;
8
- getAddress(): Address;
6
+ static getAddress(network?: Network): string;
7
+ getAddress(): string;
9
8
  }
@@ -1,4 +1,3 @@
1
- import { Address } from '@btc-vision/bsi-binary';
2
1
  import { Network } from 'bitcoinjs-lib';
3
2
  import { ChainId } from '../../network/ChainId.js';
4
3
  import { ContractBaseMetadata } from '../ContractBaseMetadata.js';
@@ -7,8 +6,8 @@ export declare class wBTC extends ContractBaseMetadata {
7
6
  readonly tokenName: string;
8
7
  readonly tokenSymbol: string;
9
8
  readonly decimals: number;
10
- protected readonly address: Address;
9
+ protected readonly address: string;
11
10
  constructor(network?: Network, chainId?: ChainId);
12
- static getAddress(network?: Network, chainId?: ChainId): Address;
11
+ static getAddress(network?: Network, chainId?: ChainId): string;
13
12
  private static getWBTCAddressForChain;
14
13
  }
@@ -14,23 +14,21 @@ export class wBTC extends ContractBaseMetadata {
14
14
  static getAddress(network = networks.bitcoin, chainId) {
15
15
  switch (network.bech32) {
16
16
  case networks.bitcoin.bech32:
17
- return this.getWBTCAddressForChain(chainId ?? ChainId.Bitcoin);
17
+ return this.getWBTCAddressForChain(chainId ?? ChainId.Bitcoin).p2tr(network);
18
18
  case networks.regtest.bech32:
19
- return WBTC_ADDRESS_REGTEST;
19
+ return WBTC_ADDRESS_REGTEST.p2tr(network);
20
20
  case networks.testnet.bech32:
21
- return WBTC_ADDRESS_TESTNET;
21
+ return WBTC_ADDRESS_TESTNET.p2tr(network);
22
22
  default:
23
23
  throw new Error(`Invalid network: ${network.bech32}`);
24
24
  }
25
25
  }
26
26
  static getWBTCAddressForChain(chainId) {
27
27
  switch (chainId) {
28
- case ChainId.Bitcoin:
29
- return 'unknown';
30
28
  case ChainId.Fractal:
31
29
  return WBTC_ADDRESS_FRACTAL;
32
30
  default:
33
- throw new Error(`Invalid chainId: ${chainId}`);
31
+ throw new Error(`Unsupported chainId: ${chainId}`);
34
32
  }
35
33
  }
36
34
  }
@@ -1,5 +1,5 @@
1
- import { Address } from '@btc-vision/bsi-binary';
2
1
  import { ChainId } from '../network/ChainId.js';
2
+ import { Address } from '../keypair/Address.js';
3
3
  export declare const FACTORY_ADDRESS_REGTEST: Address;
4
4
  export declare const POOL_ADDRESS_REGTEST: Address;
5
5
  export declare const WBTC_ADDRESS_REGTEST: Address;
@@ -1,19 +1,23 @@
1
1
  import { ChainId } from '../network/ChainId.js';
2
- export const FACTORY_ADDRESS_REGTEST = 'bcrt1q9pf9fnpch9z2qrp5e3dgr2avzu3mypq3km2k40';
3
- export const POOL_ADDRESS_REGTEST = 'bcrt1qg87nx9v9ln3qyadcn0llekzjn0hx8js46ztwky';
4
- export const WBTC_ADDRESS_REGTEST = 'bcrt1qamv2ejattjgsc6k3yf3zqrp0wpuyedqgjmwx0v';
5
- export const MOTO_ADDRESS_REGTEST = 'bcrt1qw8w4ejas2k22y54avv7hgrslg3cd0hme58h28r';
6
- export const ROUTER_ADDRESS_REGTEST = 'bcrt1q9yd6mk324k0q4krmlxjky0pk65ul6hkf4u35e6';
7
- export const FACTORY_ADDRESS_TESTNET = 'tb1qgev5kldhp5zvg6j8t9vl6x4phkrwn8nk9felxh';
8
- export const POOL_ADDRESS_TESTNET = 'tb1q6a7yw353hjmresphupytw5vczpqxtg4yrupayk';
9
- export const WBTC_ADDRESS_TESTNET = 'tb1qp28xna6pv47x6wflcplhu0a9hkld5shtvjx6xv';
10
- export const MOTO_ADDRESS_TESTNET = 'tb1q4tyhf8hpu04qjj3qaag20knun0spctultxzakw';
11
- export const ROUTER_ADDRESS_TESTNET = 'tb1qnh9mj95nnej25dwhjvvsppwmdm0myhxv7tllgt';
12
- export const FACTORY_ADDRESS_FRACTAL = 'bc1qr4g85824m58wu0zffjtnf56n425fp0e8azhc7q';
13
- export const POOL_ADDRESS_FRACTAL = 'bc1qv55cht4zzlt29ea7vdgwsedsn63a2sxtkgpv6h';
14
- export const WBTC_ADDRESS_FRACTAL = 'bc1qdtzlucslvrvu4useyh9r69supqrw3w4xn9t4yv';
15
- export const MOTO_ADDRESS_FRACTAL = 'bc1qfzq6w5uvgg5489egv0lj4shlqx4dagqt0ewdnu';
16
- export const ROUTER_ADDRESS_FRACTAL = 'bc1q9w2zvmkzlezt2fu34u57y9vuw6rll5sp2090kn';
2
+ import { Address } from '../keypair/Address.js';
3
+ function deadAddress() {
4
+ return Address.dead();
5
+ }
6
+ export const FACTORY_ADDRESS_REGTEST = deadAddress();
7
+ export const POOL_ADDRESS_REGTEST = deadAddress();
8
+ export const WBTC_ADDRESS_REGTEST = deadAddress();
9
+ export const MOTO_ADDRESS_REGTEST = deadAddress();
10
+ export const ROUTER_ADDRESS_REGTEST = deadAddress();
11
+ export const FACTORY_ADDRESS_TESTNET = deadAddress();
12
+ export const POOL_ADDRESS_TESTNET = deadAddress();
13
+ export const WBTC_ADDRESS_TESTNET = deadAddress();
14
+ export const MOTO_ADDRESS_TESTNET = deadAddress();
15
+ export const ROUTER_ADDRESS_TESTNET = deadAddress();
16
+ export const FACTORY_ADDRESS_FRACTAL = deadAddress();
17
+ export const POOL_ADDRESS_FRACTAL = deadAddress();
18
+ export const WBTC_ADDRESS_FRACTAL = deadAddress();
19
+ export const MOTO_ADDRESS_FRACTAL = deadAddress();
20
+ export const ROUTER_ADDRESS_FRACTAL = deadAddress();
17
21
  export var OPNetNetwork;
18
22
  (function (OPNetNetwork) {
19
23
  OPNetNetwork["Mainnet"] = "mainnet";
package/build/opnet.d.ts CHANGED
@@ -43,6 +43,17 @@ export * from './wbtc/UnwrapGeneration.js';
43
43
  export * from './consensus/ConsensusConfig.js';
44
44
  export * from './consensus/Consensus.js';
45
45
  export * from './consensus/metadata/RoswellConsensus.js';
46
+ export * from './utils/BufferHelper.js';
47
+ export * from './utils/types.js';
48
+ export * from './keypair/Address.js';
49
+ export * from './event/NetEvent.js';
50
+ export * from './deterministic/DeterministicMap.js';
51
+ export * from './deterministic/DeterministicSet.js';
52
+ export * from './deterministic/AddressMap.js';
53
+ export * from './deterministic/AddressSet.js';
54
+ export * from './abi/ABICoder.js';
55
+ export * from './buffer/BinaryWriter.js';
56
+ export * from './buffer/BinaryReader.js';
46
57
  export * from './transaction/browser/BrowserSignerBase.js';
47
58
  export * from './transaction/browser/extensions/UnisatSigner.js';
48
59
  export * from './transaction/browser/types/Unisat.js';
package/build/opnet.js CHANGED
@@ -43,6 +43,17 @@ export * from './wbtc/UnwrapGeneration.js';
43
43
  export * from './consensus/ConsensusConfig.js';
44
44
  export * from './consensus/Consensus.js';
45
45
  export * from './consensus/metadata/RoswellConsensus.js';
46
+ export * from './utils/BufferHelper.js';
47
+ export * from './utils/types.js';
48
+ export * from './keypair/Address.js';
49
+ export * from './event/NetEvent.js';
50
+ export * from './deterministic/DeterministicMap.js';
51
+ export * from './deterministic/DeterministicSet.js';
52
+ export * from './deterministic/AddressMap.js';
53
+ export * from './deterministic/AddressSet.js';
54
+ export * from './abi/ABICoder.js';
55
+ export * from './buffer/BinaryWriter.js';
56
+ export * from './buffer/BinaryReader.js';
46
57
  export * from './transaction/browser/BrowserSignerBase.js';
47
58
  export * from './transaction/browser/extensions/UnisatSigner.js';
48
59
  export * from './transaction/browser/types/Unisat.js';
@@ -1,4 +1,3 @@
1
- import { Address } from '@btc-vision/bsi-binary';
2
1
  import { Transaction } from 'bitcoinjs-lib';
3
2
  import { UTXO } from '../utxo/interfaces/IUTXO.js';
4
3
  import { ICustomTransactionParameters } from './builders/CustomScriptTransaction.js';
@@ -8,15 +7,16 @@ import { TransactionType } from './enums/TransactionType.js';
8
7
  import { IDeploymentParameters, IFundingTransactionParameters, IInteractionParameters, IUnwrapParameters, IWrapParameters } from './interfaces/ITransactionParameters.js';
9
8
  export interface DeploymentResult {
10
9
  readonly transaction: [string, string];
11
- readonly contractAddress: Address;
12
- readonly p2trAddress: Address;
10
+ readonly contractAddress: string;
11
+ readonly contractPubKey: string;
12
+ readonly p2trAddress: string;
13
13
  readonly utxos: UTXO[];
14
14
  }
15
15
  export interface WrapResult {
16
16
  readonly transaction: [string, string];
17
- readonly vaultAddress: Address;
17
+ readonly vaultAddress: string;
18
18
  readonly amount: bigint;
19
- readonly receiverAddress: Address;
19
+ readonly receiverAddress: string;
20
20
  readonly utxos: UTXO[];
21
21
  }
22
22
  export interface FundingTransactionResponse {
@@ -45,7 +45,7 @@ export declare class TransactionFactory {
45
45
  unwrapSegwit(unwrapParameters: IUnwrapParameters): Promise<UnwrapResult>;
46
46
  unwrap(unwrapParameters: IUnwrapParameters): Promise<UnwrapResult>;
47
47
  createBTCTransfer(parameters: IFundingTransactionParameters): Promise<BitcoinTransferResponse>;
48
- getAllNewUTXOs(original: TransactionBuilder<TransactionType>, tx: Transaction, to: Address): UTXO[];
48
+ getAllNewUTXOs(original: TransactionBuilder<TransactionType>, tx: Transaction, to: string): UTXO[];
49
49
  private createFundTransaction;
50
50
  private calculateNumSignatures;
51
51
  private calculateNumInputs;
@@ -137,7 +137,8 @@ export class TransactionFactory {
137
137
  };
138
138
  return {
139
139
  transaction: [signedTransaction.toHex(), outTx.toHex()],
140
- contractAddress: finalTransaction.contractAddress,
140
+ contractAddress: finalTransaction.contractAddress.p2tr(deploymentParameters.network),
141
+ contractPubKey: finalTransaction.contractPubKey,
141
142
  p2trAddress: finalTransaction.p2trAddress,
142
143
  utxos: [refundUTXO],
143
144
  };
@@ -179,7 +180,7 @@ export class TransactionFactory {
179
180
  transaction: [signedTransaction.tx.toHex(), outTx.toHex()],
180
181
  vaultAddress: finalTransaction.vault,
181
182
  amount: finalTransaction.amount,
182
- receiverAddress: finalTransaction.receiver,
183
+ receiverAddress: finalTransaction.receiver.p2tr(wrapParameters.network),
183
184
  utxos: this.getUTXOAsTransaction(signedTransaction.tx, wrapParameters.from, 1),
184
185
  };
185
186
  }
@@ -1,11 +1,10 @@
1
1
  import { Network, Psbt, Signer } from 'bitcoinjs-lib';
2
- import { Address } from '@btc-vision/bsi-binary';
3
2
  export declare abstract class CustomKeypair implements Signer {
4
3
  abstract network: Network;
5
4
  abstract publicKey: Buffer;
6
- abstract addresses: Address[];
7
- abstract p2tr: Address;
8
- abstract p2wpkh: Address;
5
+ abstract addresses: string[];
6
+ abstract p2tr: string;
7
+ abstract p2wpkh: string;
9
8
  protected constructor();
10
9
  abstract signTaprootInput(transaction: Psbt, i: number, sighashTypes: number[]): Promise<void>;
11
10
  abstract signInput(transaction: Psbt, i: number, sighashTypes: number[]): Promise<void>;
@@ -1,4 +1,3 @@
1
- import { Address } from '@btc-vision/bsi-binary';
2
1
  import { Network, Psbt } from 'bitcoinjs-lib';
3
2
  import { CustomKeypair } from '../BrowserSignerBase.js';
4
3
  import { Unisat } from '../types/Unisat.js';
@@ -12,11 +11,11 @@ export declare class UnisatSigner extends CustomKeypair {
12
11
  private isInitialized;
13
12
  constructor();
14
13
  private _p2tr;
15
- get p2tr(): Address;
14
+ get p2tr(): string;
16
15
  private _p2wpkh;
17
- get p2wpkh(): Address;
16
+ get p2wpkh(): string;
18
17
  private _addresses;
19
- get addresses(): Address[];
18
+ get addresses(): string[];
20
19
  private _publicKey;
21
20
  get publicKey(): Buffer;
22
21
  _network: Network | undefined;
@@ -1,4 +1,3 @@
1
- import { Address } from '@btc-vision/bsi-binary';
2
1
  import { Web3Provider } from '../Web3Provider.js';
3
2
  export declare enum UnisatNetwork {
4
3
  testnet = "testnet",
@@ -37,7 +36,7 @@ export interface ToSignInputPublicKey extends ToSignInputBase {
37
36
  readonly publicKey: string;
38
37
  }
39
38
  export interface ToSignInputAddress extends ToSignInputBase {
40
- readonly address: Address;
39
+ readonly address: string;
41
40
  }
42
41
  export type ToSignInput = ToSignInputPublicKey | ToSignInputAddress;
43
42
  export interface PsbtSignatureOptions {
@@ -46,7 +45,7 @@ export interface PsbtSignatureOptions {
46
45
  }
47
46
  export interface Unisat {
48
47
  web3?: Web3Provider;
49
- sendBitcoin(toAddress: Address, satoshis: number, options: {
48
+ sendBitcoin(toAddress: string, satoshis: number, options: {
50
49
  feeRate: number;
51
50
  memo?: string;
52
51
  memos?: string[];
@@ -1,17 +1,16 @@
1
1
  import { TransactionType } from '../enums/TransactionType.js';
2
2
  import { TapLeafScript } from '../interfaces/Tap.js';
3
3
  import { SharedInteractionParameters } from '../interfaces/ITransactionParameters.js';
4
- import { Address } from '@btc-vision/bsi-binary';
5
4
  import { Payment, Psbt, Stack } from 'bitcoinjs-lib';
6
5
  import { TransactionBuilder } from './TransactionBuilder.js';
7
6
  export interface ICustomTransactionParameters extends SharedInteractionParameters {
8
7
  readonly script: (Buffer | Stack)[];
9
8
  readonly witnesses: Buffer[];
10
- readonly to: Address;
9
+ readonly to: string;
11
10
  }
12
11
  export declare class CustomScriptTransaction extends TransactionBuilder<TransactionType.CUSTOM_CODE> {
13
12
  type: TransactionType.CUSTOM_CODE;
14
- protected readonly _scriptAddress: Address;
13
+ protected readonly _scriptAddress: string;
15
14
  protected tapLeafScript: TapLeafScript | null;
16
15
  private targetScriptRedeem;
17
16
  private leftOverFundsScriptRedeem;
@@ -23,8 +22,8 @@ export declare class CustomScriptTransaction extends TransactionBuilder<Transact
23
22
  private readonly randomBytes;
24
23
  private readonly witnesses;
25
24
  constructor(parameters: ICustomTransactionParameters);
26
- get scriptAddress(): Address;
27
- get p2trAddress(): Address;
25
+ get scriptAddress(): string;
26
+ get p2trAddress(): string;
28
27
  getRndBytes(): Buffer;
29
28
  protected contractSignerXOnlyPubKey(): Buffer;
30
29
  protected buildTransaction(): Promise<void>;
@@ -3,7 +3,7 @@ import { IDeploymentParameters } from '../interfaces/ITransactionParameters.js';
3
3
  import { Payment, Psbt } from 'bitcoinjs-lib';
4
4
  import { TransactionBuilder } from './TransactionBuilder.js';
5
5
  import { TapLeafScript } from '../interfaces/Tap.js';
6
- import { Address } from '@btc-vision/bsi-binary';
6
+ import { Address } from '../../keypair/Address.js';
7
7
  export declare class DeploymentTransaction extends TransactionBuilder<TransactionType.DEPLOYMENT> {
8
8
  static readonly MAXIMUM_CONTRACT_SIZE: number;
9
9
  type: TransactionType.DEPLOYMENT;
@@ -18,10 +18,12 @@ export declare class DeploymentTransaction extends TransactionBuilder<Transactio
18
18
  private readonly bytecode;
19
19
  private readonly calldata?;
20
20
  private readonly contractSigner;
21
+ private readonly _contractPubKey;
21
22
  private readonly randomBytes;
22
23
  constructor(parameters: IDeploymentParameters);
24
+ get contractPubKey(): string;
23
25
  get contractAddress(): Address;
24
- get p2trAddress(): Address;
26
+ get p2trAddress(): string;
25
27
  getRndBytes(): Buffer;
26
28
  protected contractSignerXOnlyPubKey(): Buffer;
27
29
  protected buildTransaction(): Promise<void>;
@@ -6,8 +6,8 @@ import { toXOnly } from 'bitcoinjs-lib/src/psbt/bip371.js';
6
6
  import { EcKeyPair } from '../../keypair/EcKeyPair.js';
7
7
  import { BitcoinUtils } from '../../utils/BitcoinUtils.js';
8
8
  import { Compressor } from '../../bytecode/Compressor.js';
9
- import { AddressGenerator } from '../../generators/AddressGenerator.js';
10
9
  import { SharedInteractionTransaction } from './SharedInteractionTransaction.js';
10
+ import { Address } from '../../keypair/Address.js';
11
11
  export class DeploymentTransaction extends TransactionBuilder {
12
12
  constructor(parameters) {
13
13
  super(parameters);
@@ -48,7 +48,11 @@ export class DeploymentTransaction extends TransactionBuilder {
48
48
  this.compiledTargetScript = this.deploymentGenerator.compile(this.bytecode, this.randomBytes, this.calldata);
49
49
  this.scriptTree = this.getScriptTree();
50
50
  this.internalInit();
51
- this._contractAddress = AddressGenerator.generatePKSH(this.contractSeed, this.network);
51
+ this._contractPubKey = '0x' + this.contractSigner.publicKey.toString('hex');
52
+ this._contractAddress = new Address(this.contractSigner.publicKey);
53
+ }
54
+ get contractPubKey() {
55
+ return this._contractPubKey;
52
56
  }
53
57
  get contractAddress() {
54
58
  return this._contractAddress;
@@ -4,7 +4,6 @@ import { Taptree } from 'bitcoinjs-lib/src/types.js';
4
4
  import { TransactionBuilder } from './TransactionBuilder.js';
5
5
  import { TransactionType } from '../enums/TransactionType.js';
6
6
  import { ITransactionParameters } from '../interfaces/ITransactionParameters.js';
7
- import { Address } from '@btc-vision/bsi-binary';
8
7
  import { ECPairInterface } from 'ecpair';
9
8
  export interface MultiSignParameters extends Omit<ITransactionParameters, 'priorityFee' | 'signer'> {
10
9
  readonly pubkeys: Buffer[];
@@ -12,9 +11,9 @@ export interface MultiSignParameters extends Omit<ITransactionParameters, 'prior
12
11
  readonly from?: undefined;
13
12
  readonly to?: undefined;
14
13
  readonly psbt?: Psbt;
15
- readonly receiver: Address;
14
+ readonly receiver: string;
16
15
  readonly requestedAmount: bigint;
17
- readonly refundVault: Address;
16
+ readonly refundVault: string;
18
17
  }
19
18
  export interface MultiSignFromBase64Params extends Omit<MultiSignParameters, 'psbt'> {
20
19
  readonly psbt: string;
@@ -32,8 +31,8 @@ export declare class MultiSignTransaction extends TransactionBuilder<Transaction
32
31
  protected readonly minimumSignatures: number;
33
32
  protected readonly originalInputCount: number;
34
33
  protected readonly requestedAmount: bigint;
35
- protected readonly receiver: Address;
36
- protected readonly refundVault: Address;
34
+ protected readonly receiver: string;
35
+ protected readonly refundVault: string;
37
36
  protected readonly sighashTypes: number[];
38
37
  constructor(parameters: MultiSignParameters);
39
38
  static fromBase64(params: MultiSignFromBase64Params): MultiSignTransaction;
@@ -2,7 +2,6 @@ import { Network, Psbt, Signer, Transaction } from 'bitcoinjs-lib';
2
2
  import { PsbtInputExtended, PsbtOutputExtended, UpdateInput } from '../interfaces/Tap.js';
3
3
  import { TransactionType } from '../enums/TransactionType.js';
4
4
  import { IFundingTransactionParameters, ITransactionParameters } from '../interfaces/ITransactionParameters.js';
5
- import { Address } from '@btc-vision/bsi-binary';
6
5
  import { UTXO } from '../../utxo/interfaces/IUTXO.js';
7
6
  import { ECPairInterface } from 'ecpair';
8
7
  import { TweakedTransaction } from '../shared/TweakedTransaction.js';
@@ -25,15 +24,15 @@ export declare abstract class TransactionBuilder<T extends TransactionType> exte
25
24
  protected readonly feeRate: number;
26
25
  protected priorityFee: bigint;
27
26
  protected utxos: UTXO[];
28
- protected to: Address | undefined;
29
- protected from: Address;
27
+ protected to: string | undefined;
28
+ protected from: string;
30
29
  protected _maximumFeeRate: number;
31
30
  protected isPubKeyDestination: boolean;
32
31
  protected constructor(parameters: ITransactionParameters);
33
- static getFrom(from: string | undefined, keypair: ECPairInterface | Signer, network: Network): Address;
32
+ static getFrom(from: string | undefined, keypair: ECPairInterface | Signer, network: Network): string;
34
33
  static witnessStackToScriptWitness(witness: Buffer[]): Buffer;
35
34
  getFundingTransactionParameters(): Promise<IFundingTransactionParameters>;
36
- setDestinationAddress(address: Address): void;
35
+ setDestinationAddress(address: string): void;
37
36
  setMaximumFeeRate(feeRate: number): void;
38
37
  signTransaction(): Promise<Transaction>;
39
38
  generateTransactionMinimalSignatures(checkPartialSigs?: boolean): Promise<void>;
@@ -41,7 +40,7 @@ export declare abstract class TransactionBuilder<T extends TransactionType> exte
41
40
  addInput(input: PsbtInputExtended): void;
42
41
  addOutput(output: PsbtOutputExtended): void;
43
42
  toAddress(): string | undefined;
44
- address(): Address | undefined;
43
+ address(): string | undefined;
45
44
  estimateTransactionFees(): Promise<bigint>;
46
45
  rebuildFromBase64(base64: string): Promise<Psbt>;
47
46
  setPSBT(psbt: Psbt): void;
@@ -1,12 +1,13 @@
1
1
  import { TransactionType } from '../enums/TransactionType.js';
2
2
  import { SharedInteractionTransaction } from './SharedInteractionTransaction.js';
3
3
  import { TransactionBuilder } from './TransactionBuilder.js';
4
- import { ABICoder, BinaryWriter } from '@btc-vision/bsi-binary';
5
4
  import { wBTC } from '../../metadata/contracts/wBTC.js';
6
5
  import { payments } from 'bitcoinjs-lib';
7
6
  import { EcKeyPair } from '../../keypair/EcKeyPair.js';
8
7
  import { PsbtTransaction } from '../processor/PsbtTransaction.js';
9
8
  import { currentConsensusConfig } from '../../consensus/ConsensusConfig.js';
9
+ import { ABICoder } from '../../abi/ABICoder.js';
10
+ import { BinaryWriter } from '../../buffer/BinaryWriter.js';
10
11
  const abiCoder = new ABICoder();
11
12
  export class UnwrapSegwitTransaction extends SharedInteractionTransaction {
12
13
  constructor(parameters) {
@@ -1,7 +1,6 @@
1
1
  import { TransactionType } from '../enums/TransactionType.js';
2
2
  import { SharedInteractionTransaction } from './SharedInteractionTransaction.js';
3
3
  import { TransactionBuilder } from './TransactionBuilder.js';
4
- import { ABICoder, BinaryWriter } from '@btc-vision/bsi-binary';
5
4
  import { wBTC } from '../../metadata/contracts/wBTC.js';
6
5
  import { payments } from 'bitcoinjs-lib';
7
6
  import { EcKeyPair } from '../../keypair/EcKeyPair.js';
@@ -13,6 +12,8 @@ import { CalldataGenerator } from '../../generators/builders/CalldataGenerator.j
13
12
  import { currentConsensusConfig } from '../../consensus/ConsensusConfig.js';
14
13
  import { BitcoinUtils } from '../../utils/BitcoinUtils.js';
15
14
  import { Features } from '../../generators/Features.js';
15
+ import { ABICoder } from '../../abi/ABICoder.js';
16
+ import { BinaryWriter } from '../../buffer/BinaryWriter.js';
16
17
  const abiCoder = new ABICoder();
17
18
  const numsPoint = Buffer.from('50929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0', 'hex');
18
19
  export class UnwrapTransaction extends SharedInteractionTransaction {
@@ -3,12 +3,12 @@ import { TransactionType } from '../enums/TransactionType.js';
3
3
  import { TapLeafScript } from '../interfaces/Tap.js';
4
4
  import { IWrapParameters } from '../interfaces/ITransactionParameters.js';
5
5
  import { SharedInteractionTransaction } from './SharedInteractionTransaction.js';
6
- import { Address } from '@btc-vision/bsi-binary';
7
6
  import { WrappedGeneration } from '../../wbtc/WrappedGenerationParameters.js';
7
+ import { Address } from '../../keypair/Address.js';
8
8
  export declare class WrapTransaction extends SharedInteractionTransaction<TransactionType.WBTC_WRAP> {
9
9
  private static readonly WRAP_SELECTOR;
10
10
  type: TransactionType.WBTC_WRAP;
11
- readonly vault: Address;
11
+ readonly vault: string;
12
12
  readonly amount: bigint;
13
13
  readonly receiver: Address;
14
14
  protected readonly compiledTargetScript: Buffer;
@@ -1,20 +1,19 @@
1
1
  import { TransactionType } from '../enums/TransactionType.js';
2
2
  import { SharedInteractionTransaction } from './SharedInteractionTransaction.js';
3
3
  import { wBTC } from '../../metadata/contracts/wBTC.js';
4
- import { ABICoder, BinaryWriter } from '@btc-vision/bsi-binary';
5
- import { TransactionBuilder } from './TransactionBuilder.js';
6
4
  import { BitcoinUtils } from '../../utils/BitcoinUtils.js';
7
- import { AddressVerificator } from '../../keypair/AddressVerificator.js';
8
5
  import { P2TR_MS } from '../shared/P2TR_MS.js';
9
6
  import { currentConsensusConfig } from '../../consensus/ConsensusConfig.js';
7
+ import { ABICoder } from '../../abi/ABICoder.js';
8
+ import { BinaryWriter } from '../../buffer/BinaryWriter.js';
9
+ import { Address } from '../../keypair/Address.js';
10
10
  const abiCoder = new ABICoder();
11
11
  export class WrapTransaction extends SharedInteractionTransaction {
12
12
  constructor(parameters) {
13
13
  if (parameters.amount < currentConsensusConfig.VAULT_MINIMUM_AMOUNT) {
14
14
  throw new Error(`Amount is below the minimum required of ${currentConsensusConfig.VAULT_MINIMUM_AMOUNT} sat.`);
15
15
  }
16
- const receiver = parameters.receiver ||
17
- TransactionBuilder.getFrom(parameters.from, parameters.signer, parameters.network);
16
+ const receiver = parameters.receiver || new Address(parameters.signer.publicKey);
18
17
  parameters.calldata = WrapTransaction.generateMintCalldata(parameters.amount, receiver, parameters.network);
19
18
  super(parameters);
20
19
  this.type = TransactionType.WBTC_WRAP;
@@ -42,7 +41,7 @@ export class WrapTransaction extends SharedInteractionTransaction {
42
41
  throw new Error('Amount is required');
43
42
  if (!to)
44
43
  throw new Error('To address is required');
45
- if (!AddressVerificator.isValidP2TRAddress(to, network)) {
44
+ if (!to.isValid(network)) {
46
45
  throw new Error(`Oops! The address ${to} is not a valid P2TR address! If you wrap at this address, your funds will be lost!`);
47
46
  }
48
47
  const bufWriter = new BinaryWriter();
@@ -1,13 +1,13 @@
1
1
  import { UTXO } from '../../utxo/interfaces/IUTXO.js';
2
- import { Address } from '@btc-vision/bsi-binary';
3
2
  import { WrappedGeneration } from '../../wbtc/WrappedGenerationParameters.js';
4
3
  import { ITweakedTransactionData } from '../shared/TweakedTransaction.js';
5
4
  import { VaultUTXOs } from '../processor/PsbtTransaction.js';
6
5
  import { ChainId } from '../../network/ChainId.js';
7
6
  import { PsbtOutputExtended } from './Tap.js';
7
+ import { Address } from '../../keypair/Address.js';
8
8
  export interface ITransactionParameters extends ITweakedTransactionData {
9
- readonly from?: Address;
10
- readonly to?: Address;
9
+ readonly from?: string;
10
+ readonly to?: string;
11
11
  utxos: UTXO[];
12
12
  nonWitnessUtxo?: Buffer;
13
13
  estimatedFees?: bigint;
@@ -27,11 +27,11 @@ export interface SharedInteractionParameters extends ITransactionParameters {
27
27
  }
28
28
  export interface IInteractionParameters extends Omit<SharedInteractionParameters, 'optionalOutputs'> {
29
29
  readonly calldata: Buffer;
30
- readonly to: Address;
30
+ readonly to: string;
31
31
  }
32
32
  export interface IWrapParameters extends Omit<SharedInteractionParameters, 'optionalOutputs'> {
33
- readonly to?: Address;
34
- readonly from: Address;
33
+ readonly to?: string;
34
+ readonly from: string;
35
35
  readonly amount: bigint;
36
36
  readonly receiver?: Address;
37
37
  readonly generationParameters: WrappedGeneration;
@@ -1,4 +1,3 @@
1
- import { Address } from '@btc-vision/bsi-binary';
2
1
  import { Network, Psbt, Signer, Transaction } from 'bitcoinjs-lib';
3
2
  import { PsbtInputExtended, PsbtOutputExtended } from '../interfaces/Tap.js';
4
3
  import { ITweakedTransactionData, TweakedTransaction } from '../shared/TweakedTransaction.js';
@@ -8,7 +7,7 @@ export interface PsbtTransactionData extends ITweakedTransactionData {
8
7
  readonly network: Network;
9
8
  }
10
9
  export interface IWBTCUTXODocument {
11
- readonly vault: Address;
10
+ readonly vault: string;
12
11
  readonly blockId: bigint;
13
12
  readonly hash: string;
14
13
  readonly value: bigint;
@@ -16,8 +15,8 @@ export interface IWBTCUTXODocument {
16
15
  readonly output: string;
17
16
  }
18
17
  export interface VaultUTXOs {
19
- readonly vault: Address;
20
- readonly publicKeys: Address[];
18
+ readonly vault: string;
19
+ readonly publicKeys: string[];
21
20
  readonly minimum: number;
22
21
  readonly utxos: IWBTCUTXODocument[];
23
22
  }
@@ -1,5 +1,4 @@
1
1
  import { Network } from 'bitcoinjs-lib';
2
- import { Address } from '@btc-vision/bsi-binary';
3
2
  export declare class P2TR_MS {
4
- static generateMultiSigAddress(pubKeys: Buffer[], minimumSignatureRequired: number, network?: Network): Address;
3
+ static generateMultiSigAddress(pubKeys: Buffer[], minimumSignatureRequired: number, network?: Network): string;
5
4
  }
@@ -0,0 +1,11 @@
1
+ import { MemorySlotPointer } from './types.js';
2
+ export declare class BufferHelper {
3
+ static readonly EXPECTED_BUFFER_LENGTH: number;
4
+ static bufferToUint8Array(buffer: Buffer | Uint8Array): Uint8Array;
5
+ static uint8ArrayToHex(input: Uint8Array): string;
6
+ static hexToUint8Array(input: string): Uint8Array;
7
+ static pointerToUint8Array(pointer: MemorySlotPointer): Uint8Array;
8
+ static uint8ArrayToPointer(input: Uint8Array): MemorySlotPointer;
9
+ static valueToUint8Array(value: bigint): Uint8Array;
10
+ static uint8ArrayToValue(input: Uint8Array): bigint;
11
+ }