@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,39 +0,0 @@
1
- import { ChainId } from '../network/ChainId.js';
2
- import { Address } from '../keypair/Address.js';
3
- export declare const FACTORY_ADDRESS_REGTEST: Address;
4
- export declare const POOL_ADDRESS_REGTEST: Address;
5
- export declare const WBTC_ADDRESS_REGTEST: Address;
6
- export declare const MOTO_ADDRESS_REGTEST: Address;
7
- export declare const ROUTER_ADDRESS_REGTEST: Address;
8
- export declare const FACTORY_ADDRESS_TESTNET: Address;
9
- export declare const POOL_ADDRESS_TESTNET: Address;
10
- export declare const WBTC_ADDRESS_TESTNET: Address;
11
- export declare const MOTO_ADDRESS_TESTNET: Address;
12
- export declare const ROUTER_ADDRESS_TESTNET: Address;
13
- export declare const FACTORY_ADDRESS_FRACTAL: Address;
14
- export declare const POOL_ADDRESS_FRACTAL: Address;
15
- export declare const WBTC_ADDRESS_FRACTAL: Address;
16
- export declare const MOTO_ADDRESS_FRACTAL: Address;
17
- export declare const ROUTER_ADDRESS_FRACTAL: Address;
18
- export declare enum OPNetNetwork {
19
- Mainnet = "mainnet",
20
- Testnet = "testnet",
21
- Regtest = "regtest"
22
- }
23
- export interface OPNetTokenMetadata {
24
- readonly factory: Address;
25
- readonly pool: Address;
26
- readonly wbtc: Address;
27
- readonly moto: Address;
28
- readonly router: Address;
29
- }
30
- export declare class OPNetTokenAddressManager {
31
- private readonly metadata;
32
- getFactoryAddress(network: OPNetNetwork, chainId: ChainId): Address;
33
- getPoolAddress(network: OPNetNetwork, chainId: ChainId): Address;
34
- getWBTCAddress(network: OPNetNetwork, chainId: ChainId): Address;
35
- getMOTOAddress(network: OPNetNetwork, chainId: ChainId): Address;
36
- getRouterAddress(network: OPNetNetwork, chainId: ChainId): Address;
37
- getAddresses(network: OPNetNetwork, chainId: ChainId): OPNetTokenMetadata;
38
- }
39
- export declare const OPNetMetadata: OPNetTokenAddressManager;
@@ -1,25 +0,0 @@
1
- import { Network, Psbt, PsbtInputExtended, PsbtOutputExtended, Signer, Transaction } from '../../../node_modules/@btc-vision/bitcoin/build/index.js';
2
- import { ITweakedTransactionData, TweakedTransaction } from '../shared/TweakedTransaction.js';
3
- export interface PsbtTransactionData extends ITweakedTransactionData {
4
- readonly psbt: Psbt;
5
- readonly signer: Signer;
6
- readonly network: Network;
7
- }
8
- export type FromBase64Params = Omit<PsbtTransactionData, 'psbt'>;
9
- export declare class PsbtTransaction extends TweakedTransaction {
10
- readonly logColor: string;
11
- feesAddition: bigint;
12
- protected readonly transaction: Psbt;
13
- protected readonly sighashTypes: number[] | undefined;
14
- constructor(data: PsbtTransactionData);
15
- static fromBase64(data: string, params: FromBase64Params): PsbtTransaction;
16
- static fromHex(data: string, params: FromBase64Params): PsbtTransaction;
17
- static from(params: FromBase64Params): PsbtTransaction;
18
- extractTransaction(): Transaction;
19
- final(): string;
20
- toHex(): string;
21
- addInput(input: PsbtInputExtended, checkPartialSigs?: boolean): void;
22
- addOutput(output: PsbtOutputExtended): void;
23
- attemptFinalizeInputs(n?: number): boolean;
24
- getPSBT(): Psbt;
25
- }
@@ -1,39 +0,0 @@
1
- import { ChainId } from '../network/ChainId.js';
2
- import { Address } from '../keypair/Address.js';
3
- export declare const FACTORY_ADDRESS_REGTEST: Address;
4
- export declare const POOL_ADDRESS_REGTEST: Address;
5
- export declare const WBTC_ADDRESS_REGTEST: Address;
6
- export declare const MOTO_ADDRESS_REGTEST: Address;
7
- export declare const ROUTER_ADDRESS_REGTEST: Address;
8
- export declare const FACTORY_ADDRESS_TESTNET: Address;
9
- export declare const POOL_ADDRESS_TESTNET: Address;
10
- export declare const WBTC_ADDRESS_TESTNET: Address;
11
- export declare const MOTO_ADDRESS_TESTNET: Address;
12
- export declare const ROUTER_ADDRESS_TESTNET: Address;
13
- export declare const FACTORY_ADDRESS_FRACTAL: Address;
14
- export declare const POOL_ADDRESS_FRACTAL: Address;
15
- export declare const WBTC_ADDRESS_FRACTAL: Address;
16
- export declare const MOTO_ADDRESS_FRACTAL: Address;
17
- export declare const ROUTER_ADDRESS_FRACTAL: Address;
18
- export declare enum OPNetNetwork {
19
- Mainnet = "mainnet",
20
- Testnet = "testnet",
21
- Regtest = "regtest"
22
- }
23
- export interface OPNetTokenMetadata {
24
- readonly factory: Address;
25
- readonly pool: Address;
26
- readonly wbtc: Address;
27
- readonly moto: Address;
28
- readonly router: Address;
29
- }
30
- export declare class OPNetTokenAddressManager {
31
- private readonly metadata;
32
- getFactoryAddress(network: OPNetNetwork, chainId: ChainId): Address;
33
- getPoolAddress(network: OPNetNetwork, chainId: ChainId): Address;
34
- getWBTCAddress(network: OPNetNetwork, chainId: ChainId): Address;
35
- getMOTOAddress(network: OPNetNetwork, chainId: ChainId): Address;
36
- getRouterAddress(network: OPNetNetwork, chainId: ChainId): Address;
37
- getAddresses(network: OPNetNetwork, chainId: ChainId): OPNetTokenMetadata;
38
- }
39
- export declare const OPNetMetadata: OPNetTokenAddressManager;
@@ -1,100 +0,0 @@
1
- import { ChainId } from '../network/ChainId.js';
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();
21
- export var OPNetNetwork;
22
- (function (OPNetNetwork) {
23
- OPNetNetwork["Mainnet"] = "mainnet";
24
- OPNetNetwork["Testnet"] = "testnet";
25
- OPNetNetwork["Regtest"] = "regtest";
26
- })(OPNetNetwork || (OPNetNetwork = {}));
27
- export class OPNetTokenAddressManager {
28
- constructor() {
29
- this.metadata = {
30
- [ChainId.Bitcoin]: {
31
- [OPNetNetwork.Testnet]: {
32
- factory: FACTORY_ADDRESS_TESTNET,
33
- pool: POOL_ADDRESS_TESTNET,
34
- wbtc: WBTC_ADDRESS_TESTNET,
35
- moto: MOTO_ADDRESS_TESTNET,
36
- router: ROUTER_ADDRESS_TESTNET,
37
- },
38
- [OPNetNetwork.Regtest]: {
39
- factory: FACTORY_ADDRESS_REGTEST,
40
- pool: POOL_ADDRESS_REGTEST,
41
- wbtc: WBTC_ADDRESS_REGTEST,
42
- moto: MOTO_ADDRESS_REGTEST,
43
- router: ROUTER_ADDRESS_REGTEST,
44
- },
45
- },
46
- [ChainId.Fractal]: {
47
- [OPNetNetwork.Mainnet]: {
48
- factory: FACTORY_ADDRESS_FRACTAL,
49
- pool: POOL_ADDRESS_FRACTAL,
50
- wbtc: WBTC_ADDRESS_FRACTAL,
51
- moto: MOTO_ADDRESS_FRACTAL,
52
- router: ROUTER_ADDRESS_FRACTAL,
53
- },
54
- },
55
- };
56
- }
57
- getFactoryAddress(network, chainId) {
58
- const address = this.metadata[chainId][network]?.factory;
59
- if (!address) {
60
- throw new Error(`Factory address not found for network ${network} and chainId ${chainId}`);
61
- }
62
- return address;
63
- }
64
- getPoolAddress(network, chainId) {
65
- const address = this.metadata[chainId][network]?.pool;
66
- if (!address) {
67
- throw new Error(`Pool address not found for network ${network} and chainId ${chainId}`);
68
- }
69
- return address;
70
- }
71
- getWBTCAddress(network, chainId) {
72
- const address = this.metadata[chainId][network]?.wbtc;
73
- if (!address) {
74
- throw new Error(`WBTC address not found for network ${network} and chainId ${chainId}`);
75
- }
76
- return address;
77
- }
78
- getMOTOAddress(network, chainId) {
79
- const address = this.metadata[chainId][network]?.moto;
80
- if (!address) {
81
- throw new Error(`MOTO address not found for network ${network} and chainId ${chainId}`);
82
- }
83
- return address;
84
- }
85
- getRouterAddress(network, chainId) {
86
- const address = this.metadata[chainId][network]?.router;
87
- if (!address) {
88
- throw new Error(`Router address not found for network ${network} and chainId ${chainId}`);
89
- }
90
- return address;
91
- }
92
- getAddresses(network, chainId) {
93
- const metadata = this.metadata[chainId][network];
94
- if (!metadata) {
95
- throw new Error(`Metadata not found for network ${network} and chainId ${chainId}`);
96
- }
97
- return metadata;
98
- }
99
- }
100
- export const OPNetMetadata = new OPNetTokenAddressManager();
@@ -1,25 +0,0 @@
1
- import { Network, Psbt, PsbtInputExtended, PsbtOutputExtended, Signer, Transaction } from '@btc-vision/bitcoin';
2
- import { ITweakedTransactionData, TweakedTransaction } from '../shared/TweakedTransaction.js';
3
- export interface PsbtTransactionData extends ITweakedTransactionData {
4
- readonly psbt: Psbt;
5
- readonly signer: Signer;
6
- readonly network: Network;
7
- }
8
- export type FromBase64Params = Omit<PsbtTransactionData, 'psbt'>;
9
- export declare class PsbtTransaction extends TweakedTransaction {
10
- readonly logColor: string;
11
- feesAddition: bigint;
12
- protected readonly transaction: Psbt;
13
- protected readonly sighashTypes: number[] | undefined;
14
- constructor(data: PsbtTransactionData);
15
- static fromBase64(data: string, params: FromBase64Params): PsbtTransaction;
16
- static fromHex(data: string, params: FromBase64Params): PsbtTransaction;
17
- static from(params: FromBase64Params): PsbtTransaction;
18
- extractTransaction(): Transaction;
19
- final(): string;
20
- toHex(): string;
21
- addInput(input: PsbtInputExtended, checkPartialSigs?: boolean): void;
22
- addOutput(output: PsbtOutputExtended): void;
23
- attemptFinalizeInputs(n?: number): boolean;
24
- getPSBT(): Psbt;
25
- }
@@ -1,80 +0,0 @@
1
- import { Psbt, } from '@btc-vision/bitcoin';
2
- import { TweakedTransaction } from '../shared/TweakedTransaction.js';
3
- export class PsbtTransaction extends TweakedTransaction {
4
- constructor(data) {
5
- super(data);
6
- this.logColor = '#00ffe1';
7
- this.feesAddition = 10000n;
8
- this.sighashTypes = [];
9
- this.signer = data.signer;
10
- this.network = data.network;
11
- this.transaction = data.psbt;
12
- this.ignoreSignatureError();
13
- this.tweakSigner();
14
- this.internalInit();
15
- }
16
- static fromBase64(data, params) {
17
- const psbt = Psbt.fromBase64(data, {
18
- network: params.network,
19
- });
20
- return new PsbtTransaction({
21
- ...params,
22
- psbt,
23
- });
24
- }
25
- static fromHex(data, params) {
26
- const psbt = Psbt.fromHex(data, {
27
- network: params.network,
28
- });
29
- return new PsbtTransaction({
30
- ...params,
31
- psbt,
32
- });
33
- }
34
- static from(params) {
35
- const psbt = new Psbt({ network: params.network });
36
- return new PsbtTransaction({
37
- ...params,
38
- psbt,
39
- });
40
- }
41
- extractTransaction() {
42
- return this.transaction.extractTransaction();
43
- }
44
- final() {
45
- return this.extractTransaction().toHex();
46
- }
47
- toHex() {
48
- return this.transaction.toHex();
49
- }
50
- addInput(input, checkPartialSigs = false) {
51
- this.transaction.addInput(input, checkPartialSigs);
52
- }
53
- addOutput(output) {
54
- if (!output.value)
55
- return;
56
- this.transaction.addOutput(output);
57
- }
58
- attemptFinalizeInputs(n = 1) {
59
- try {
60
- const inputs = this.transaction.data.inputs;
61
- for (let i = n; i < inputs.length; i++) {
62
- const input = inputs[i];
63
- if (input.finalScriptWitness) {
64
- this.transaction.finalizeTaprootInput(i, input.finalScriptWitness);
65
- }
66
- else {
67
- this.transaction.finalizeInput(i);
68
- }
69
- }
70
- return true;
71
- }
72
- catch (e) {
73
- this.warn(e.stack || "Couldn't finalize inputs");
74
- return false;
75
- }
76
- }
77
- getPSBT() {
78
- return this.transaction;
79
- }
80
- }
@@ -1,139 +0,0 @@
1
- import { ChainId } from '../network/ChainId.js';
2
- import { Address } from '../keypair/Address.js';
3
-
4
- function deadAddress(): Address {
5
- return Address.dead();
6
- }
7
-
8
- // Addresses Regtest
9
- export const FACTORY_ADDRESS_REGTEST: Address = deadAddress();
10
- export const POOL_ADDRESS_REGTEST: Address = deadAddress();
11
- export const WBTC_ADDRESS_REGTEST: Address = deadAddress();
12
- export const MOTO_ADDRESS_REGTEST: Address = deadAddress();
13
- export const ROUTER_ADDRESS_REGTEST: Address = deadAddress();
14
-
15
- // Addresses Testnet
16
- export const FACTORY_ADDRESS_TESTNET: Address = deadAddress();
17
- export const POOL_ADDRESS_TESTNET: Address = deadAddress();
18
- export const WBTC_ADDRESS_TESTNET: Address = deadAddress();
19
- export const MOTO_ADDRESS_TESTNET: Address = deadAddress();
20
- export const ROUTER_ADDRESS_TESTNET: Address = deadAddress();
21
-
22
- // Addresses Fractal
23
- export const FACTORY_ADDRESS_FRACTAL: Address = deadAddress();
24
- export const POOL_ADDRESS_FRACTAL: Address = deadAddress();
25
- export const WBTC_ADDRESS_FRACTAL: Address = deadAddress();
26
- export const MOTO_ADDRESS_FRACTAL: Address = deadAddress();
27
- export const ROUTER_ADDRESS_FRACTAL: Address = deadAddress();
28
-
29
- export enum OPNetNetwork {
30
- Mainnet = 'mainnet',
31
- Testnet = 'testnet',
32
- Regtest = 'regtest',
33
- }
34
-
35
- export interface OPNetTokenMetadata {
36
- readonly factory: Address;
37
- readonly pool: Address;
38
- readonly wbtc: Address;
39
- readonly moto: Address;
40
- readonly router: Address;
41
- }
42
-
43
- export class OPNetTokenAddressManager {
44
- private readonly metadata: {
45
- [key in ChainId]: { [key in OPNetNetwork]?: OPNetTokenMetadata };
46
- } = {
47
- [ChainId.Bitcoin]: {
48
- [OPNetNetwork.Testnet]: {
49
- factory: FACTORY_ADDRESS_TESTNET,
50
- pool: POOL_ADDRESS_TESTNET,
51
- wbtc: WBTC_ADDRESS_TESTNET,
52
- moto: MOTO_ADDRESS_TESTNET,
53
- router: ROUTER_ADDRESS_TESTNET,
54
- },
55
- [OPNetNetwork.Regtest]: {
56
- factory: FACTORY_ADDRESS_REGTEST,
57
- pool: POOL_ADDRESS_REGTEST,
58
- wbtc: WBTC_ADDRESS_REGTEST,
59
- moto: MOTO_ADDRESS_REGTEST,
60
- router: ROUTER_ADDRESS_REGTEST,
61
- },
62
- },
63
- [ChainId.Fractal]: {
64
- [OPNetNetwork.Mainnet]: {
65
- factory: FACTORY_ADDRESS_FRACTAL,
66
- pool: POOL_ADDRESS_FRACTAL,
67
- wbtc: WBTC_ADDRESS_FRACTAL,
68
- moto: MOTO_ADDRESS_FRACTAL,
69
- router: ROUTER_ADDRESS_FRACTAL,
70
- },
71
- },
72
- };
73
-
74
- public getFactoryAddress(network: OPNetNetwork, chainId: ChainId): Address {
75
- const address = this.metadata[chainId][network]?.factory;
76
-
77
- if (!address) {
78
- throw new Error(
79
- `Factory address not found for network ${network} and chainId ${chainId}`,
80
- );
81
- }
82
-
83
- return address;
84
- }
85
-
86
- public getPoolAddress(network: OPNetNetwork, chainId: ChainId): Address {
87
- const address = this.metadata[chainId][network]?.pool;
88
-
89
- if (!address) {
90
- throw new Error(`Pool address not found for network ${network} and chainId ${chainId}`);
91
- }
92
-
93
- return address;
94
- }
95
-
96
- public getWBTCAddress(network: OPNetNetwork, chainId: ChainId): Address {
97
- const address = this.metadata[chainId][network]?.wbtc;
98
-
99
- if (!address) {
100
- throw new Error(`WBTC address not found for network ${network} and chainId ${chainId}`);
101
- }
102
-
103
- return address;
104
- }
105
-
106
- public getMOTOAddress(network: OPNetNetwork, chainId: ChainId): Address {
107
- const address = this.metadata[chainId][network]?.moto;
108
-
109
- if (!address) {
110
- throw new Error(`MOTO address not found for network ${network} and chainId ${chainId}`);
111
- }
112
-
113
- return address;
114
- }
115
-
116
- public getRouterAddress(network: OPNetNetwork, chainId: ChainId): Address {
117
- const address = this.metadata[chainId][network]?.router;
118
-
119
- if (!address) {
120
- throw new Error(
121
- `Router address not found for network ${network} and chainId ${chainId}`,
122
- );
123
- }
124
-
125
- return address;
126
- }
127
-
128
- public getAddresses(network: OPNetNetwork, chainId: ChainId): OPNetTokenMetadata {
129
- const metadata = this.metadata[chainId][network];
130
-
131
- if (!metadata) {
132
- throw new Error(`Metadata not found for network ${network} and chainId ${chainId}`);
133
- }
134
-
135
- return metadata;
136
- }
137
- }
138
-
139
- export const OPNetMetadata: OPNetTokenAddressManager = new OPNetTokenAddressManager();
@@ -1,179 +0,0 @@
1
- import {
2
- Network,
3
- Psbt,
4
- PsbtInputExtended,
5
- PsbtOutputExtended,
6
- Signer,
7
- Transaction,
8
- } from '@btc-vision/bitcoin';
9
- import { ITweakedTransactionData, TweakedTransaction } from '../shared/TweakedTransaction.js';
10
-
11
- export interface PsbtTransactionData extends ITweakedTransactionData {
12
- readonly psbt: Psbt;
13
- readonly signer: Signer;
14
- readonly network: Network;
15
- }
16
-
17
- /*export interface IWBTCUTXODocument {
18
- readonly vault: string;
19
- readonly blockId: bigint;
20
-
21
- readonly hash: string;
22
- readonly value: bigint;
23
- readonly outputIndex: number;
24
-
25
- readonly output: string;
26
- }
27
-
28
- export interface VaultUTXOs {
29
- readonly vault: string;
30
- readonly publicKeys: string[];
31
- readonly minimum: number;
32
- readonly utxos: IWBTCUTXODocument[];
33
- }*/
34
-
35
- export type FromBase64Params = Omit<PsbtTransactionData, 'psbt'>;
36
-
37
- /**
38
- * @description PSBT Transaction processor.
39
- * */
40
- export class PsbtTransaction extends TweakedTransaction {
41
- public readonly logColor: string = '#00ffe1';
42
-
43
- public feesAddition: bigint = 10000n; // add 80000 satoshis to the fees
44
-
45
- /**
46
- * @description The transaction
47
- * @protected
48
- */
49
- protected readonly transaction: Psbt;
50
-
51
- /**
52
- * @description Sign hash types
53
- * @protected
54
- */
55
- protected readonly sighashTypes: number[] | undefined = [];
56
-
57
- constructor(data: PsbtTransactionData) {
58
- super(data);
59
-
60
- this.signer = data.signer;
61
- this.network = data.network;
62
-
63
- this.transaction = data.psbt;
64
-
65
- this.ignoreSignatureError();
66
-
67
- this.tweakSigner();
68
- this.internalInit();
69
- }
70
-
71
- public static fromBase64(data: string, params: FromBase64Params): PsbtTransaction {
72
- const psbt = Psbt.fromBase64(data, {
73
- network: params.network,
74
- });
75
-
76
- return new PsbtTransaction({
77
- ...params,
78
- psbt,
79
- });
80
- }
81
-
82
- public static fromHex(data: string, params: FromBase64Params): PsbtTransaction {
83
- const psbt = Psbt.fromHex(data, {
84
- network: params.network,
85
- });
86
-
87
- return new PsbtTransaction({
88
- ...params,
89
- psbt,
90
- });
91
- }
92
-
93
- public static from(params: FromBase64Params): PsbtTransaction {
94
- const psbt = new Psbt({ network: params.network });
95
-
96
- return new PsbtTransaction({
97
- ...params,
98
- psbt,
99
- });
100
- }
101
-
102
- /**
103
- * @description Extract the transaction
104
- */
105
- public extractTransaction(): Transaction {
106
- return this.transaction.extractTransaction();
107
- }
108
-
109
- /**
110
- * Final tx hex string.
111
- */
112
- public final(): string {
113
- return this.extractTransaction().toHex();
114
- }
115
-
116
- /**
117
- * Get the psbt as a hex string
118
- */
119
- public toHex(): string {
120
- return this.transaction.toHex();
121
- }
122
-
123
- /**
124
- * @description Add an input to the transaction
125
- * @param input
126
- * @param checkPartialSigs
127
- */
128
- public addInput(input: PsbtInputExtended, checkPartialSigs: boolean = false): void {
129
- this.transaction.addInput(input, checkPartialSigs);
130
- }
131
-
132
- /**
133
- * @description Add an output to the transaction
134
- * @param output
135
- */
136
- public addOutput(output: PsbtOutputExtended): void {
137
- if (!output.value) return;
138
-
139
- this.transaction.addOutput(output);
140
- }
141
-
142
- /**
143
- * Attempt to finalize all inputs
144
- * @returns {boolean} True if all inputs were finalized
145
- */
146
- public attemptFinalizeInputs(n: number = 1): boolean {
147
- try {
148
- const inputs = this.transaction.data.inputs;
149
- for (let i = n; i < inputs.length; i++) {
150
- const input = inputs[i];
151
- if (input.finalScriptWitness) {
152
- this.transaction.finalizeTaprootInput(i, input.finalScriptWitness);
153
- } else {
154
- this.transaction.finalizeInput(i);
155
- }
156
- }
157
-
158
- return true;
159
- } catch (e) {
160
- this.warn((e as Error).stack || "Couldn't finalize inputs");
161
- return false;
162
- }
163
- }
164
-
165
- public getPSBT(): Psbt {
166
- return this.transaction;
167
- }
168
-
169
- /*private getTotalOutputAmount(vaults: VaultUTXOs[]): bigint {
170
- let total = BigInt(0);
171
- for (const vault of vaults) {
172
- for (const utxo of vault.utxos) {
173
- total += BigInt(utxo.value);
174
- }
175
- }
176
-
177
- return total;
178
- }*/
179
- }