@opcat-labs/scrypt-ts-opcat 2.0.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/assets/.templates/smart-contract/builtin-libs/backtrace.scrypt.map +1 -1
  2. package/assets/.templates/smart-contract/builtin-libs/backtrace.scrypt.tpl +4 -0
  3. package/assets/.templates/smart-contract/builtin-libs/genesis.scrypt.map +1 -0
  4. package/assets/.templates/smart-contract/builtin-libs/genesis.scrypt.tpl +42 -0
  5. package/assets/.templates/smart-contract/builtin-libs/genesis.transformer.json +9 -0
  6. package/assets/.templates/smart-contract/builtin-libs/p2pk.scrypt.map +1 -1
  7. package/assets/.templates/smart-contract/builtin-libs/p2pk.scrypt.tpl +3 -0
  8. package/assets/.templates/smart-contract/builtin-libs/p2pkh.scrypt.map +1 -1
  9. package/assets/.templates/smart-contract/builtin-libs/p2pkh.scrypt.tpl +3 -0
  10. package/assets/smart-contract/builtin-libs/backtrace.scrypt +16 -12
  11. package/assets/smart-contract/builtin-libs/byteStringReader.scrypt +5 -5
  12. package/assets/smart-contract/builtin-libs/byteStringWriter.scrypt +6 -6
  13. package/assets/smart-contract/builtin-libs/contextUtils.scrypt +16 -16
  14. package/assets/smart-contract/builtin-libs/genesis.scrypt +44 -0
  15. package/assets/smart-contract/builtin-libs/p2pk.scrypt +4 -1
  16. package/assets/smart-contract/builtin-libs/p2pkh.scrypt +4 -1
  17. package/assets/smart-contract/builtin-libs/stateLib.scrypt +1 -1
  18. package/assets/smart-contract/builtin-libs/stateUtils.scrypt +1 -1
  19. package/assets/smart-contract/builtin-libs/stdUtils.scrypt +12 -12
  20. package/assets/smart-contract/builtin-libs/txHashPreimageUtils.scrypt +7 -7
  21. package/assets/smart-contract/builtin-libs/txUtils.scrypt +12 -12
  22. package/assets/smart-contract/types/structs.scrypt +8 -8
  23. package/dist/cjs/features/deployGenesis.cjs +84 -31
  24. package/dist/cjs/features/deployGenesis.js.map +1 -1
  25. package/dist/cjs/providers/dryRunProvider.cjs +57 -0
  26. package/dist/cjs/providers/dryRunProvider.js.map +1 -0
  27. package/dist/cjs/providers/dummyProvider.cjs +10 -0
  28. package/dist/cjs/providers/dummyProvider.js.map +1 -1
  29. package/dist/cjs/providers/index.cjs +4 -1
  30. package/dist/cjs/providers/index.js.map +1 -1
  31. package/dist/cjs/providers/mempoolProvider.cjs +44 -0
  32. package/dist/cjs/providers/mempoolProvider.js.map +1 -1
  33. package/dist/cjs/providers/rpcProvider.cjs +46 -3
  34. package/dist/cjs/providers/rpcProvider.js.map +1 -1
  35. package/dist/cjs/providers/utxoProvider.cjs +9 -1
  36. package/dist/cjs/providers/utxoProvider.js.map +1 -1
  37. package/dist/cjs/psbt/extPsbt.cjs +8 -1
  38. package/dist/cjs/psbt/extPsbt.js.map +1 -1
  39. package/dist/cjs/psbt/psbt.cjs +3 -1
  40. package/dist/cjs/psbt/psbt.js.map +1 -1
  41. package/dist/cjs/smart-contract/builtin-libs/backtrace.cjs +59 -2
  42. package/dist/cjs/smart-contract/builtin-libs/backtrace.js.map +1 -1
  43. package/dist/cjs/smart-contract/builtin-libs/genesis.cjs +553 -0
  44. package/dist/cjs/smart-contract/builtin-libs/genesis.js.map +1 -0
  45. package/dist/cjs/smart-contract/builtin-libs/index.cjs +5 -1
  46. package/dist/cjs/smart-contract/builtin-libs/index.js.map +1 -1
  47. package/dist/cjs/smart-contract/smartContract.cjs +22 -0
  48. package/dist/cjs/smart-contract/smartContract.js.map +1 -1
  49. package/dist/esm/features/deployGenesis.js +84 -31
  50. package/dist/esm/features/deployGenesis.js.map +1 -1
  51. package/dist/esm/providers/dryRunProvider.js +53 -0
  52. package/dist/esm/providers/dryRunProvider.js.map +1 -0
  53. package/dist/esm/providers/dummyProvider.js +10 -0
  54. package/dist/esm/providers/dummyProvider.js.map +1 -1
  55. package/dist/esm/providers/index.js +2 -1
  56. package/dist/esm/providers/index.js.map +1 -1
  57. package/dist/esm/providers/mempoolProvider.js +44 -0
  58. package/dist/esm/providers/mempoolProvider.js.map +1 -1
  59. package/dist/esm/providers/rpcProvider.js +45 -2
  60. package/dist/esm/providers/rpcProvider.js.map +1 -1
  61. package/dist/esm/providers/utxoProvider.js +7 -0
  62. package/dist/esm/providers/utxoProvider.js.map +1 -1
  63. package/dist/esm/psbt/extPsbt.js +8 -1
  64. package/dist/esm/psbt/extPsbt.js.map +1 -1
  65. package/dist/esm/psbt/psbt.js +3 -1
  66. package/dist/esm/psbt/psbt.js.map +1 -1
  67. package/dist/esm/smart-contract/builtin-libs/backtrace.js +61 -4
  68. package/dist/esm/smart-contract/builtin-libs/backtrace.js.map +1 -1
  69. package/dist/esm/smart-contract/builtin-libs/genesis.js +549 -0
  70. package/dist/esm/smart-contract/builtin-libs/genesis.js.map +1 -0
  71. package/dist/esm/smart-contract/builtin-libs/index.js +1 -0
  72. package/dist/esm/smart-contract/builtin-libs/index.js.map +1 -1
  73. package/dist/esm/smart-contract/smartContract.js +23 -1
  74. package/dist/esm/smart-contract/smartContract.js.map +1 -1
  75. package/dist/types/features/deployGenesis.d.ts +39 -12
  76. package/dist/types/features/deployGenesis.d.ts.map +1 -1
  77. package/dist/types/providers/chainProvider.d.ts +12 -0
  78. package/dist/types/providers/chainProvider.d.ts.map +1 -1
  79. package/dist/types/providers/dryRunProvider.d.ts +4 -0
  80. package/dist/types/providers/dryRunProvider.d.ts.map +1 -0
  81. package/dist/types/providers/dummyProvider.d.ts +4 -2
  82. package/dist/types/providers/dummyProvider.d.ts.map +1 -1
  83. package/dist/types/providers/index.d.ts +2 -1
  84. package/dist/types/providers/index.d.ts.map +1 -1
  85. package/dist/types/providers/mempoolProvider.d.ts +4 -2
  86. package/dist/types/providers/mempoolProvider.d.ts.map +1 -1
  87. package/dist/types/providers/rpcProvider.d.ts +4 -2
  88. package/dist/types/providers/rpcProvider.d.ts.map +1 -1
  89. package/dist/types/providers/utxoProvider.d.ts +3 -0
  90. package/dist/types/providers/utxoProvider.d.ts.map +1 -1
  91. package/dist/types/psbt/extPsbt.d.ts.map +1 -1
  92. package/dist/types/psbt/psbt.d.ts.map +1 -1
  93. package/dist/types/smart-contract/builtin-libs/backtrace.d.ts +49 -0
  94. package/dist/types/smart-contract/builtin-libs/backtrace.d.ts.map +1 -1
  95. package/dist/types/smart-contract/builtin-libs/genesis.d.ts +252 -0
  96. package/dist/types/smart-contract/builtin-libs/genesis.d.ts.map +1 -0
  97. package/dist/types/smart-contract/builtin-libs/index.d.ts +1 -0
  98. package/dist/types/smart-contract/builtin-libs/index.d.ts.map +1 -1
  99. package/dist/types/smart-contract/smartContract.d.ts +20 -0
  100. package/dist/types/smart-contract/smartContract.d.ts.map +1 -1
  101. package/package.json +5 -3
  102. package/scrypt.index.json +4 -0
  103. package/src/smart-contract/builtin-libs/backtrace.ts +62 -3
  104. package/src/smart-contract/builtin-libs/genesis.ts +569 -0
  105. package/src/smart-contract/builtin-libs/index.ts +2 -1
@@ -1,33 +1,33 @@
1
1
 
2
2
 
3
3
 
4
- struct _opcat_labs_scrypt_ts_opcat_2_0_2__rs__TxOut {
4
+ struct _opcat_labs_scrypt_ts_opcat_2_1_0__rs__TxOut {
5
5
  bytes scriptHash;
6
6
  bytes dataHash;
7
7
  int satoshis;
8
8
  }
9
9
 
10
- struct _opcat_labs_scrypt_ts_opcat_2_0_2__rs__TxIn {
10
+ struct _opcat_labs_scrypt_ts_opcat_2_1_0__rs__TxIn {
11
11
  bytes prevTxHash;
12
12
  int prevOutputIndex;
13
13
  int sequence;
14
14
  bytes scriptHash;
15
15
  }
16
16
 
17
- struct _opcat_labs_scrypt_ts_opcat_2_0_2__rs__TxHashPreimage {
17
+ struct _opcat_labs_scrypt_ts_opcat_2_1_0__rs__TxHashPreimage {
18
18
  bytes version;
19
19
  bytes inputList;
20
20
  bytes outputList;
21
21
  bytes nLockTime;
22
22
  }
23
23
 
24
- struct _opcat_labs_scrypt_ts_opcat_2_0_2__rs__BacktraceInfo {
25
- _opcat_labs_scrypt_ts_opcat_2_0_2__rs__TxIn prevTxInput;
24
+ struct _opcat_labs_scrypt_ts_opcat_2_1_0__rs__BacktraceInfo {
25
+ _opcat_labs_scrypt_ts_opcat_2_1_0__rs__TxIn prevTxInput;
26
26
  int prevTxInputIndex;
27
- _opcat_labs_scrypt_ts_opcat_2_0_2__rs__TxHashPreimage prevPrevTxPreimage;
27
+ _opcat_labs_scrypt_ts_opcat_2_1_0__rs__TxHashPreimage prevPrevTxPreimage;
28
28
  }
29
29
 
30
- struct _opcat_labs_scrypt_ts_opcat_2_0_2__rs__SHPreimage {
30
+ struct _opcat_labs_scrypt_ts_opcat_2_1_0__rs__SHPreimage {
31
31
  bytes nVersion;
32
32
  bytes hashPrevouts;
33
33
  bytes spentScriptHash;
@@ -44,7 +44,7 @@ struct _opcat_labs_scrypt_ts_opcat_2_0_2__rs__SHPreimage {
44
44
  int sigHashType;
45
45
  }
46
46
 
47
- struct _opcat_labs_scrypt_ts_opcat_2_0_2__rs__Outpoint {
47
+ struct _opcat_labs_scrypt_ts_opcat_2_1_0__rs__Outpoint {
48
48
  bytes txHash;
49
49
  int outputIndex;
50
50
  }
@@ -1,59 +1,112 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.deployGenesis = void 0;
4
- const opcat_1 = require("@opcat-labs/opcat");
5
4
  const utxoProvider_js_1 = require('../providers/utxoProvider.cjs');
6
5
  const extPsbt_js_1 = require('../psbt/extPsbt.cjs');
7
6
  const proof_js_1 = require('../utils/proof.cjs');
7
+ const genesis_js_1 = require('../smart-contract/builtin-libs/genesis.cjs');
8
+ const index_js_1 = require('../smart-contract/fns/index.cjs');
8
9
  /**
9
- * Deploys a smart contract, which can be traced back to genesis, to the blockchain
10
+ * Default postage amount for Genesis contract output (in satoshis).
11
+ * Set to minimum value since Genesis is consumed immediately in step 2.
12
+ */
13
+ const GENESIS_POSTAGE = 1;
14
+ /**
15
+ * Deploys a smart contract, which can be traced back to genesis, to the blockchain.
16
+ *
17
+ * **IMPORTANT**: This function performs TWO blockchain transactions sequentially:
18
+ * 1. First deploys a Genesis contract (requires fees + 1 sat postage)
19
+ * 2. Then deploys the target contract using the Genesis contract as input (requires additional fees)
20
+ *
21
+ * ## Fee Implications
22
+ * Total cost = Genesis transaction fees + Deploy transaction fees + 1 sat Genesis postage
23
+ * The Genesis postage (1 sat) is consumed when the Genesis UTXO is spent in step 2.
24
+ *
25
+ * ## Atomicity Warning
26
+ * These two transactions are NOT atomic. If step 2 fails after step 1 broadcasts:
27
+ * - The Genesis UTXO will exist on-chain but remain unspent
28
+ * - The target contract will NOT be deployed
29
+ * - Manual recovery is possible by creating a new deploy transaction using the Genesis UTXO
10
30
  *
11
- * @param signer - The signer used to sign the transaction
31
+ * ## Error Recovery
32
+ * If an error occurs during step 2:
33
+ * - The Genesis transaction is already broadcast and cannot be reverted
34
+ * - The Genesis UTXO at `genesisPsbt.getUtxo(0)` can be used for retry
35
+ * - Provider state may be inconsistent (Genesis marked spent but deploy failed)
36
+ *
37
+ * @param signer - The signer used to sign both transactions
12
38
  * @param provider - The provider for chain and UTXO data
13
39
  * @param createContract - Factory function to create the contract instance with genesis outpoint
14
- * @param satoshis - Amount of satoshis to lock in the contract (default: 1)
15
- * @returns Promise resolving to the PSBT and deployed contract instance
40
+ * @param satoshis - Amount of satoshis to lock in the target contract (default: 1)
41
+ * @param metadata - Optional metadata (hex string) to attach to the Genesis contract output
42
+ * @returns Promise resolving to the deploy PSBT and deployed contract instance
43
+ *
44
+ * @throws {Error} If signing fails for either transaction
45
+ * @throws {Error} If broadcast fails for either transaction
46
+ * @throws {Error} If insufficient UTXOs are available
16
47
  *
17
- * @remarks
18
- * This function:
19
- * 1. Creates a genesis transaction from the first available UTXO
20
- * 2. Builds and signs the contract deployment PSBT
21
- * 3. Broadcasts the transaction and updates UTXO state
22
- * 4. Returns the finalized PSBT and contract instance
48
+ * @example
49
+ * ```typescript
50
+ * const { psbt, contract } = await deployGenesis(
51
+ * signer,
52
+ * provider,
53
+ * (genesisOutpoint) => new MyContract(genesisOutpoint),
54
+ * 1000 // lock 1000 sats in contract
55
+ * );
56
+ * ```
23
57
  */
24
- async function deployGenesis(signer, provider, createContract, // Function to create the contract with genesisOutpoint
25
- satoshis = 1) {
58
+ async function deployGenesis(signer, provider, createContract, satoshis = 1, metadata) {
26
59
  const address = await signer.getAddress();
27
60
  const utxos = await provider.getUtxos(address);
28
61
  const feeRate = await provider.getFeeRate();
29
62
  const network = await provider.getNetwork();
30
- const psbt = new extPsbt_js_1.ExtPsbt({ network: network });
31
- const genesisOutpoint = (0, proof_js_1.toGenesisOutpoint)(utxos[0]);
32
- const contract = createContract(genesisOutpoint); // Create contract with the txid of the psbt
33
- if (!('txHashPreimage' in utxos[0])) {
34
- const rawTx = await provider.getRawTransaction(utxos[0].txId);
35
- const txHashPreimage = opcat_1.Transaction.fromString(rawTx).toTxHashPreimage().toString('hex');
36
- Object.assign(utxos[0], {
37
- txHashPreimage: txHashPreimage
38
- });
63
+ // Step 1: Create and deploy Genesis contract
64
+ const genesis = new genesis_js_1.Genesis();
65
+ if (metadata) {
66
+ genesis.data = (0, index_js_1.toByteString)(metadata);
67
+ }
68
+ const genesisPsbt = new extPsbt_js_1.ExtPsbt({ network });
69
+ genesisPsbt
70
+ .spendUTXO(utxos.slice(0, 10))
71
+ .addContractOutput(genesis, GENESIS_POSTAGE)
72
+ .change(address, feeRate)
73
+ .seal();
74
+ const signedGenesisPsbt = await signer.signPsbt(genesisPsbt.toHex(), genesisPsbt.psbtOptions());
75
+ genesisPsbt.combine(extPsbt_js_1.ExtPsbt.fromHex(signedGenesisPsbt)).finalizeAllInputs();
76
+ // Broadcast genesis transaction
77
+ const genesisTx = genesisPsbt.extractTransaction();
78
+ await provider.broadcast(genesisTx.toHex());
79
+ (0, utxoProvider_js_1.markSpent)(provider, genesisTx);
80
+ // Step 2: Create target contract with genesis outpoint
81
+ const genesisUtxo = genesisPsbt.getUtxo(0);
82
+ const genesisOutpoint = (0, proof_js_1.toGenesisOutpoint)(genesisUtxo);
83
+ const contract = createContract(genesisOutpoint);
84
+ // Bind Genesis contract to its UTXO
85
+ genesis.bindToUtxo(genesisUtxo);
86
+ // Step 3: Deploy target contract using Genesis as input
87
+ const deployPsbt = new extPsbt_js_1.ExtPsbt({ network });
88
+ // Genesis must be at input index 0, so add it first
89
+ deployPsbt.addContractInput(genesis, (0, genesis_js_1.genesisCheckDeploy)());
90
+ // Add fee UTXO after Genesis input
91
+ const genesisChangeUtxo = genesisPsbt.getChangeUTXO();
92
+ if (genesisChangeUtxo) {
93
+ deployPsbt.spendUTXO(genesisChangeUtxo);
39
94
  }
40
- psbt.spendUTXO(utxos.slice(0, 10))
95
+ deployPsbt
41
96
  .addContractOutput(contract, satoshis)
42
97
  .change(address, feeRate)
43
98
  .seal();
44
- // sign the psbts
45
- const signedPsbtHex = await signer.signPsbt(psbt.toHex(), psbt.psbtOptions());
46
- // combine and finalize the signed psbts
47
- psbt.combine(extPsbt_js_1.ExtPsbt.fromHex(signedPsbtHex)).finalizeAllInputs();
48
- // broadcast the psbts
49
- const deployTx = psbt.extractTransaction();
99
+ const signedDeployPsbt = await signer.signPsbt(deployPsbt.toHex(), deployPsbt.psbtOptions());
100
+ deployPsbt.combine(extPsbt_js_1.ExtPsbt.fromHex(signedDeployPsbt)).finalizeAllInputs();
101
+ // Broadcast deploy transaction
102
+ const deployTx = deployPsbt.extractTransaction();
50
103
  await provider.broadcast(deployTx.toHex());
51
104
  (0, utxoProvider_js_1.markSpent)(provider, deployTx);
52
- const changeUTXO = psbt.getChangeUTXO();
105
+ const changeUTXO = deployPsbt.getChangeUTXO();
53
106
  if (changeUTXO) {
54
107
  provider.addNewUTXO(changeUTXO);
55
108
  }
56
- return { psbt, contract };
109
+ return { psbt: deployPsbt, contract };
57
110
  }
58
111
  exports.deployGenesis = deployGenesis;
59
112
  //# sourceMappingURL=deployGenesis.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deployGenesis.js","sourceRoot":"","sources":["../../../src/features/deployGenesis.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAEhD,kEAAyD;AACzD,mDAA6C;AAI7C,gDAAsD;AAEtD;;;;;;;;;;;;;;;GAeG;AACI,KAAK,UAAU,aAAa,CACjC,MAAc,EACd,QAAsC,EACtC,cAAyD,EAAE,uDAAuD;AAClH,WAAmB,CAAC;IAKpB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,oBAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/C,MAAM,eAAe,GAAG,IAAA,4BAAiB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACnD,MAAM,QAAQ,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,4CAA4C;IAG9F,IAAI,CAAC,CAAC,gBAAgB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE9D,MAAM,cAAc,GAAG,mBAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAExF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACtB,cAAc,EAAE,cAAc;SAC/B,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAC/B,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC;SACrC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;SACxB,IAAI,EAAE,CAAC;IAEV,iBAAiB;IACjB,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAE9E,wCAAwC;IACxC,IAAI,CAAC,OAAO,CAAC,oBAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAEjE,sBAAsB;IACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC3C,MAAM,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3C,IAAA,2BAAS,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE9B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IAExC,IAAI,UAAU,EAAE,CAAC;QACf,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC;AApDD,sCAoDC"}
1
+ {"version":3,"file":"deployGenesis.js","sourceRoot":"","sources":["../../../src/features/deployGenesis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createDryRunProvider = void 0;
4
+ const common_js_1 = require('../utils/common.cjs');
5
+ const opcat_1 = require("@opcat-labs/opcat");
6
+ const extPsbt_js_1 = require('../psbt/extPsbt.cjs');
7
+ const utxoProvider_js_1 = require('./utxoProvider.cjs');
8
+ function createDryRunProvider(provider) {
9
+ const clonedProvider = (0, common_js_1.cloneDeep)(provider);
10
+ const broadcastedTxs = new Map();
11
+ const spentUTXOs = new Set();
12
+ const newUTXOs = new Map();
13
+ function isUnSpent(txId, vout) {
14
+ const key = (0, utxoProvider_js_1.getUtxoKey)({ txId, outputIndex: vout, script: '', satoshis: 0, data: '' });
15
+ return !spentUTXOs.has(key);
16
+ }
17
+ clonedProvider.broadcast = async (txHex) => {
18
+ const tx = new opcat_1.Transaction(txHex);
19
+ broadcastedTxs.set(tx.id, txHex);
20
+ return tx.id;
21
+ };
22
+ clonedProvider.broadcastPsbt = async (psbtBase64, metadata) => {
23
+ const psbt = extPsbt_js_1.ExtPsbt.fromBase64(psbtBase64);
24
+ const txHex = psbt.extractTransaction().toHex();
25
+ return clonedProvider.broadcast(txHex);
26
+ };
27
+ clonedProvider.getRawTransaction = async (txId) => {
28
+ let txHex = broadcastedTxs.get(txId);
29
+ if (txHex) {
30
+ return txHex;
31
+ }
32
+ return provider.getRawTransaction(txId);
33
+ };
34
+ clonedProvider.getUtxos = async (address) => {
35
+ const script = (0, common_js_1.uint8ArrayToHex)(opcat_1.Script.fromAddress(address).toBuffer());
36
+ const utxos = await provider.getUtxos(address);
37
+ return utxos
38
+ .concat(Array.from(newUTXOs.values()))
39
+ .filter((utxo) => isUnSpent(utxo.txId, utxo.outputIndex))
40
+ .filter((0, common_js_1.duplicateFilter)((utxo) => `${utxo.txId}:${utxo.outputIndex}`))
41
+ .filter(utxo => utxo.script === script)
42
+ .sort((a, b) => a.satoshis - b.satoshis);
43
+ };
44
+ clonedProvider.markSpent = (txId, vout) => {
45
+ const key = (0, utxoProvider_js_1.getUtxoKey)({ txId, outputIndex: vout, script: '', satoshis: 0, data: '' });
46
+ if (newUTXOs.has(key)) {
47
+ newUTXOs.delete(key);
48
+ }
49
+ spentUTXOs.add(key);
50
+ };
51
+ clonedProvider.addNewUTXO = (utxo) => {
52
+ newUTXOs.set((0, utxoProvider_js_1.getUtxoKey)(utxo), utxo);
53
+ };
54
+ return clonedProvider;
55
+ }
56
+ exports.createDryRunProvider = createDryRunProvider;
57
+ //# sourceMappingURL=dryRunProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dryRunProvider.js","sourceRoot":"","sources":["../../../src/providers/dryRunProvider.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ exports.DummyProvider = void 0;
27
27
  const utxoProvider_js_1 = require('./utxoProvider.cjs');
28
28
  const utils = __importStar(require("@noble/hashes/utils"));
29
29
  const opcat_1 = require("@opcat-labs/opcat");
30
+ const extPsbt_js_1 = require('../psbt/extPsbt.cjs');
30
31
  /**
31
32
  * A DummyProvider is build for test purpose only, it always returns a dummy utxo for `getUtxos` request.
32
33
  * @category Provider
@@ -92,6 +93,11 @@ class DummyProvider {
92
93
  this.broadcastedTxs.set(tx.id, txHex);
93
94
  return tx.id;
94
95
  }
96
+ async broadcastPsbt(psbtBase64, metadata) {
97
+ const psbt = extPsbt_js_1.ExtPsbt.fromBase64(psbtBase64);
98
+ const txHex = psbt.extractTransaction().toHex();
99
+ return this.broadcast(txHex);
100
+ }
95
101
  async getRawTransaction(txId) {
96
102
  const txHex = this.broadcastedTxs.get(txId);
97
103
  if (!txHex) {
@@ -99,6 +105,10 @@ class DummyProvider {
99
105
  }
100
106
  return txHex;
101
107
  }
108
+ async getMedianTime() {
109
+ // Return current timestamp minus 10 minutes (600 seconds)
110
+ return Math.floor(Date.now() / 1000) - 600;
111
+ }
102
112
  }
103
113
  exports.DummyProvider = DummyProvider;
104
114
  //# sourceMappingURL=dummyProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dummyProvider.js","sourceRoot":"","sources":["../../../src/providers/dummyProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dummyProvider.js","sourceRoot":"","sources":["../../../src/providers/dummyProvider.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DummyProvider = exports.RPCProvider = exports.MempoolProvider = exports.getUtxoKey = exports.markSpent = void 0;
3
+ exports.createDryRunProvider = exports.DummyProvider = exports.RPCProvider = exports.MempoolProvider = exports.addChangeUtxoToProvider = exports.getUtxoKey = exports.markSpent = void 0;
4
4
  var utxoProvider_js_1 = require('./utxoProvider.cjs');
5
5
  Object.defineProperty(exports, "markSpent", { enumerable: true, get: function () { return utxoProvider_js_1.markSpent; } });
6
6
  Object.defineProperty(exports, "getUtxoKey", { enumerable: true, get: function () { return utxoProvider_js_1.getUtxoKey; } });
7
+ Object.defineProperty(exports, "addChangeUtxoToProvider", { enumerable: true, get: function () { return utxoProvider_js_1.addChangeUtxoToProvider; } });
7
8
  var mempoolProvider_js_1 = require('./mempoolProvider.cjs');
8
9
  Object.defineProperty(exports, "MempoolProvider", { enumerable: true, get: function () { return mempoolProvider_js_1.MempoolProvider; } });
9
10
  var rpcProvider_js_1 = require('./rpcProvider.cjs');
10
11
  Object.defineProperty(exports, "RPCProvider", { enumerable: true, get: function () { return rpcProvider_js_1.RPCProvider; } });
11
12
  var dummyProvider_js_1 = require('./dummyProvider.cjs');
12
13
  Object.defineProperty(exports, "DummyProvider", { enumerable: true, get: function () { return dummyProvider_js_1.DummyProvider; } });
14
+ var dryRunProvider_js_1 = require('./dryRunProvider.cjs');
15
+ Object.defineProperty(exports, "createDryRunProvider", { enumerable: true, get: function () { return dryRunProvider_js_1.createDryRunProvider; } });
13
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":";;;AACA,qDAAoG;AAAjD,4GAAA,SAAS,OAAA;AAAE,6GAAA,UAAU,OAAA;AAExE,2DAAuD;AAA9C,qHAAA,eAAe,OAAA;AACxB,mDAA+C;AAAtC,6GAAA,WAAW,OAAA;AACpB,uDAAmD;AAA1C,iHAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":";;;AACA,qDAA6H;AAA1E,4GAAA,SAAS,OAAA;AAAE,6GAAA,UAAU,OAAA;AAAE,0HAAA,uBAAuB,OAAA;AAEjG,2DAAuD;AAA9C,qHAAA,eAAe,OAAA;AACxB,mDAA+C;AAAtC,6GAAA,WAAW,OAAA;AACpB,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AACtB,yDAA2D;AAAlD,yHAAA,oBAAoB,OAAA"}
@@ -8,6 +8,7 @@ const cross_fetch_1 = __importDefault(require("cross-fetch"));
8
8
  const utxoProvider_js_1 = require('./utxoProvider.cjs');
9
9
  const common_js_1 = require('../utils/common.cjs');
10
10
  const opcat_1 = require("@opcat-labs/opcat");
11
+ const extPsbt_js_1 = require('../psbt/extPsbt.cjs');
11
12
  /**
12
13
  * The MempoolProvider is backed by [Mempool]{@link https://opcatlabs.io}
13
14
  * @category Provider
@@ -176,6 +177,11 @@ class MempoolProvider {
176
177
  this.broadcastedTxs.set(res, txHex);
177
178
  return res;
178
179
  }
180
+ async broadcastPsbt(psbtBase64, metadata) {
181
+ const psbt = extPsbt_js_1.ExtPsbt.fromBase64(psbtBase64);
182
+ const txHex = psbt.extractTransaction().toHex();
183
+ return this.broadcast(txHex);
184
+ }
179
185
  async getRawTransaction(txId) {
180
186
  let txHex = this.broadcastedTxs.get(txId);
181
187
  if (!txHex) {
@@ -203,6 +209,44 @@ class MempoolProvider {
203
209
  return e;
204
210
  });
205
211
  }
212
+ async getMedianTime() {
213
+ // First get the tip block hash
214
+ const tipHashUrl = `${this.getMempoolApiHost()}/api/blocks/tip/hash`;
215
+ const tipHash = await (0, cross_fetch_1.default)(tipHashUrl, {})
216
+ .then((res) => {
217
+ if (res.status !== 200) {
218
+ throw new Error(`invalid http response code: ${res.status}`);
219
+ }
220
+ return res.text();
221
+ })
222
+ .catch((e) => {
223
+ throw new Error(`Failed to get tip block hash: ${e.message}`);
224
+ });
225
+ // Then get the block data to extract mediantime
226
+ const blockUrl = `${this.getMempoolApiHost()}/api/block/${tipHash}`;
227
+ return (0, cross_fetch_1.default)(blockUrl, {})
228
+ .then((res) => {
229
+ if (res.status !== 200) {
230
+ throw new Error(`invalid http response code: ${res.status}`);
231
+ }
232
+ const contentType = res.headers.get('content-type');
233
+ if (contentType.includes('json')) {
234
+ return res.json();
235
+ }
236
+ else {
237
+ throw new Error(`invalid http content type: ${contentType}`);
238
+ }
239
+ })
240
+ .then((blockData) => {
241
+ if (typeof blockData.mediantime !== 'number') {
242
+ throw new Error(`Invalid block data: mediantime not found`);
243
+ }
244
+ return blockData.mediantime;
245
+ })
246
+ .catch((e) => {
247
+ throw new Error(`Failed to get median time: ${e.message}`);
248
+ });
249
+ }
206
250
  }
207
251
  exports.MempoolProvider = MempoolProvider;
208
252
  //# sourceMappingURL=mempoolProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mempoolProvider.js","sourceRoot":"","sources":["../../../src/providers/mempoolProvider.ts"],"names":[],"mappings":";;;;;;AAEA,8DAAgC;AAChC,uDAA+E;AAC/E,kDAAsE;AACtE,6CAA2C;AAE3C;;;GAGG;AACH,MAAa,eAAe;IAM1B,YAA4B,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;QAL7C,mBAAc,GAAwB,IAAI,GAAG,EAAE,CAAC;QAChD,eAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QAE/B,aAAQ,GAAG,IAAI,GAAG,EAAgB,CAAC;QAiGnC,sBAAiB,GAAG,GAAG,EAAE;YAC/B,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe,EAAE,CAAC;gBACrC,OAAO,8BAA8B,CAAC;YACxC,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe,EAAE,CAAC;gBAC5C,OAAO,8BAA8B,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACxD,CAAC;QACH,CAAC,CAAC;IAvGsD,CAAC;IAEzD,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,QAA2B;QACzD,MAAM,MAAM,GAAG,IAAA,2BAAe,EAAC,cAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEvE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,OAAO,OAAO,CAAC;QAEtE,MAAM,KAAK,GAAgB,MAAM,IAAA,qBAAK,EAAC,GAAG,CAAC;aACxC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAClB,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACpD,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,+BAA+B,WAAW,aAAa,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC,CAAC;aACD,IAAI,CACH,CACE,KAME,EACF,EAAE,CACF,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACjB,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,IAAI;gBACtB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM;gBAC7B,QAAQ,EAAE,IAAI,CAAC,KAAK;gBACpB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;aACtB,CAAC;QACJ,CAAC,CAAC,CACL;aACA,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEL,OAAO,KAAK;aACT,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;aAC1C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aAC7D,MAAM,CAAC,IAAA,2BAAe,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;aACrE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC;aACtC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAEO,SAAS,CAAC,IAAY,EAAE,IAAY;QAC1C,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,IAAY;QAClC,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,UAAU,CAAC,IAAU;QACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAA,4BAAU,EAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,UAAU;QACR,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE,0BAA0B,CAAC;QAClE,OAAO,IAAA,qBAAK,EAAC,GAAG,EAAE,EAAE,CAAC;aAClB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACZ,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACpD,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;QACH,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;YAClB,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACP,CAAC;IACD,KAAK,CAAC,gBAAgB,CAAC,IAAY;QACjC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,GAAG,CAAC,aAAa,CAAC;IAC3B,CAAC;IAYO,KAAK,CAAC,UAAU,CAAC,KAAa;QACpC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC;QACjD,OAAO,IAAA,qBAAK,EAAC,GAAG,EAAE;YAChB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,KAAK;SACZ,CAAC;aACC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAClB,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACpD,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;QACH,CAAC,CAAC;aACD,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACnB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;gBACnD,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC,CAAC;iBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAO1C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE,WAAW,IAAI,SAAS,CAAC;QAChE,OAAO,IAAA,qBAAK,EAAC,GAAG,EAAE,EAAE,CAAC;aAClB,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAClB,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACpD,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;QACH,CAAC,CAAC;aACD,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACnB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO;oBACL,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;oBAC7B,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC1C,CAAC;YACJ,CAAC;iBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACpC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAClC,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAEhD,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACb,+BAA+B,IAAI,uDAAuD,CAC3F,CAAC;YACJ,CAAC;YACD,KAAK,GAAG,GAAG,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,IAAY;QAC3C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE,WAAW,IAAI,MAAM,CAAC;QAC7D,OAAO,IAAA,qBAAK,EAAC,GAAG,EAAE,EAAE,CAAC;aAClB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACZ,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,KAAa,EAAE,EAAE;YACtB,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;aAED,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;YAClB,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACP,CAAC;CACF;AAxND,0CAwNC"}
1
+ {"version":3,"file":"mempoolProvider.js","sourceRoot":"","sources":["../../../src/providers/mempoolProvider.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,8 @@ const decimal_js_1 = __importDefault(require("decimal.js"));
32
32
  const utxoProvider_js_1 = require('./utxoProvider.cjs');
33
33
  const tools = __importStar(require("uint8array-tools"));
34
34
  const common_js_1 = require('../utils/common.cjs');
35
- const index_js_1 = require('../index.cjs');
35
+ const opcat_1 = require("@opcat-labs/opcat");
36
+ const extPsbt_js_1 = require('../psbt/extPsbt.cjs');
36
37
  /**
37
38
  * The RPCProvider is backed by opcat RPC
38
39
  * @category Provider
@@ -187,6 +188,11 @@ class RPCProvider {
187
188
  this.broadcastedTxs.set(res, txHex);
188
189
  return res;
189
190
  }
191
+ async broadcastPsbt(psbtBase64, metadata) {
192
+ const psbt = extPsbt_js_1.ExtPsbt.fromBase64(psbtBase64);
193
+ const txHex = psbt.extractTransaction().toHex();
194
+ return this.broadcast(txHex);
195
+ }
190
196
  async getRawTransaction(txId) {
191
197
  let txHex = this.broadcastedTxs.get(txId);
192
198
  if (!txHex) {
@@ -233,7 +239,7 @@ class RPCProvider {
233
239
  });
234
240
  }
235
241
  async getUtxos(address, _options) {
236
- const script = (0, common_js_1.uint8ArrayToHex)(index_js_1.Script.fromAddress(address).toBuffer());
242
+ const script = (0, common_js_1.uint8ArrayToHex)(opcat_1.Script.fromAddress(address).toBuffer());
237
243
  const Authorization = `Basic ${tools.toBase64(tools.fromUtf8(`${this.getRpcUser()}:${this.getRpcPassword()}`))}`;
238
244
  const utxos = await fetch(this.getRpcUrl(this.walletName), {
239
245
  method: 'POST',
@@ -278,7 +284,7 @@ class RPCProvider {
278
284
  .filter((utxo) => this.isUnSpent(utxo.txId, utxo.outputIndex))
279
285
  .filter((0, common_js_1.duplicateFilter)((utxo) => `${utxo.txId}:${utxo.outputIndex}`))
280
286
  .filter(utxo => utxo.script === script)
281
- .sort((a, b) => a.satoshi - b.satoshi);
287
+ .sort((a, b) => a.satoshis - b.satoshis);
282
288
  }
283
289
  isUnSpent(txId, vout) {
284
290
  const key = `${txId}:${vout}`;
@@ -294,6 +300,43 @@ class RPCProvider {
294
300
  addNewUTXO(utxo) {
295
301
  this.newUTXOs.set((0, utxoProvider_js_1.getUtxoKey)(utxo), utxo);
296
302
  }
303
+ async getMedianTime() {
304
+ const Authorization = `Basic ${tools.toBase64(tools.fromUtf8(`${this.getRpcUser()}:${this.getRpcPassword()}`))}`;
305
+ return fetch(this.getRpcUrl(null), {
306
+ method: 'POST',
307
+ headers: {
308
+ 'Content-Type': 'application/json',
309
+ Authorization,
310
+ },
311
+ body: JSON.stringify({
312
+ jsonrpc: '2.0',
313
+ id: 'cat-cli',
314
+ method: 'getblockchaininfo',
315
+ params: [],
316
+ }),
317
+ })
318
+ .then((res) => {
319
+ const contentType = res.headers.get('content-type');
320
+ if (contentType.includes('json')) {
321
+ return res.json();
322
+ }
323
+ else {
324
+ throw new Error(`invalid http content type : ${contentType}, status: ${res.status}`);
325
+ }
326
+ })
327
+ .then((res) => {
328
+ if (res.result === null) {
329
+ throw new Error(JSON.stringify(res));
330
+ }
331
+ if (typeof res.result.mediantime !== 'number') {
332
+ throw new Error(`Invalid blockchain info: mediantime not found`);
333
+ }
334
+ return res.result.mediantime;
335
+ })
336
+ .catch((e) => {
337
+ throw new Error(`Failed to get median time: ${e.message}`);
338
+ });
339
+ }
297
340
  }
298
341
  exports.RPCProvider = RPCProvider;
299
342
  //# sourceMappingURL=rpcProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpcProvider.js","sourceRoot":"","sources":["../../../src/providers/rpcProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpcProvider.js","sourceRoot":"","sources":["../../../src/providers/rpcProvider.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getUtxoKey = exports.markSpent = void 0;
3
+ exports.getUtxoKey = exports.addChangeUtxoToProvider = exports.markSpent = void 0;
4
4
  const common_js_1 = require('../utils/common.cjs');
5
5
  /**
6
6
  * Marks all inputs of a transaction as spent in the UTXO provider.
@@ -15,6 +15,14 @@ function markSpent(utxoProvider, tx) {
15
15
  }
16
16
  exports.markSpent = markSpent;
17
17
  /** @ignore */
18
+ function addChangeUtxoToProvider(utxoProvider, psbt) {
19
+ const changeUtxo = psbt.getChangeUTXO();
20
+ if (changeUtxo) {
21
+ utxoProvider.addNewUTXO(changeUtxo);
22
+ }
23
+ }
24
+ exports.addChangeUtxoToProvider = addChangeUtxoToProvider;
25
+ /** @ignore */
18
26
  function getUtxoKey(utxo) {
19
27
  return `${utxo.txId}:${utxo.outputIndex}`;
20
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utxoProvider.js","sourceRoot":"","sources":["../../../src/providers/utxoProvider.ts"],"names":[],"mappings":";;;AACA,kDAA6C;AA2C7C;;;;GAIG;AACH,SAAgB,SAAS,CAAC,YAA0B,EAAE,EAAe;IACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3B,YAAY,CAAC,SAAS,CAAC,IAAA,mBAAO,EAAC,KAAK,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AALD,8BAKC;AAED,cAAc;AACd,SAAgB,UAAU,CAAC,IAAU;IACnC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5C,CAAC;AAFD,gCAEC"}
1
+ {"version":3,"file":"utxoProvider.js","sourceRoot":"","sources":["../../../src/providers/utxoProvider.ts"],"names":[],"mappings":";;;AACA,kDAA6C;AA4C7C;;;;GAIG;AACH,SAAgB,SAAS,CAAC,YAA0B,EAAE,EAAe;IACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3B,YAAY,CAAC,SAAS,CAAC,IAAA,mBAAO,EAAC,KAAK,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AALD,8BAKC;AAED,cAAc;AACd,SAAgB,uBAAuB,CAAC,YAA0B,EAAE,IAAa;IAC/E,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IACxC,IAAI,UAAU,EAAE,CAAC;QACf,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AALD,0DAKC;AAED,cAAc;AACd,SAAgB,UAAU,CAAC,IAAU;IACnC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5C,CAAC;AAFD,gCAEC"}
@@ -398,10 +398,17 @@ class ExtPsbt extends psbt_js_1.Psbt {
398
398
  */
399
399
  addContractOutput(contract, satoshis) {
400
400
  const Contract = Object.getPrototypeOf(contract).constructor;
401
+ let dataHex = '';
402
+ if (contract.getStateType() !== undefined) {
403
+ dataHex = Contract.serializeState(contract.state);
404
+ }
405
+ else if (contract.data && contract.data.length > 0) {
406
+ dataHex = contract.data;
407
+ }
401
408
  this.addOutput({
402
409
  script: contract.lockingScript.toBuffer(),
403
410
  value: BigInt(satoshis),
404
- data: contract.getStateType() !== undefined ? tools.fromHex(Contract.serializeState(contract.state)) : new Uint8Array(0),
411
+ data: (0, common_js_1.hexToUint8Array)(dataHex),
405
412
  });
406
413
  const outputIndex = this.txOutputs.length - 1;
407
414
  this._outputContracts.set(outputIndex, contract);