@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.
- package/assets/.templates/smart-contract/builtin-libs/backtrace.scrypt.map +1 -1
- package/assets/.templates/smart-contract/builtin-libs/backtrace.scrypt.tpl +4 -0
- package/assets/.templates/smart-contract/builtin-libs/genesis.scrypt.map +1 -0
- package/assets/.templates/smart-contract/builtin-libs/genesis.scrypt.tpl +42 -0
- package/assets/.templates/smart-contract/builtin-libs/genesis.transformer.json +9 -0
- package/assets/.templates/smart-contract/builtin-libs/p2pk.scrypt.map +1 -1
- package/assets/.templates/smart-contract/builtin-libs/p2pk.scrypt.tpl +3 -0
- package/assets/.templates/smart-contract/builtin-libs/p2pkh.scrypt.map +1 -1
- package/assets/.templates/smart-contract/builtin-libs/p2pkh.scrypt.tpl +3 -0
- package/assets/smart-contract/builtin-libs/backtrace.scrypt +16 -12
- package/assets/smart-contract/builtin-libs/byteStringReader.scrypt +5 -5
- package/assets/smart-contract/builtin-libs/byteStringWriter.scrypt +6 -6
- package/assets/smart-contract/builtin-libs/contextUtils.scrypt +16 -16
- package/assets/smart-contract/builtin-libs/genesis.scrypt +44 -0
- package/assets/smart-contract/builtin-libs/p2pk.scrypt +4 -1
- package/assets/smart-contract/builtin-libs/p2pkh.scrypt +4 -1
- package/assets/smart-contract/builtin-libs/stateLib.scrypt +1 -1
- package/assets/smart-contract/builtin-libs/stateUtils.scrypt +1 -1
- package/assets/smart-contract/builtin-libs/stdUtils.scrypt +12 -12
- package/assets/smart-contract/builtin-libs/txHashPreimageUtils.scrypt +7 -7
- package/assets/smart-contract/builtin-libs/txUtils.scrypt +12 -12
- package/assets/smart-contract/types/structs.scrypt +8 -8
- package/dist/cjs/features/deployGenesis.cjs +84 -31
- package/dist/cjs/features/deployGenesis.js.map +1 -1
- package/dist/cjs/providers/dryRunProvider.cjs +57 -0
- package/dist/cjs/providers/dryRunProvider.js.map +1 -0
- package/dist/cjs/providers/dummyProvider.cjs +10 -0
- package/dist/cjs/providers/dummyProvider.js.map +1 -1
- package/dist/cjs/providers/index.cjs +4 -1
- package/dist/cjs/providers/index.js.map +1 -1
- package/dist/cjs/providers/mempoolProvider.cjs +44 -0
- package/dist/cjs/providers/mempoolProvider.js.map +1 -1
- package/dist/cjs/providers/rpcProvider.cjs +46 -3
- package/dist/cjs/providers/rpcProvider.js.map +1 -1
- package/dist/cjs/providers/utxoProvider.cjs +9 -1
- package/dist/cjs/providers/utxoProvider.js.map +1 -1
- package/dist/cjs/psbt/extPsbt.cjs +8 -1
- package/dist/cjs/psbt/extPsbt.js.map +1 -1
- package/dist/cjs/psbt/psbt.cjs +3 -1
- package/dist/cjs/psbt/psbt.js.map +1 -1
- package/dist/cjs/smart-contract/builtin-libs/backtrace.cjs +59 -2
- package/dist/cjs/smart-contract/builtin-libs/backtrace.js.map +1 -1
- package/dist/cjs/smart-contract/builtin-libs/genesis.cjs +553 -0
- package/dist/cjs/smart-contract/builtin-libs/genesis.js.map +1 -0
- package/dist/cjs/smart-contract/builtin-libs/index.cjs +5 -1
- package/dist/cjs/smart-contract/builtin-libs/index.js.map +1 -1
- package/dist/cjs/smart-contract/smartContract.cjs +22 -0
- package/dist/cjs/smart-contract/smartContract.js.map +1 -1
- package/dist/esm/features/deployGenesis.js +84 -31
- package/dist/esm/features/deployGenesis.js.map +1 -1
- package/dist/esm/providers/dryRunProvider.js +53 -0
- package/dist/esm/providers/dryRunProvider.js.map +1 -0
- package/dist/esm/providers/dummyProvider.js +10 -0
- package/dist/esm/providers/dummyProvider.js.map +1 -1
- package/dist/esm/providers/index.js +2 -1
- package/dist/esm/providers/index.js.map +1 -1
- package/dist/esm/providers/mempoolProvider.js +44 -0
- package/dist/esm/providers/mempoolProvider.js.map +1 -1
- package/dist/esm/providers/rpcProvider.js +45 -2
- package/dist/esm/providers/rpcProvider.js.map +1 -1
- package/dist/esm/providers/utxoProvider.js +7 -0
- package/dist/esm/providers/utxoProvider.js.map +1 -1
- package/dist/esm/psbt/extPsbt.js +8 -1
- package/dist/esm/psbt/extPsbt.js.map +1 -1
- package/dist/esm/psbt/psbt.js +3 -1
- package/dist/esm/psbt/psbt.js.map +1 -1
- package/dist/esm/smart-contract/builtin-libs/backtrace.js +61 -4
- package/dist/esm/smart-contract/builtin-libs/backtrace.js.map +1 -1
- package/dist/esm/smart-contract/builtin-libs/genesis.js +549 -0
- package/dist/esm/smart-contract/builtin-libs/genesis.js.map +1 -0
- package/dist/esm/smart-contract/builtin-libs/index.js +1 -0
- package/dist/esm/smart-contract/builtin-libs/index.js.map +1 -1
- package/dist/esm/smart-contract/smartContract.js +23 -1
- package/dist/esm/smart-contract/smartContract.js.map +1 -1
- package/dist/types/features/deployGenesis.d.ts +39 -12
- package/dist/types/features/deployGenesis.d.ts.map +1 -1
- package/dist/types/providers/chainProvider.d.ts +12 -0
- package/dist/types/providers/chainProvider.d.ts.map +1 -1
- package/dist/types/providers/dryRunProvider.d.ts +4 -0
- package/dist/types/providers/dryRunProvider.d.ts.map +1 -0
- package/dist/types/providers/dummyProvider.d.ts +4 -2
- package/dist/types/providers/dummyProvider.d.ts.map +1 -1
- package/dist/types/providers/index.d.ts +2 -1
- package/dist/types/providers/index.d.ts.map +1 -1
- package/dist/types/providers/mempoolProvider.d.ts +4 -2
- package/dist/types/providers/mempoolProvider.d.ts.map +1 -1
- package/dist/types/providers/rpcProvider.d.ts +4 -2
- package/dist/types/providers/rpcProvider.d.ts.map +1 -1
- package/dist/types/providers/utxoProvider.d.ts +3 -0
- package/dist/types/providers/utxoProvider.d.ts.map +1 -1
- package/dist/types/psbt/extPsbt.d.ts.map +1 -1
- package/dist/types/psbt/psbt.d.ts.map +1 -1
- package/dist/types/smart-contract/builtin-libs/backtrace.d.ts +49 -0
- package/dist/types/smart-contract/builtin-libs/backtrace.d.ts.map +1 -1
- package/dist/types/smart-contract/builtin-libs/genesis.d.ts +252 -0
- package/dist/types/smart-contract/builtin-libs/genesis.d.ts.map +1 -0
- package/dist/types/smart-contract/builtin-libs/index.d.ts +1 -0
- package/dist/types/smart-contract/builtin-libs/index.d.ts.map +1 -1
- package/dist/types/smart-contract/smartContract.d.ts +20 -0
- package/dist/types/smart-contract/smartContract.d.ts.map +1 -1
- package/package.json +5 -3
- package/scrypt.index.json +4 -0
- package/src/smart-contract/builtin-libs/backtrace.ts +62 -3
- package/src/smart-contract/builtin-libs/genesis.ts +569 -0
- package/src/smart-contract/builtin-libs/index.ts +2 -1
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
struct
|
|
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
|
|
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
|
|
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
|
|
25
|
-
|
|
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
|
-
|
|
27
|
+
_opcat_labs_scrypt_ts_opcat_2_1_0__rs__TxHashPreimage prevPrevTxPreimage;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
struct
|
|
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
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
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,
|
|
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
|
-
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
95
|
+
deployPsbt
|
|
41
96
|
.addContractOutput(contract, satoshis)
|
|
42
97
|
.change(address, feeRate)
|
|
43
98
|
.seal();
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
//
|
|
47
|
-
|
|
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 =
|
|
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":";;;
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uDAA+E;AAC/E,2DAA6C;AAC7C,6CAAwD;
|
|
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,
|
|
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;
|
|
1
|
+
{"version":3,"file":"mempoolProvider.js","sourceRoot":"","sources":["../../../src/providers/mempoolProvider.ts"],"names":[],"mappings":";;;;;;AAEA,8DAAgC;AAChC,uDAA+E;AAC/E,kDAAsE;AACtE,6CAA2C;AAC3C,mDAA6C;AAE7C;;;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,aAAa,CAAC,UAAkB,EAAE,QAAkC;QACxE,MAAM,IAAI,GAAG,oBAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,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;IAED,KAAK,CAAC,aAAa;QACjB,+BAA+B;QAC/B,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;QACrE,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAK,EAAC,UAAU,EAAE,EAAE,CAAC;aACxC,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,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEL,gDAAgD;QAChD,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE,cAAc,OAAO,EAAE,CAAC;QACpE,OAAO,IAAA,qBAAK,EAAC,QAAQ,EAAE,EAAE,CAAC;aACvB,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,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,8BAA8B,WAAW,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,SAAc,EAAE,EAAE;YACvB,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,SAAS,CAAC,UAAU,CAAC;QAC9B,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACP,CAAC;CACF;AArQD,0CAqQC"}
|
|
@@ -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
|
|
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)(
|
|
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.
|
|
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;
|
|
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:
|
|
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);
|