@gobob/bob-sdk 3.1.1 → 3.1.3
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/dist/ordinal-api/index.d.ts +3 -0
- package/dist/ordinal-api/index.js +18 -1
- package/dist/ordinal-api/index.js.map +1 -1
- package/dist/runes.d.ts +5 -0
- package/dist/runes.js +43 -0
- package/dist/runes.js.map +1 -0
- package/dist/wallet/utxo.d.ts +3 -1
- package/dist/wallet/utxo.js +99 -55
- package/dist/wallet/utxo.js.map +1 -1
- package/package.json +3 -2
|
@@ -80,6 +80,7 @@ export interface InscriptionJson<InscriptionId, SatPoint> {
|
|
|
80
80
|
content_type: string | null;
|
|
81
81
|
effective_content_type: string | null;
|
|
82
82
|
fee: number;
|
|
83
|
+
metaprotocol: string | null;
|
|
83
84
|
height: number;
|
|
84
85
|
id: InscriptionId;
|
|
85
86
|
next: InscriptionId | null;
|
|
@@ -101,8 +102,10 @@ export declare class OrdinalsClient {
|
|
|
101
102
|
getInscriptionsFromBlock(height: number): Promise<InscriptionsJson<InscriptionId>>;
|
|
102
103
|
getInscriptionsFromOutPoint(outPoint: OutPoint): Promise<OutputJson>;
|
|
103
104
|
getOutputsFromAddress(address: string, type?: 'cardinal' | 'inscribed' | 'runic' | 'any'): Promise<OutputJson[]>;
|
|
105
|
+
getOutputsFromOutPoints(outpoints: string[]): Promise<OutputJson[]>;
|
|
104
106
|
getInscriptionsFromSat(sat: number): Promise<SatJson<InscriptionId>>;
|
|
105
107
|
getInscriptionsFromStartBlock(startHeight: number): Promise<InscriptionsJson<InscriptionId>>;
|
|
106
108
|
private getJson;
|
|
109
|
+
private postJson;
|
|
107
110
|
private parseInscriptionsJson;
|
|
108
111
|
}
|
|
@@ -100,6 +100,9 @@ class OrdinalsClient {
|
|
|
100
100
|
searchParams.append('type', type);
|
|
101
101
|
return this.getJson(`${this.basePath}/outputs/${address}?${searchParams}`);
|
|
102
102
|
}
|
|
103
|
+
getOutputsFromOutPoints(outpoints) {
|
|
104
|
+
return this.postJson(`${this.basePath}/outputs`, outpoints);
|
|
105
|
+
}
|
|
103
106
|
async getInscriptionsFromSat(sat) {
|
|
104
107
|
const satJson = await this.getJson(`${this.basePath}/sat/${sat}`);
|
|
105
108
|
return {
|
|
@@ -120,7 +123,21 @@ class OrdinalsClient {
|
|
|
120
123
|
if (!response.ok) {
|
|
121
124
|
throw new Error(response.statusText);
|
|
122
125
|
}
|
|
123
|
-
return
|
|
126
|
+
return response.json();
|
|
127
|
+
}
|
|
128
|
+
async postJson(url, body) {
|
|
129
|
+
const response = await fetch(url, {
|
|
130
|
+
method: 'POST',
|
|
131
|
+
headers: {
|
|
132
|
+
'Content-Type': 'application/json',
|
|
133
|
+
Accept: 'application/json',
|
|
134
|
+
},
|
|
135
|
+
body: JSON.stringify(body),
|
|
136
|
+
});
|
|
137
|
+
if (!response.ok) {
|
|
138
|
+
throw new Error(response.statusText);
|
|
139
|
+
}
|
|
140
|
+
return response.json();
|
|
124
141
|
}
|
|
125
142
|
parseInscriptionsJson(inscriptionsJson) {
|
|
126
143
|
const ids = inscriptionsJson.ids.map((id) => InscriptionId.fromString(id));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ordinal-api/index.ts"],"names":[],"mappings":";;;AAIa,QAAA,qBAAqB,GAAG,qBAAqB,CAAC;AAM9C,QAAA,qBAAqB,GAAG,oCAAoC,CAAC;AAM7D,QAAA,qBAAqB,GAAG,oCAAoC,CAAC;AAQ1E,IAAc,aAAa,CAa1B;AAbD,WAAc,aAAa;IACvB,SAAgB,QAAQ,CAAC,EAAiB;QACtC,OAAO,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAFe,sBAAQ,WAEvB,CAAA;IAED,SAAgB,UAAU,CAAC,EAAU;QAEjC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO;YACH,IAAI;YACJ,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;SAC7B,CAAC;IACN,CAAC;IAPe,wBAAU,aAOzB,CAAA;AACL,CAAC,EAba,aAAa,6BAAb,aAAa,QAa1B;AAQD,IAAc,QAAQ,CAarB;AAbD,WAAc,QAAQ;IAClB,SAAgB,QAAQ,CAAC,EAAY;QACjC,OAAO,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;IAFe,iBAAQ,WAEvB,CAAA;IAED,SAAgB,UAAU,CAAC,EAAU;QAEjC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,OAAO;YACH,IAAI;YACJ,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;SAC3B,CAAC;IACN,CAAC;IAPe,mBAAU,aAOzB,CAAA;AACL,CAAC,EAba,QAAQ,wBAAR,QAAQ,QAarB;AAQD,IAAc,QAAQ,CAgBrB;AAhBD,WAAc,QAAQ;IAClB,SAAgB,QAAQ,CAAC,EAAY;QACjC,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;IAC5D,CAAC;IAFe,iBAAQ,WAEvB,CAAA;IAED,SAAgB,UAAU,CAAC,EAAU;QAEjC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3C,OAAO;YACH,QAAQ,EAAE;gBACN,IAAI;gBACJ,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;aAC3B;YACD,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;SAC/B,CAAC;IACN,CAAC;IAVe,mBAAU,aAUzB,CAAA;AACL,CAAC,EAhBa,QAAQ,wBAAR,QAAQ,QAgBrB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ordinal-api/index.ts"],"names":[],"mappings":"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"}
|
package/dist/runes.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as bitcoin from 'bitcoinjs-lib';
|
|
2
|
+
import { EsploraClient } from './esplora';
|
|
3
|
+
import { Runestone } from 'runestone-js';
|
|
4
|
+
export declare function parseRunestone(tx: bitcoin.Transaction): Runestone | undefined;
|
|
5
|
+
export declare function getTxRunestone(esploraClient: EsploraClient, txid: string): Promise<Runestone>;
|
package/dist/runes.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.parseRunestone = parseRunestone;
|
|
27
|
+
exports.getTxRunestone = getTxRunestone;
|
|
28
|
+
const bitcoin = __importStar(require("bitcoinjs-lib"));
|
|
29
|
+
const runestone_js_1 = require("runestone-js");
|
|
30
|
+
function parseRunestone(tx) {
|
|
31
|
+
for (const out of tx.outs) {
|
|
32
|
+
if (out.script[0] === bitcoin.opcodes.OP_RETURN && out.script[1] === bitcoin.opcodes.OP_13) {
|
|
33
|
+
const pureOutputBuffer = out.script.subarray(3);
|
|
34
|
+
return runestone_js_1.Runestone.dechiper(pureOutputBuffer);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async function getTxRunestone(esploraClient, txid) {
|
|
39
|
+
const txHex = await esploraClient.getTransactionHex(txid);
|
|
40
|
+
const tx = bitcoin.Transaction.fromHex(txHex);
|
|
41
|
+
return parseRunestone(tx);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=runes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runes.js","sourceRoot":"","sources":["../src/runes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wCAQC;AAED,wCAIC;AAnBD,uDAAyC;AAGzC,+CAAyC;AAEzC,SAAgB,cAAc,CAAC,EAAuB;IAClD,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAEzF,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAChD,OAAO,wBAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,aAA4B,EAAE,IAAY;IAC3E,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC;AAC9B,CAAC"}
|
package/dist/wallet/utxo.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Transaction } from '@scure/btc-signer';
|
|
2
2
|
import { AddressType, Network } from 'bitcoin-address-validation';
|
|
3
|
-
import { UTXO } from '../esplora';
|
|
3
|
+
import { EsploraClient, UTXO } from '../esplora';
|
|
4
|
+
import { OrdinalsClient } from '../ordinal-api';
|
|
4
5
|
export type BitcoinNetworkName = Exclude<Network, 'regtest'>;
|
|
5
6
|
export declare const getBtcNetwork: (name: BitcoinNetworkName) => {
|
|
6
7
|
bech32: string;
|
|
@@ -8,6 +9,7 @@ export declare const getBtcNetwork: (name: BitcoinNetworkName) => {
|
|
|
8
9
|
scriptHash: number;
|
|
9
10
|
wif: number;
|
|
10
11
|
};
|
|
12
|
+
export declare const findSafeUtxos: (utxos: UTXO[], cardinalOutputsSet: Set<string>, esploraClient: EsploraClient, ordinalsClient: OrdinalsClient) => Promise<UTXO[]>;
|
|
11
13
|
export interface Input {
|
|
12
14
|
txid: string;
|
|
13
15
|
index: number;
|
package/dist/wallet/utxo.js
CHANGED
|
@@ -1,15 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getBtcNetwork = void 0;
|
|
26
|
+
exports.findSafeUtxos = exports.getBtcNetwork = void 0;
|
|
4
27
|
exports.createBitcoinPsbt = createBitcoinPsbt;
|
|
5
28
|
exports.getInputFromUtxoAndTx = getInputFromUtxoAndTx;
|
|
6
29
|
exports.estimateTxFee = estimateTxFee;
|
|
7
30
|
exports.getBalance = getBalance;
|
|
31
|
+
const bitcoin = __importStar(require("bitcoinjs-lib"));
|
|
8
32
|
const btc_signer_1 = require("@scure/btc-signer");
|
|
9
33
|
const base_1 = require("@scure/base");
|
|
10
34
|
const bitcoin_address_validation_1 = require("bitcoin-address-validation");
|
|
11
35
|
const esplora_1 = require("../esplora");
|
|
12
36
|
const ordinal_api_1 = require("../ordinal-api");
|
|
37
|
+
const inscription_1 = require("../inscription");
|
|
38
|
+
const runes_1 = require("../runes");
|
|
13
39
|
const bitcoinNetworks = {
|
|
14
40
|
mainnet: btc_signer_1.NETWORK,
|
|
15
41
|
testnet: btc_signer_1.TEST_NETWORK,
|
|
@@ -18,6 +44,65 @@ const getBtcNetwork = (name) => {
|
|
|
18
44
|
return bitcoinNetworks[name];
|
|
19
45
|
};
|
|
20
46
|
exports.getBtcNetwork = getBtcNetwork;
|
|
47
|
+
const isCardinalOutput = (output) => output.inscriptions.length === 0 && Object.keys(output.runes).length === 0;
|
|
48
|
+
const isCardinalTx = async (outpoint, cardinalOutputsSet, esploraClient, ordinalsClient) => {
|
|
49
|
+
const [txHex, transaction] = await Promise.all([
|
|
50
|
+
esploraClient.getTransactionHex(outpoint.txid),
|
|
51
|
+
esploraClient.getTransaction(outpoint.txid),
|
|
52
|
+
]);
|
|
53
|
+
const tx = bitcoin.Transaction.fromHex(txHex);
|
|
54
|
+
const inscriptions = (0, inscription_1.parseInscriptions)(tx);
|
|
55
|
+
const rune = (0, runes_1.parseRunestone)(tx);
|
|
56
|
+
if (rune || inscriptions.length > 0)
|
|
57
|
+
return false;
|
|
58
|
+
if (transaction.status.confirmed)
|
|
59
|
+
return cardinalOutputsSet.has(ordinal_api_1.OutPoint.toString(outpoint));
|
|
60
|
+
const outputs = await ordinalsClient.getOutputsFromOutPoints(transaction.vin.map(ordinal_api_1.OutPoint.toString));
|
|
61
|
+
const results = await Promise.all(transaction.vin.map(async (vin, index) => {
|
|
62
|
+
if (cardinalOutputsSet.has(ordinal_api_1.OutPoint.toString(vin)))
|
|
63
|
+
return true;
|
|
64
|
+
const output = outputs[index];
|
|
65
|
+
if (output.indexed) {
|
|
66
|
+
return isCardinalOutput(output);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
return isCardinalTx(vin, cardinalOutputsSet, esploraClient, ordinalsClient);
|
|
70
|
+
}
|
|
71
|
+
}));
|
|
72
|
+
return results.every((result) => result === true);
|
|
73
|
+
};
|
|
74
|
+
const findSafeUtxos = async (utxos, cardinalOutputsSet, esploraClient, ordinalsClient) => {
|
|
75
|
+
const results = await Promise.all(utxos.map(async (utxo) => {
|
|
76
|
+
if (cardinalOutputsSet.has(ordinal_api_1.OutPoint.toString(utxo)))
|
|
77
|
+
return true;
|
|
78
|
+
return isCardinalTx(utxo, cardinalOutputsSet, esploraClient, ordinalsClient);
|
|
79
|
+
}));
|
|
80
|
+
return utxos.filter((_, index) => results[index]);
|
|
81
|
+
};
|
|
82
|
+
exports.findSafeUtxos = findSafeUtxos;
|
|
83
|
+
const getSafeUtxos = async (address, esploraClient, ordinalsClient) => {
|
|
84
|
+
const [utxos, cardinalOutputs] = await Promise.all([
|
|
85
|
+
esploraClient.getAddressUtxos(address),
|
|
86
|
+
ordinalsClient.getOutputsFromAddress(address, 'cardinal'),
|
|
87
|
+
]);
|
|
88
|
+
const cardinalOutputsSet = new Set(cardinalOutputs.map((output) => output.outpoint));
|
|
89
|
+
return (0, exports.findSafeUtxos)(utxos, cardinalOutputsSet, esploraClient, ordinalsClient);
|
|
90
|
+
};
|
|
91
|
+
const collectPossibleInputs = async (fromAddress, publicKey) => {
|
|
92
|
+
const addressInfo = (0, bitcoin_address_validation_1.getAddressInfo)(fromAddress);
|
|
93
|
+
const esploraClient = new esplora_1.EsploraClient(addressInfo.network);
|
|
94
|
+
const ordinalsClient = new ordinal_api_1.OrdinalsClient(addressInfo.network);
|
|
95
|
+
const safeUtxos = await getSafeUtxos(fromAddress, esploraClient, ordinalsClient);
|
|
96
|
+
if (safeUtxos.length === 0) {
|
|
97
|
+
throw new Error('No confirmed UTXOs');
|
|
98
|
+
}
|
|
99
|
+
return Promise.all(safeUtxos.map(async (utxo) => {
|
|
100
|
+
const hex = await esploraClient.getTransactionHex(utxo.txid);
|
|
101
|
+
const transaction = btc_signer_1.Transaction.fromRaw(Buffer.from(hex, 'hex'), { allowUnknownOutputs: true });
|
|
102
|
+
const input = getInputFromUtxoAndTx(addressInfo.network, utxo, transaction, addressInfo.type, publicKey);
|
|
103
|
+
return input;
|
|
104
|
+
}));
|
|
105
|
+
};
|
|
21
106
|
async function createBitcoinPsbt(fromAddress, toAddress, amount, publicKey, opReturnData, feeRate, confirmationTarget = 3) {
|
|
22
107
|
const addressInfo = (0, bitcoin_address_validation_1.getAddressInfo)(fromAddress);
|
|
23
108
|
const utxoSelectionStrategy = 'default';
|
|
@@ -31,27 +116,12 @@ async function createBitcoinPsbt(fromAddress, toAddress, amount, publicKey, opRe
|
|
|
31
116
|
throw new Error('Public key is required to spend from the selected address type');
|
|
32
117
|
}
|
|
33
118
|
}
|
|
119
|
+
let possibleInputs = [];
|
|
34
120
|
const esploraClient = new esplora_1.EsploraClient(addressInfo.network);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
let outputsFromAddress = [];
|
|
38
|
-
[confirmedUtxos, feeRate, outputsFromAddress] = await Promise.all([
|
|
39
|
-
esploraClient.getAddressUtxos(fromAddress),
|
|
121
|
+
[possibleInputs, feeRate] = await Promise.all([
|
|
122
|
+
collectPossibleInputs(fromAddress, publicKey),
|
|
40
123
|
feeRate === undefined ? esploraClient.getFeeEstimate(confirmationTarget) : feeRate,
|
|
41
|
-
ordinalsClient.getOutputsFromAddress(fromAddress, 'cardinal'),
|
|
42
124
|
]);
|
|
43
|
-
if (confirmedUtxos.length === 0) {
|
|
44
|
-
throw new Error('No confirmed UTXOs');
|
|
45
|
-
}
|
|
46
|
-
const outpointsSet = new Set(outputsFromAddress.map((output) => output.outpoint));
|
|
47
|
-
const possibleInputs = [];
|
|
48
|
-
await Promise.all(confirmedUtxos.map(async (utxo) => {
|
|
49
|
-
const hex = await esploraClient.getTransactionHex(utxo.txid);
|
|
50
|
-
const transaction = btc_signer_1.Transaction.fromRaw(Buffer.from(hex, 'hex'), { allowUnknownOutputs: true });
|
|
51
|
-
const input = getInputFromUtxoAndTx(addressInfo.network, utxo, transaction, addressInfo.type, publicKey);
|
|
52
|
-
if (outpointsSet.has(ordinal_api_1.OutPoint.toString(utxo)))
|
|
53
|
-
possibleInputs.push(input);
|
|
54
|
-
}));
|
|
55
125
|
const outputs = [
|
|
56
126
|
{
|
|
57
127
|
address: toAddress,
|
|
@@ -78,8 +148,7 @@ async function createBitcoinPsbt(fromAddress, toAddress, amount, publicKey, opRe
|
|
|
78
148
|
dust: BigInt(546),
|
|
79
149
|
});
|
|
80
150
|
if (!transaction || !transaction.tx) {
|
|
81
|
-
console.debug('
|
|
82
|
-
console.debug('outputsFromAddress', outputsFromAddress);
|
|
151
|
+
console.debug('possibleInputs', possibleInputs);
|
|
83
152
|
console.debug(`fromAddress: ${fromAddress}, toAddress: ${toAddress}, amount: ${amount}`);
|
|
84
153
|
console.debug(`publicKey: ${publicKey}, opReturnData: ${opReturnData}`);
|
|
85
154
|
console.debug(`feeRate: ${feeRate}, confirmationTarget: ${confirmationTarget}`);
|
|
@@ -135,27 +204,12 @@ async function estimateTxFee(fromAddress, amount, publicKey, opReturnData, feeRa
|
|
|
135
204
|
}
|
|
136
205
|
}
|
|
137
206
|
const toAddress = fromAddress;
|
|
207
|
+
let possibleInputs = [];
|
|
138
208
|
const esploraClient = new esplora_1.EsploraClient(addressInfo.network);
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
let outputsFromAddress = [];
|
|
142
|
-
[confirmedUtxos, feeRate, outputsFromAddress] = await Promise.all([
|
|
143
|
-
esploraClient.getAddressUtxos(fromAddress),
|
|
209
|
+
[possibleInputs, feeRate] = await Promise.all([
|
|
210
|
+
collectPossibleInputs(fromAddress, publicKey),
|
|
144
211
|
feeRate === undefined ? esploraClient.getFeeEstimate(confirmationTarget) : feeRate,
|
|
145
|
-
ordinalsClient.getOutputsFromAddress(fromAddress, 'cardinal'),
|
|
146
212
|
]);
|
|
147
|
-
if (confirmedUtxos.length === 0) {
|
|
148
|
-
throw new Error('No confirmed UTXOs');
|
|
149
|
-
}
|
|
150
|
-
const outpointsSet = new Set(outputsFromAddress.map((output) => output.outpoint));
|
|
151
|
-
const possibleInputs = [];
|
|
152
|
-
await Promise.all(confirmedUtxos.map(async (utxo) => {
|
|
153
|
-
const hex = await esploraClient.getTransactionHex(utxo.txid);
|
|
154
|
-
const transaction = btc_signer_1.Transaction.fromRaw(Buffer.from(hex, 'hex'), { allowUnknownOutputs: true });
|
|
155
|
-
const input = getInputFromUtxoAndTx(addressInfo.network, utxo, transaction, addressInfo.type, publicKey);
|
|
156
|
-
if (outpointsSet.has(ordinal_api_1.OutPoint.toString(utxo)))
|
|
157
|
-
possibleInputs.push(input);
|
|
158
|
-
}));
|
|
159
213
|
const outputs = [
|
|
160
214
|
{
|
|
161
215
|
address: toAddress,
|
|
@@ -186,8 +240,7 @@ async function estimateTxFee(fromAddress, amount, publicKey, opReturnData, feeRa
|
|
|
186
240
|
dust: BigInt(546),
|
|
187
241
|
});
|
|
188
242
|
if (!transaction || !transaction.tx) {
|
|
189
|
-
console.debug('
|
|
190
|
-
console.debug('outputsFromAddress', outputsFromAddress);
|
|
243
|
+
console.debug('possibleInputs', possibleInputs);
|
|
191
244
|
console.debug(`fromAddress: ${fromAddress}, amount: ${amount}`);
|
|
192
245
|
console.debug(`publicKey: ${publicKey}, opReturnData: ${opReturnData}`);
|
|
193
246
|
console.debug(`feeRate: ${feeRate}, confirmationTarget: ${confirmationTarget}`);
|
|
@@ -202,20 +255,11 @@ async function getBalance(address) {
|
|
|
202
255
|
const addressInfo = (0, bitcoin_address_validation_1.getAddressInfo)(address);
|
|
203
256
|
const esploraClient = new esplora_1.EsploraClient(addressInfo.network);
|
|
204
257
|
const ordinalsClient = new ordinal_api_1.OrdinalsClient(addressInfo.network);
|
|
205
|
-
const
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
const total = outputs.reduce((acc, output) => {
|
|
211
|
-
if (cardinalOutputsSet.has(ordinal_api_1.OutPoint.toString(output))) {
|
|
212
|
-
return acc + output.value;
|
|
213
|
-
}
|
|
214
|
-
return acc;
|
|
215
|
-
}, 0);
|
|
216
|
-
const confirmed = outputs.reduce((acc, output) => {
|
|
217
|
-
if (cardinalOutputsSet.has(ordinal_api_1.OutPoint.toString(output)) && output.confirmed) {
|
|
218
|
-
return acc + output.value;
|
|
258
|
+
const safeUtxos = await getSafeUtxos(address, esploraClient, ordinalsClient);
|
|
259
|
+
const total = safeUtxos.reduce((acc, utxo) => acc + utxo.value, 0);
|
|
260
|
+
const confirmed = safeUtxos.reduce((acc, utxo) => {
|
|
261
|
+
if (utxo.confirmed) {
|
|
262
|
+
return acc + utxo.value;
|
|
219
263
|
}
|
|
220
264
|
return acc;
|
|
221
265
|
}, 0);
|
package/dist/wallet/utxo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utxo.js","sourceRoot":"","sources":["../../src/wallet/utxo.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utxo.js","sourceRoot":"","sources":["../../src/wallet/utxo.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gobob/bob-sdk",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.3",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"scripts": {
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
"@scure/btc-signer": "^1.3.2",
|
|
44
44
|
"bitcoin-address-validation": "^2.2.3",
|
|
45
45
|
"bitcoinjs-lib": "^6.1.6",
|
|
46
|
-
"ethers": "^6.13.2"
|
|
46
|
+
"ethers": "^6.13.2",
|
|
47
|
+
"runestone-js": "0.3.0"
|
|
47
48
|
}
|
|
48
49
|
}
|