ecash-agora 2.6.16 → 3.0.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/README.md +11 -0
- package/dist/agora.js +1 -1
- package/dist/inputs.d.ts +6 -0
- package/dist/inputs.d.ts.map +1 -1
- package/dist/inputs.js +33 -1
- package/dist/inputs.js.map +1 -1
- package/dist/oneshot.d.ts +38 -1
- package/dist/oneshot.d.ts.map +1 -1
- package/dist/oneshot.js +135 -0
- package/dist/oneshot.js.map +1 -1
- package/dist/partial.d.ts +32 -3
- package/dist/partial.d.ts.map +1 -1
- package/dist/partial.js +219 -4
- package/dist/partial.js.map +1 -1
- package/package.json +1 -1
- package/tests/actions.test.ts +48 -36
- package/tests/oneshot.test.ts +260 -12
- package/tests/partial.alp.bigsats.test.ts +60 -42
- package/tests/partial.alp.test.ts +253 -30
- package/tests/partial.locktime.test.ts +11 -8
- package/tests/partial.slp.bigsats.test.ts +60 -42
- package/tests/partial.slp.test.ts +211 -14
package/README.md
CHANGED
|
@@ -291,3 +291,14 @@ Running from `bitcoin-abc/modules/ecash-agora` if your build dir is `bitcoin-abc
|
|
|
291
291
|
### 2.6.16
|
|
292
292
|
|
|
293
293
|
- Publish to catch updead `ecash-wallet` breaking change `4.0.0` [D19476](https://reviews.bitcoinabc.org/D19476)
|
|
294
|
+
|
|
295
|
+
### 2.7.0 [D19491](https://reviews.bitcoinabc.org/D19491)
|
|
296
|
+
|
|
297
|
+
- Add a `list()` method to `AgoraOneShot` for building and broadcasting SLP NFT listings with an `ecash-wallet` `Wallet`
|
|
298
|
+
- Add a `list()` method to `AgoraPartial` for building and broadcasting SLP and ALP listings with an `ecash-wallet` `Wallet`
|
|
299
|
+
|
|
300
|
+
### 3.0.0 [D19497](https://reviews.bitcoinabc.org/D19497)
|
|
301
|
+
|
|
302
|
+
**BREAKING CHANGE**
|
|
303
|
+
|
|
304
|
+
- Default to 64-bit ints for all created offers
|
package/dist/agora.js
CHANGED
|
@@ -720,7 +720,7 @@ class Agora {
|
|
|
720
720
|
* This looks at the blockchain to avoid creating an identical offer, by
|
|
721
721
|
* tweaking the enforcedLockTime.
|
|
722
722
|
*/
|
|
723
|
-
async selectParams(params, scriptIntegerBits =
|
|
723
|
+
async selectParams(params, scriptIntegerBits = 64n) {
|
|
724
724
|
// Assumes MTP is not more than 14 days in the past
|
|
725
725
|
const maxLockTime = new Date().getTime() / 1000 - 14 * 24 * 3600;
|
|
726
726
|
const minLockTime = 500000000;
|
package/dist/inputs.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Script, TxBuilderOutput, Signatory } from 'ecash-lib';
|
|
1
2
|
import { ScriptUtxo } from 'chronik-client';
|
|
2
3
|
import { AgoraOffer } from './agora';
|
|
3
4
|
export declare const DUMMY_KEYPAIR: {
|
|
@@ -19,4 +20,9 @@ export declare const getAgoraOneshotAcceptFuelInputs: <T extends ScriptUtxo>(ago
|
|
|
19
20
|
* Determine input utxos to cancel an Agora offer (Partial or ONESHOT)
|
|
20
21
|
*/
|
|
21
22
|
export declare const getAgoraCancelFuelInputs: <T extends ScriptUtxo>(agoraOffer: AgoraOffer, utxos: T[], feePerKb?: bigint) => T[];
|
|
23
|
+
/**
|
|
24
|
+
* Calculate the fee required for an offer transaction that spends an ad script output.
|
|
25
|
+
* This is used to determine how much fuel needs to be included in the ad setup transaction.
|
|
26
|
+
*/
|
|
27
|
+
export declare const getAgoraAdFuelSats: (redeemScript: Script, signatory: Signatory, offerOutputs: TxBuilderOutput[], satsPerKb: bigint) => bigint;
|
|
22
28
|
//# sourceMappingURL=inputs.d.ts.map
|
package/dist/inputs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../src/inputs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../src/inputs.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,MAAM,EAMN,eAAe,EAEf,SAAS,EACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAOrC,eAAO,MAAM,aAAa;;;CAKzB,CAAC;AAiBF;;GAEG;AACH,eAAO,MAAM,+BAA+B,GAAI,CAAC,SAAS,UAAU,EAChE,YAAY,UAAU,EACtB,OAAO,CAAC,EAAE,EACV,eAAe,MAAM,EACrB,iBAAkC,KACnC,CAAC,EA6BH,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,GAAI,CAAC,SAAS,UAAU,EAChE,YAAY,UAAU,EACtB,OAAO,CAAC,EAAE,EACV,iBAAkC,KACnC,CAAC,EA4BH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,UAAU,EACzD,YAAY,UAAU,EACtB,OAAO,CAAC,EAAE,EACV,iBAAkC,KACnC,CAAC,EA2BH,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC3B,cAAc,MAAM,EACpB,WAAW,SAAS,EACpB,cAAc,eAAe,EAAE,EAC/B,WAAW,MAAM,KAClB,MA8BF,CAAC"}
|
package/dist/inputs.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Distributed under the MIT software license, see the accompanying
|
|
4
4
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getAgoraCancelFuelInputs = exports.getAgoraOneshotAcceptFuelInputs = exports.getAgoraPartialAcceptFuelInputs = exports.DUMMY_KEYPAIR = void 0;
|
|
6
|
+
exports.getAgoraAdFuelSats = exports.getAgoraCancelFuelInputs = exports.getAgoraOneshotAcceptFuelInputs = exports.getAgoraPartialAcceptFuelInputs = exports.DUMMY_KEYPAIR = void 0;
|
|
7
7
|
const ecash_lib_1 = require("ecash-lib");
|
|
8
8
|
const DUMMY_TXID = '1111111111111111111111111111111111111111111111111111111111111111';
|
|
9
9
|
const DUMMY_WALLET_HASH = (0, ecash_lib_1.fromHex)('12'.repeat(20));
|
|
@@ -119,4 +119,36 @@ const getAgoraCancelFuelInputs = (agoraOffer, utxos, feePerKb = ecash_lib_1.DEFA
|
|
|
119
119
|
throw new Error('Insufficient utxos to cancel this offer');
|
|
120
120
|
};
|
|
121
121
|
exports.getAgoraCancelFuelInputs = getAgoraCancelFuelInputs;
|
|
122
|
+
/**
|
|
123
|
+
* Calculate the fee required for an offer transaction that spends an ad script output.
|
|
124
|
+
* This is used to determine how much fuel needs to be included in the ad setup transaction.
|
|
125
|
+
*/
|
|
126
|
+
const getAgoraAdFuelSats = (redeemScript, signatory, offerOutputs, satsPerKb) => {
|
|
127
|
+
// Build a dummy offer tx to measure its size
|
|
128
|
+
const dummyOfferTx = new ecash_lib_1.TxBuilder({
|
|
129
|
+
inputs: [
|
|
130
|
+
{
|
|
131
|
+
input: {
|
|
132
|
+
prevOut: {
|
|
133
|
+
// Use a placeholder 32-byte txid
|
|
134
|
+
txid: DUMMY_TXID,
|
|
135
|
+
// The outIdx will always be 1 in practice
|
|
136
|
+
outIdx: 1,
|
|
137
|
+
},
|
|
138
|
+
signData: {
|
|
139
|
+
// Arbitrary value that we know will cover the fee for this tx
|
|
140
|
+
sats: 100000n,
|
|
141
|
+
redeemScript,
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
signatory,
|
|
145
|
+
},
|
|
146
|
+
],
|
|
147
|
+
outputs: offerOutputs,
|
|
148
|
+
});
|
|
149
|
+
const measureTx = dummyOfferTx.sign({ ecc: new ecash_lib_1.EccDummy() });
|
|
150
|
+
const dummyOfferTxSats = BigInt(Math.ceil((measureTx.serSize() * Number(satsPerKb)) / 1000));
|
|
151
|
+
return dummyOfferTxSats;
|
|
152
|
+
};
|
|
153
|
+
exports.getAgoraAdFuelSats = getAgoraAdFuelSats;
|
|
122
154
|
//# sourceMappingURL=inputs.js.map
|
package/dist/inputs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../src/inputs.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE;;;AAEtE,
|
|
1
|
+
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../src/inputs.ts"],"names":[],"mappings":"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"}
|
package/dist/oneshot.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Ecc, Script, TxOutput, UnsignedTxInput } from 'ecash-lib';
|
|
1
|
+
import { Ecc, Script, SLP_TOKEN_TYPE_NFT1_CHILD, TxOutput, UnsignedTxInput } from 'ecash-lib';
|
|
2
|
+
import { Wallet } from 'ecash-wallet';
|
|
2
3
|
/**
|
|
3
4
|
* Agora offer that has to be accepted in "one shot", i.e. all or nothing.
|
|
4
5
|
* This is useful for offers that offer exactly 1 token, especially NFTs.
|
|
@@ -27,6 +28,42 @@ export declare class AgoraOneshot {
|
|
|
27
28
|
static fromRedeemScript(redeemScript: Script, opreturnScript: Script): AgoraOneshot;
|
|
28
29
|
adScript(): Script;
|
|
29
30
|
askedSats(): bigint;
|
|
31
|
+
/**
|
|
32
|
+
* Build and broadcast a chained transaction to list an SLP NFT token.
|
|
33
|
+
* This creates an "ad prep" transaction followed by the actual offer transaction.
|
|
34
|
+
*
|
|
35
|
+
* @param params - Parameters for listing the NFT
|
|
36
|
+
* @returns Promise resolving to broadcast result
|
|
37
|
+
* @throws Error if token type is not SLP NFT
|
|
38
|
+
*/
|
|
39
|
+
list(params: {
|
|
40
|
+
/**
|
|
41
|
+
* An initialized Wallet from ecash-wallet.
|
|
42
|
+
* This wallet must hold the NFT token to be listed.
|
|
43
|
+
*/
|
|
44
|
+
wallet: Wallet;
|
|
45
|
+
/**
|
|
46
|
+
* Token ID of the NFT to list (in big-endian hex).
|
|
47
|
+
*/
|
|
48
|
+
tokenId: string;
|
|
49
|
+
/**
|
|
50
|
+
* Token type - must be SLP_TOKEN_TYPE_NFT1_CHILD.
|
|
51
|
+
*/
|
|
52
|
+
tokenType: typeof SLP_TOKEN_TYPE_NFT1_CHILD;
|
|
53
|
+
/**
|
|
54
|
+
* Dust amount to use for the token output.
|
|
55
|
+
*/
|
|
56
|
+
dustSats?: bigint;
|
|
57
|
+
/**
|
|
58
|
+
* Fee per kB to use when building the tx.
|
|
59
|
+
*/
|
|
60
|
+
feePerKb?: bigint;
|
|
61
|
+
}): Promise<{
|
|
62
|
+
success: boolean;
|
|
63
|
+
broadcasted: string[];
|
|
64
|
+
unbroadcasted?: string[];
|
|
65
|
+
errors?: string[];
|
|
66
|
+
}>;
|
|
30
67
|
}
|
|
31
68
|
export declare const AgoraOneshotSignatory: (covenantSk: Uint8Array, covenantPk: Uint8Array, numEnforcedOutputs: number) => (ecc: Ecc, input: UnsignedTxInput) => Script;
|
|
32
69
|
export declare const AgoraOneshotCancelSignatory: (cancelSk: Uint8Array) => (ecc: Ecc, input: UnsignedTxInput) => Script;
|
package/dist/oneshot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oneshot.d.ts","sourceRoot":"","sources":["../src/oneshot.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"oneshot.d.ts","sourceRoot":"","sources":["../src/oneshot.ts"],"names":[],"mappings":"AAIA,OAAO,EAMH,GAAG,EAwBH,MAAM,EAIN,yBAAyB,EAIzB,QAAQ,EACR,eAAe,EAYlB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAe,MAAM,EAAE,MAAM,cAAc,CAAC;AAInD;;;;;;;;;;;;;;IAcI;AACJ,qBAAa,YAAY;IACrB,OAAc,gBAAgB,SAAa;IAEpC,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC5B,QAAQ,EAAE,UAAU,CAAC;gBAEhB,EACR,eAAe,EACf,QAAQ,GACX,EAAE;QACC,eAAe,EAAE,QAAQ,EAAE,CAAC;QAC5B,QAAQ,EAAE,UAAU,CAAC;KACxB;IAKD,2DAA2D;IACpD,MAAM,IAAI,MAAM;WAkET,gBAAgB,CAC1B,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACvB,YAAY;IA8CR,QAAQ,IAAI,MAAM;IAwBlB,SAAS,IAAI,MAAM;IAO1B;;;;;;;OAOG;IACU,IAAI,CAAC,MAAM,EAAE;QACtB;;;WAGG;QACH,MAAM,EAAE,MAAM,CAAC;QACf;;WAEG;QACH,OAAO,EAAE,MAAM,CAAC;QAChB;;WAEG;QACH,SAAS,EAAE,OAAO,yBAAyB,CAAC;QAC5C;;WAEG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB;;WAEG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CAkJL;AAED,eAAO,MAAM,qBAAqB,GAC9B,YAAY,UAAU,EACtB,YAAY,UAAU,EACtB,oBAAoB,MAAM,MAElB,KAAK,GAAG,EAAE,OAAO,eAAe,KAAG,MA0B9C,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,UAAU,UAAU,MACpD,KAAK,GAAG,EAAE,OAAO,eAAe,KAAG,MAa9C,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,UAAU,UAAU,MAChD,KAAK,GAAG,EAAE,OAAO,eAAe,KAAG,MAc9C,CAAC"}
|
package/dist/oneshot.js
CHANGED
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.AgoraOneshotAdSignatory = exports.AgoraOneshotCancelSignatory = exports.AgoraOneshotSignatory = exports.AgoraOneshot = void 0;
|
|
7
7
|
const ecash_lib_1 = require("ecash-lib");
|
|
8
|
+
const ecash_wallet_1 = require("ecash-wallet");
|
|
8
9
|
const consts_js_1 = require("./consts.js");
|
|
10
|
+
const inputs_js_1 = require("./inputs.js");
|
|
9
11
|
/**
|
|
10
12
|
* Agora offer that has to be accepted in "one shot", i.e. all or nothing.
|
|
11
13
|
* This is useful for offers that offer exactly 1 token, especially NFTs.
|
|
@@ -152,6 +154,139 @@ class AgoraOneshot {
|
|
|
152
154
|
askedSats() {
|
|
153
155
|
return this.enforcedOutputs.reduce((prev, output) => prev + output.sats, 0n);
|
|
154
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* Build and broadcast a chained transaction to list an SLP NFT token.
|
|
159
|
+
* This creates an "ad prep" transaction followed by the actual offer transaction.
|
|
160
|
+
*
|
|
161
|
+
* @param params - Parameters for listing the NFT
|
|
162
|
+
* @returns Promise resolving to broadcast result
|
|
163
|
+
* @throws Error if token type is not SLP NFT
|
|
164
|
+
*/
|
|
165
|
+
async list(params) {
|
|
166
|
+
// Validate token type - only SLP NFT is supported
|
|
167
|
+
if (params.tokenType.type !== 'SLP_TOKEN_TYPE_NFT1_CHILD') {
|
|
168
|
+
throw new Error('AgoraOneshot.list() only supports SLP NFT tokens (SLP_TOKEN_TYPE_NFT1_CHILD)');
|
|
169
|
+
}
|
|
170
|
+
const dustSats = params.dustSats ?? ecash_lib_1.DEFAULT_DUST_SATS;
|
|
171
|
+
const feePerKb = params.feePerKb ?? ecash_lib_1.DEFAULT_FEE_SATS_PER_KB;
|
|
172
|
+
// Build the ad script and P2SH address
|
|
173
|
+
const agoraAdScript = this.adScript();
|
|
174
|
+
const agoraAdP2sh = ecash_lib_1.Script.p2sh((0, ecash_lib_1.shaRmd160)(agoraAdScript.bytecode));
|
|
175
|
+
// Determine the offer tx parameters before building txs, so we can
|
|
176
|
+
// accurately calculate its fee
|
|
177
|
+
const agoraScript = this.script();
|
|
178
|
+
const agoraP2sh = ecash_lib_1.Script.p2sh((0, ecash_lib_1.shaRmd160)(agoraScript.bytecode));
|
|
179
|
+
const offerTargetOutputs = [
|
|
180
|
+
{
|
|
181
|
+
sats: 0n,
|
|
182
|
+
script: (0, ecash_lib_1.slpSend)(params.tokenId, ecash_lib_1.SLP_NFT1_CHILD, [1n]),
|
|
183
|
+
},
|
|
184
|
+
{ sats: dustSats, script: agoraP2sh },
|
|
185
|
+
];
|
|
186
|
+
const offerTxFuelSats = (0, inputs_js_1.getAgoraAdFuelSats)(agoraAdScript, (0, exports.AgoraOneshotAdSignatory)(params.wallet.sk), offerTargetOutputs, feePerKb);
|
|
187
|
+
// The ad prep tx must include an output with fuel that covers this fee
|
|
188
|
+
// This will be dust + fee
|
|
189
|
+
const adFuelOutputSats = dustSats + offerTxFuelSats;
|
|
190
|
+
// Build the ad setup tx using ecash-wallet (without broadcasting)
|
|
191
|
+
let adSetupTx;
|
|
192
|
+
let adSetupTxid;
|
|
193
|
+
try {
|
|
194
|
+
// Build payment.Action for ad setup transaction
|
|
195
|
+
// This sends the NFT to the P2SH address with fuel for the offer tx
|
|
196
|
+
// Output 0: OP_RETURN (ecash-wallet will build the script from tokenActions)
|
|
197
|
+
// Output 1: P2SH output with NFT (for the offer tx)
|
|
198
|
+
// ecash-wallet will automatically select the NFT UTXO based on the token send action
|
|
199
|
+
const adSetupOutputs = [
|
|
200
|
+
{ sats: 0n }, // OP_RETURN - ecash-wallet will build the script
|
|
201
|
+
{
|
|
202
|
+
sats: adFuelOutputSats,
|
|
203
|
+
script: agoraAdP2sh,
|
|
204
|
+
tokenId: params.tokenId,
|
|
205
|
+
atoms: 1n, // NFT quantity is always 1
|
|
206
|
+
},
|
|
207
|
+
];
|
|
208
|
+
const adSetupAction = {
|
|
209
|
+
outputs: adSetupOutputs,
|
|
210
|
+
tokenActions: [
|
|
211
|
+
{
|
|
212
|
+
type: 'SEND',
|
|
213
|
+
tokenId: params.tokenId,
|
|
214
|
+
tokenType: params.tokenType,
|
|
215
|
+
},
|
|
216
|
+
],
|
|
217
|
+
feePerKb,
|
|
218
|
+
};
|
|
219
|
+
// Build without broadcasting to get the txid
|
|
220
|
+
const builtAdSetupAction = params.wallet
|
|
221
|
+
.action(adSetupAction)
|
|
222
|
+
.build();
|
|
223
|
+
adSetupTx = builtAdSetupAction.txs[0];
|
|
224
|
+
adSetupTxid = builtAdSetupAction.builtTxs[0].txid;
|
|
225
|
+
}
|
|
226
|
+
catch (err) {
|
|
227
|
+
console.error(`Error building NFT listing ad tx`, err);
|
|
228
|
+
return {
|
|
229
|
+
success: false,
|
|
230
|
+
broadcasted: [],
|
|
231
|
+
unbroadcasted: [],
|
|
232
|
+
errors: [`Error building NFT listing ad tx: ${err}`],
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
// Build the offer transaction
|
|
236
|
+
// This uses a P2SH input with custom signatory, so we build it manually with TxBuilder
|
|
237
|
+
let offerTx;
|
|
238
|
+
try {
|
|
239
|
+
const offerInputs = [
|
|
240
|
+
{
|
|
241
|
+
input: {
|
|
242
|
+
prevOut: {
|
|
243
|
+
// Use the txid from the built (but not yet broadcast) ad tx
|
|
244
|
+
txid: adSetupTxid,
|
|
245
|
+
outIdx: 1,
|
|
246
|
+
},
|
|
247
|
+
signData: {
|
|
248
|
+
sats: adFuelOutputSats,
|
|
249
|
+
redeemScript: agoraAdScript,
|
|
250
|
+
},
|
|
251
|
+
},
|
|
252
|
+
signatory: (0, exports.AgoraOneshotAdSignatory)(params.wallet.sk),
|
|
253
|
+
},
|
|
254
|
+
];
|
|
255
|
+
// Build the offer transaction using TxBuilder
|
|
256
|
+
const offerTxBuilder = new ecash_lib_1.TxBuilder({
|
|
257
|
+
inputs: offerInputs,
|
|
258
|
+
outputs: offerTargetOutputs,
|
|
259
|
+
});
|
|
260
|
+
offerTx = offerTxBuilder.sign({
|
|
261
|
+
feePerKb,
|
|
262
|
+
dustSats,
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
catch (err) {
|
|
266
|
+
console.error(`Error building NFT listing offer tx`, err);
|
|
267
|
+
return {
|
|
268
|
+
success: false,
|
|
269
|
+
broadcasted: [],
|
|
270
|
+
unbroadcasted: [],
|
|
271
|
+
errors: [`Error building NFT listing offer tx: ${err}`],
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
// Broadcast both transactions together
|
|
275
|
+
try {
|
|
276
|
+
const builtAction = new ecash_wallet_1.BuiltAction(params.wallet, [adSetupTx, offerTx], feePerKb);
|
|
277
|
+
const broadcastResult = await builtAction.broadcast();
|
|
278
|
+
return broadcastResult;
|
|
279
|
+
}
|
|
280
|
+
catch (err) {
|
|
281
|
+
console.error(`Error broadcasting NFT listing txs`, err);
|
|
282
|
+
return {
|
|
283
|
+
success: false,
|
|
284
|
+
broadcasted: [],
|
|
285
|
+
unbroadcasted: [],
|
|
286
|
+
errors: [`Error broadcasting NFT listing txs: ${err}`],
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
}
|
|
155
290
|
}
|
|
156
291
|
exports.AgoraOneshot = AgoraOneshot;
|
|
157
292
|
AgoraOneshot.COVENANT_VARIANT = 'ONESHOT';
|
package/dist/oneshot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oneshot.js","sourceRoot":"","sources":["../src/oneshot.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE;;;AAEtE,
|
|
1
|
+
{"version":3,"file":"oneshot.js","sourceRoot":"","sources":["../src/oneshot.ts"],"names":[],"mappings":"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"}
|
package/dist/partial.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Ecc, Script, Signatory, UnsignedTxInput } from 'ecash-lib';
|
|
2
|
+
import { Wallet } from 'ecash-wallet';
|
|
2
3
|
/**
|
|
3
4
|
* "Human viable" parameters for partial Agora offers, can serve as a basis to
|
|
4
5
|
* approximate the actual Script parameters via AgoraPartial.approximateParams.
|
|
@@ -214,9 +215,8 @@ export declare class AgoraPartial {
|
|
|
214
215
|
* @param params Offer params to approximate, see AgoraPartialParams for
|
|
215
216
|
* details.
|
|
216
217
|
* @param scriptIntegerBits How many bits Script integers have on the
|
|
217
|
-
* network.
|
|
218
|
-
*
|
|
219
|
-
* increase accuracy.
|
|
218
|
+
* network. Defaults to 64-bit for better accuracy. Can be set to
|
|
219
|
+
* 32 for compatibility with older networks.
|
|
220
220
|
**/
|
|
221
221
|
static approximateParams(params: AgoraPartialParams, scriptIntegerBits?: bigint): AgoraPartial;
|
|
222
222
|
updateScriptLen(): void;
|
|
@@ -278,6 +278,35 @@ export declare class AgoraPartial {
|
|
|
278
278
|
* and only the maker can spend it.
|
|
279
279
|
**/
|
|
280
280
|
adScript(): Script;
|
|
281
|
+
/**
|
|
282
|
+
* Build and broadcast a transaction to list tokens.
|
|
283
|
+
* For ALP tokens, this creates a single transaction.
|
|
284
|
+
* For SLP tokens (non-NFT), this creates a chained transaction with an "advertising" tx followed by the offer tx.
|
|
285
|
+
*
|
|
286
|
+
* @param params - Parameters for listing the tokens
|
|
287
|
+
* @returns Promise resolving to broadcast result
|
|
288
|
+
* @throws Error if token type is SLP NFT
|
|
289
|
+
*/
|
|
290
|
+
list(params: {
|
|
291
|
+
/**
|
|
292
|
+
* An initialized Wallet from ecash-wallet.
|
|
293
|
+
* This wallet must hold the tokens to be listed.
|
|
294
|
+
*/
|
|
295
|
+
wallet: Wallet;
|
|
296
|
+
/**
|
|
297
|
+
* Dust amount to use for the token output.
|
|
298
|
+
*/
|
|
299
|
+
dustSats?: bigint;
|
|
300
|
+
/**
|
|
301
|
+
* Fee per kB to use when building the tx.
|
|
302
|
+
*/
|
|
303
|
+
feePerKb?: bigint;
|
|
304
|
+
}): Promise<{
|
|
305
|
+
success: boolean;
|
|
306
|
+
broadcasted: string[];
|
|
307
|
+
unbroadcasted?: string[];
|
|
308
|
+
errors?: string[];
|
|
309
|
+
}>;
|
|
281
310
|
}
|
|
282
311
|
export declare const AgoraPartialSignatory: (params: AgoraPartial, acceptedTruncAtoms: bigint, covenantSk: Uint8Array, covenantPk: Uint8Array) => Signatory;
|
|
283
312
|
export declare const AgoraPartialCancelSignatory: (makerSk: Uint8Array, tokenProtocol: "SLP" | "ALP") => Signatory;
|
package/dist/partial.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"partial.d.ts","sourceRoot":"","sources":["../src/partial.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"partial.d.ts","sourceRoot":"","sources":["../src/partial.ts"],"names":[],"mappings":"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"}
|