ecash-agora 2.3.0 → 2.5.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 +8 -0
- package/dist/agora.d.ts +91 -1
- package/dist/agora.d.ts.map +1 -1
- package/dist/agora.js +101 -1
- package/dist/agora.js.map +1 -1
- package/package.json +4 -4
- package/tests/oneshot.test.ts +290 -0
- package/tests/partial-helper-alp.ts +10 -8
- package/tests/partial-helper-slp.ts +9 -8
- package/tests/partial.alp.bigsats.test.ts +10 -31
- package/tests/partial.alp.test.ts +42 -27
- package/tests/partial.slp.bigsats.test.ts +10 -31
- package/tests/partial.slp.test.ts +42 -28
package/README.md
CHANGED
|
@@ -207,3 +207,11 @@ Running from `bitcoin-abc/modules/ecash-agora` if your build dir is `bitcoin-abc
|
|
|
207
207
|
### 2.3.0
|
|
208
208
|
|
|
209
209
|
- Expose precision param to allow app creation of 64-bit int offers [D18829](https://reviews.bitcoinabc.org/D18829)
|
|
210
|
+
|
|
211
|
+
### 2.4.0
|
|
212
|
+
|
|
213
|
+
- Add new `take` method to `AgoraOffer` that will automatically build and broadcast an agora acceptTx given a `Wallet` from `ecash-wallet` [D18833](https://reviews.bitcoinabc.org/D18833)
|
|
214
|
+
|
|
215
|
+
### 2.5.0
|
|
216
|
+
|
|
217
|
+
- Add new `cancel` method to `AgoraOffer` that will automatically build and broadcast an agora cancelTx given a `Wallet` from `ecash-wallet` [D18842](https://reviews.bitcoinabc.org/D18842)
|
package/dist/agora.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ChronikClient, Token, WsEndpoint } from 'chronik-client';
|
|
2
2
|
import { Op, OutPoint, Script, Tx, TxBuilderInput, TxInput } from 'ecash-lib';
|
|
3
|
+
import { Wallet } from 'ecash-wallet';
|
|
3
4
|
import { AgoraOneshot } from './oneshot.js';
|
|
4
5
|
import { AgoraPartial, AgoraPartialParams } from './partial.js';
|
|
5
6
|
/** Offer variant, determines the Script used to enforce the offer */
|
|
@@ -44,7 +45,7 @@ export declare class AgoraOffer {
|
|
|
44
45
|
takenInfo?: TakenInfo;
|
|
45
46
|
});
|
|
46
47
|
/**
|
|
47
|
-
* Build
|
|
48
|
+
* Build and broadcast an acceptTx, effectively taking this offer.
|
|
48
49
|
*
|
|
49
50
|
* Agora offers are UTXOs on the blockchain that can be accepted by anyone
|
|
50
51
|
* sending sufficient satoshis to a required output.
|
|
@@ -82,6 +83,60 @@ export declare class AgoraOffer {
|
|
|
82
83
|
/** Allow accepting an offer such that the remaining quantity is unacceptable */
|
|
83
84
|
allowUnspendable?: boolean;
|
|
84
85
|
}): Tx;
|
|
86
|
+
/**
|
|
87
|
+
* Build and broadcast a tx that accepts an agora offer
|
|
88
|
+
* according to user-provided params, to a user-provided
|
|
89
|
+
* ecash-wallet Wallet
|
|
90
|
+
*
|
|
91
|
+
* NB there is no option to "only build" by passing a Wallet, but this can be
|
|
92
|
+
* accomplished using the acceptTx method above
|
|
93
|
+
*/
|
|
94
|
+
take(
|
|
95
|
+
/**
|
|
96
|
+
* NB these params are identical to the params required for acceptTx method above,
|
|
97
|
+
* except
|
|
98
|
+
*
|
|
99
|
+
* 1) We require a Wallet
|
|
100
|
+
* 2) We get fuelInputs from the provided wallet instead of accepting them
|
|
101
|
+
* as a param
|
|
102
|
+
*/
|
|
103
|
+
params: {
|
|
104
|
+
/**
|
|
105
|
+
* An initialized Wallet from ecash-wallet
|
|
106
|
+
* This is the wallet that will take the offer
|
|
107
|
+
*/
|
|
108
|
+
wallet: Wallet;
|
|
109
|
+
/**
|
|
110
|
+
* Arbitrary secret key to sign the accept tx with. Recommended to set
|
|
111
|
+
* this to a random key. Must be paired with covenantSk.
|
|
112
|
+
*/
|
|
113
|
+
covenantSk: Uint8Array;
|
|
114
|
+
/**
|
|
115
|
+
* Arbitrary public key to sign the accept tx with, must be paired with
|
|
116
|
+
* covenantSk.
|
|
117
|
+
*/
|
|
118
|
+
covenantPk: Uint8Array;
|
|
119
|
+
/** Script to send the tokens and the leftover sats (if any) to. */
|
|
120
|
+
recipientScript: Script;
|
|
121
|
+
/** For partial offers: Number of accepted atoms (base tokens) */
|
|
122
|
+
acceptedAtoms?: bigint;
|
|
123
|
+
/** Dust amount to use for the token output. */
|
|
124
|
+
dustSats?: bigint;
|
|
125
|
+
/** Fee per kB to use when building the tx. */
|
|
126
|
+
feePerKb?: bigint;
|
|
127
|
+
/** Allow accepting an offer such that the remaining quantity is unacceptable */
|
|
128
|
+
allowUnspendable?: boolean;
|
|
129
|
+
}): Promise<{
|
|
130
|
+
success: boolean;
|
|
131
|
+
broadcasted: string[];
|
|
132
|
+
unbroadcasted: string[];
|
|
133
|
+
errors: string[];
|
|
134
|
+
} | {
|
|
135
|
+
success: boolean;
|
|
136
|
+
broadcasted: string[];
|
|
137
|
+
unbroadcasted?: undefined;
|
|
138
|
+
errors?: undefined;
|
|
139
|
+
}>;
|
|
85
140
|
/**
|
|
86
141
|
* How many extra satoshis are required to fuel this offer so it can be
|
|
87
142
|
* broadcast on the network, excluding the asked sats.
|
|
@@ -126,6 +181,41 @@ export declare class AgoraOffer {
|
|
|
126
181
|
/** Fee per kB to use when building the tx. */
|
|
127
182
|
feePerKb?: bigint;
|
|
128
183
|
}): Tx;
|
|
184
|
+
/**
|
|
185
|
+
* Convenience method to cancel an offer using a Wallet
|
|
186
|
+
* The cancel tx is broadcast by the Wallet and canceled
|
|
187
|
+
* tokens / leftover sats are returned to this wallet
|
|
188
|
+
*
|
|
189
|
+
* NB this wallet must have the correct cancelSk to
|
|
190
|
+
* actually cancel the offer, otherwise expect an error
|
|
191
|
+
*
|
|
192
|
+
* NB you can see in the oneshot.test.ts that cancelTx can be used
|
|
193
|
+
* to "relist" an agora oneshot offer; this method will not do this
|
|
194
|
+
*
|
|
195
|
+
* Though we could add a relist() method to also simplify that procedure
|
|
196
|
+
*/
|
|
197
|
+
cancel(params: {
|
|
198
|
+
/**
|
|
199
|
+
* An initialized Wallet from ecash-wallet
|
|
200
|
+
* This is the wallet that will take the offer
|
|
201
|
+
*
|
|
202
|
+
* Note this wallet must have the correct cancelSk
|
|
203
|
+
* for the method to work
|
|
204
|
+
*
|
|
205
|
+
* This is also the wallet that will receive canceled
|
|
206
|
+
* tokens and leftover sats
|
|
207
|
+
*/
|
|
208
|
+
wallet: Wallet;
|
|
209
|
+
/** Dust amount to use for the token output. */
|
|
210
|
+
dustSats?: bigint;
|
|
211
|
+
/** Fee per kB to use when building the tx. */
|
|
212
|
+
feePerKb?: bigint;
|
|
213
|
+
}): Promise<{
|
|
214
|
+
success: boolean;
|
|
215
|
+
broadcasted: string[];
|
|
216
|
+
unbroadcasted?: string[];
|
|
217
|
+
errors?: string[];
|
|
218
|
+
}>;
|
|
129
219
|
/**
|
|
130
220
|
* How many extra satoshis are required to fuel cancelling this offer,
|
|
131
221
|
* so the cancel tx can be broadcast on the network, excluding the asked
|
package/dist/agora.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agora.d.ts","sourceRoot":"","sources":["../src/agora.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,aAAa,EAGb,KAAK,EAGL,UAAU,
|
|
1
|
+
{"version":3,"file":"agora.d.ts","sourceRoot":"","sources":["../src/agora.ts"],"names":[],"mappings":"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"}
|
package/dist/agora.js
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.scriptOps = exports.Agora = exports.AgoraOffer = void 0;
|
|
7
7
|
const ecash_lib_1 = require("ecash-lib");
|
|
8
|
+
const ecash_wallet_1 = require("ecash-wallet");
|
|
9
|
+
const inputs_1 = require("./inputs");
|
|
8
10
|
const oneshot_js_1 = require("./oneshot.js");
|
|
9
11
|
const partial_js_1 = require("./partial.js");
|
|
10
12
|
const TOKEN_ID_PREFIX = (0, ecash_lib_1.toHex)((0, ecash_lib_1.strToBytes)('T'));
|
|
@@ -32,7 +34,7 @@ class AgoraOffer {
|
|
|
32
34
|
}
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
|
-
* Build
|
|
37
|
+
* Build and broadcast an acceptTx, effectively taking this offer.
|
|
36
38
|
*
|
|
37
39
|
* Agora offers are UTXOs on the blockchain that can be accepted by anyone
|
|
38
40
|
* sending sufficient satoshis to a required output.
|
|
@@ -59,6 +61,65 @@ class AgoraOffer {
|
|
|
59
61
|
});
|
|
60
62
|
return txBuild.sign({ feePerKb, dustSats });
|
|
61
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Build and broadcast a tx that accepts an agora offer
|
|
66
|
+
* according to user-provided params, to a user-provided
|
|
67
|
+
* ecash-wallet Wallet
|
|
68
|
+
*
|
|
69
|
+
* NB there is no option to "only build" by passing a Wallet, but this can be
|
|
70
|
+
* accomplished using the acceptTx method above
|
|
71
|
+
*/
|
|
72
|
+
async take(
|
|
73
|
+
/**
|
|
74
|
+
* NB these params are identical to the params required for acceptTx method above,
|
|
75
|
+
* except
|
|
76
|
+
*
|
|
77
|
+
* 1) We require a Wallet
|
|
78
|
+
* 2) We get fuelInputs from the provided wallet instead of accepting them
|
|
79
|
+
* as a param
|
|
80
|
+
*/
|
|
81
|
+
params) {
|
|
82
|
+
// Use default params for unspecified
|
|
83
|
+
const dustSats = params.dustSats ?? ecash_lib_1.DEFAULT_DUST_SATS;
|
|
84
|
+
const feePerKb = params.feePerKb ?? ecash_lib_1.DEFAULT_FEE_SATS_PER_KB;
|
|
85
|
+
const allowUnspendable = params.allowUnspendable ?? false;
|
|
86
|
+
const wallet = params.wallet;
|
|
87
|
+
// Get fuel inputs
|
|
88
|
+
let fuelUtxos;
|
|
89
|
+
if (this.variant.type === 'ONESHOT') {
|
|
90
|
+
fuelUtxos = (0, inputs_1.getAgoraOneshotAcceptFuelInputs)(this, wallet.spendableSatsOnlyUtxos(), params.feePerKb);
|
|
91
|
+
}
|
|
92
|
+
else if (typeof params.acceptedAtoms === 'bigint') {
|
|
93
|
+
fuelUtxos = (0, inputs_1.getAgoraPartialAcceptFuelInputs)(this, wallet.spendableSatsOnlyUtxos(), params.acceptedAtoms, params.feePerKb);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
throw new Error('Must provide acceptedAtoms to accept a partial offer');
|
|
97
|
+
}
|
|
98
|
+
// Sign inputs using Wallet
|
|
99
|
+
// NB the take() method only supports ALL_BIP143 sighash type (for now),
|
|
100
|
+
// i.e. "normal" eCash txs and not postage
|
|
101
|
+
const finalizedInputs = fuelUtxos.map(utxo => wallet.p2pkhUtxoToBuilderInput(utxo, ecash_lib_1.ALL_BIP143));
|
|
102
|
+
// Build the tx using available ecash-agora method
|
|
103
|
+
const txBuild = this._acceptTxBuilder({
|
|
104
|
+
covenantSk: params.covenantSk,
|
|
105
|
+
covenantPk: params.covenantPk,
|
|
106
|
+
fuelInputs: finalizedInputs,
|
|
107
|
+
extraOutputs: [
|
|
108
|
+
{
|
|
109
|
+
sats: dustSats,
|
|
110
|
+
script: params.recipientScript,
|
|
111
|
+
},
|
|
112
|
+
params.recipientScript,
|
|
113
|
+
],
|
|
114
|
+
acceptedAtoms: params.acceptedAtoms,
|
|
115
|
+
allowUnspendable,
|
|
116
|
+
});
|
|
117
|
+
const signedTx = txBuild.sign({ feePerKb, dustSats });
|
|
118
|
+
// Broadcast using Wallet, and match the return type of ecash-wallet broadcasts
|
|
119
|
+
const builtAction = new ecash_wallet_1.BuiltAction(wallet, [signedTx], feePerKb);
|
|
120
|
+
const broadcastResult = await builtAction.broadcast();
|
|
121
|
+
return broadcastResult;
|
|
122
|
+
}
|
|
62
123
|
/**
|
|
63
124
|
* How many extra satoshis are required to fuel this offer so it can be
|
|
64
125
|
* broadcast on the network, excluding the asked sats.
|
|
@@ -189,6 +250,45 @@ class AgoraOffer {
|
|
|
189
250
|
});
|
|
190
251
|
return txBuild.sign({ feePerKb, dustSats });
|
|
191
252
|
}
|
|
253
|
+
/**
|
|
254
|
+
* Convenience method to cancel an offer using a Wallet
|
|
255
|
+
* The cancel tx is broadcast by the Wallet and canceled
|
|
256
|
+
* tokens / leftover sats are returned to this wallet
|
|
257
|
+
*
|
|
258
|
+
* NB this wallet must have the correct cancelSk to
|
|
259
|
+
* actually cancel the offer, otherwise expect an error
|
|
260
|
+
*
|
|
261
|
+
* NB you can see in the oneshot.test.ts that cancelTx can be used
|
|
262
|
+
* to "relist" an agora oneshot offer; this method will not do this
|
|
263
|
+
*
|
|
264
|
+
* Though we could add a relist() method to also simplify that procedure
|
|
265
|
+
*/
|
|
266
|
+
async cancel(params) {
|
|
267
|
+
const dustSats = params.dustSats ?? ecash_lib_1.DEFAULT_DUST_SATS;
|
|
268
|
+
const feePerKb = params.feePerKb ?? ecash_lib_1.DEFAULT_FEE_SATS_PER_KB;
|
|
269
|
+
// Determine fuel utxos
|
|
270
|
+
const fuelUtxos = (0, inputs_1.getAgoraCancelFuelInputs)(this, params.wallet.spendableSatsOnlyUtxos(), params.feePerKb);
|
|
271
|
+
// Sign inputs using Wallet
|
|
272
|
+
// NB the cancel() method only supports ALL_BIP143 sighash type (for now),
|
|
273
|
+
// i.e. "normal" eCash txs and not postage
|
|
274
|
+
const fuelInputs = fuelUtxos.map(utxo => params.wallet.p2pkhUtxoToBuilderInput(utxo, ecash_lib_1.ALL_BIP143));
|
|
275
|
+
const txBuild = this._cancelTxBuilder({
|
|
276
|
+
cancelSk: params.wallet.sk,
|
|
277
|
+
fuelInputs,
|
|
278
|
+
extraOutputs: [
|
|
279
|
+
{
|
|
280
|
+
sats: dustSats,
|
|
281
|
+
script: params.wallet.script,
|
|
282
|
+
},
|
|
283
|
+
params.wallet.script,
|
|
284
|
+
],
|
|
285
|
+
});
|
|
286
|
+
const signedTx = txBuild.sign({ feePerKb, dustSats });
|
|
287
|
+
// Broadcast using Wallet, and match the return type of ecash-wallet broadcasts
|
|
288
|
+
const builtAction = new ecash_wallet_1.BuiltAction(params.wallet, [signedTx], feePerKb);
|
|
289
|
+
const broadcastResult = await builtAction.broadcast();
|
|
290
|
+
return broadcastResult;
|
|
291
|
+
}
|
|
192
292
|
/**
|
|
193
293
|
* How many extra satoshis are required to fuel cancelling this offer,
|
|
194
294
|
* so the cancel tx can be broadcast on the network, excluding the asked
|
package/dist/agora.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agora.js","sourceRoot":"","sources":["../src/agora.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agora.js","sourceRoot":"","sources":["../src/agora.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ecash-agora",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "Library for interacting with the eCash Agora protocol",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"@types/node": "^20.12.7",
|
|
35
35
|
"chai": "^4.4.1",
|
|
36
36
|
"chai-as-promised": "^7.1.1",
|
|
37
|
-
"ecash-wallet": "^2.
|
|
37
|
+
"ecash-wallet": "^2.1.3",
|
|
38
38
|
"mocha": "^10.4.0",
|
|
39
39
|
"mocha-junit-reporter": "^2.2.1",
|
|
40
40
|
"nyc": "^15.1.0",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"typescript": "^5.4.3"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"chronik-client": "^3.4.
|
|
48
|
-
"ecash-lib": "^4.
|
|
47
|
+
"chronik-client": "^3.4.1",
|
|
48
|
+
"ecash-lib": "^4.5.1"
|
|
49
49
|
}
|
|
50
50
|
}
|
package/tests/oneshot.test.ts
CHANGED
|
@@ -32,6 +32,7 @@ import {
|
|
|
32
32
|
} from '../src/oneshot.js';
|
|
33
33
|
import { Agora, AgoraOffer } from '../src/agora.js';
|
|
34
34
|
import { EventEmitter, once } from 'node:events';
|
|
35
|
+
import { Wallet } from 'ecash-wallet/src/wallet.js';
|
|
35
36
|
|
|
36
37
|
use(chaiAsPromised);
|
|
37
38
|
|
|
@@ -704,4 +705,293 @@ describe('SLP', () => {
|
|
|
704
705
|
numPages: 1,
|
|
705
706
|
});
|
|
706
707
|
});
|
|
708
|
+
it('We can cancel an Agora Oneshot offer using cancel()', async () => {
|
|
709
|
+
// Create Agora object to access trades
|
|
710
|
+
const agora = new Agora(chronik);
|
|
711
|
+
|
|
712
|
+
const cancelerSk = fromHex('99'.repeat(32));
|
|
713
|
+
const cancelerWallet = Wallet.fromSk(cancelerSk, chronik);
|
|
714
|
+
|
|
715
|
+
const cancelerPk = cancelerWallet.pk;
|
|
716
|
+
|
|
717
|
+
const cancelerP2pkh = cancelerWallet.script;
|
|
718
|
+
|
|
719
|
+
await runner.sendToScript(50000n, cancelerP2pkh);
|
|
720
|
+
|
|
721
|
+
await cancelerWallet.sync();
|
|
722
|
+
|
|
723
|
+
const utxos = cancelerWallet.utxos;
|
|
724
|
+
expect(utxos.length).to.equal(1);
|
|
725
|
+
const utxo = utxos[0];
|
|
726
|
+
|
|
727
|
+
// 1. Seller creates an NFT1 GROUP token
|
|
728
|
+
const txBuildGenesisGroup = new TxBuilder({
|
|
729
|
+
inputs: [
|
|
730
|
+
{
|
|
731
|
+
input: {
|
|
732
|
+
prevOut: utxo.outpoint,
|
|
733
|
+
signData: {
|
|
734
|
+
sats: utxo.sats,
|
|
735
|
+
outputScript: cancelerP2pkh,
|
|
736
|
+
},
|
|
737
|
+
},
|
|
738
|
+
signatory: P2PKHSignatory(
|
|
739
|
+
cancelerSk,
|
|
740
|
+
cancelerPk,
|
|
741
|
+
ALL_BIP143,
|
|
742
|
+
),
|
|
743
|
+
},
|
|
744
|
+
],
|
|
745
|
+
outputs: [
|
|
746
|
+
{
|
|
747
|
+
sats: 0n,
|
|
748
|
+
script: slpGenesis(
|
|
749
|
+
SLP_NFT1_GROUP,
|
|
750
|
+
{
|
|
751
|
+
tokenTicker: 'SLP NFT1 GROUP TOKEN',
|
|
752
|
+
decimals: 4,
|
|
753
|
+
},
|
|
754
|
+
1n,
|
|
755
|
+
),
|
|
756
|
+
},
|
|
757
|
+
{ sats: 10000n, script: cancelerP2pkh },
|
|
758
|
+
],
|
|
759
|
+
});
|
|
760
|
+
const genesisTx = txBuildGenesisGroup.sign();
|
|
761
|
+
const genesisTxid = (await chronik.broadcastTx(genesisTx.ser())).txid;
|
|
762
|
+
const groupTokenId = genesisTxid;
|
|
763
|
+
|
|
764
|
+
expect(await chronik.token(genesisTxid)).to.deep.equal({
|
|
765
|
+
tokenId: groupTokenId,
|
|
766
|
+
tokenType: SLP_TOKEN_TYPE_NFT1_GROUP,
|
|
767
|
+
genesisInfo: {
|
|
768
|
+
tokenTicker: 'SLP NFT1 GROUP TOKEN',
|
|
769
|
+
tokenName: '',
|
|
770
|
+
url: '',
|
|
771
|
+
hash: '',
|
|
772
|
+
decimals: 4,
|
|
773
|
+
},
|
|
774
|
+
timeFirstSeen: 1300000000,
|
|
775
|
+
});
|
|
776
|
+
|
|
777
|
+
// 2. Seller creates an NFT1 CHILD token using the group token
|
|
778
|
+
const txBuildGenesisChild = new TxBuilder({
|
|
779
|
+
inputs: [
|
|
780
|
+
{
|
|
781
|
+
input: {
|
|
782
|
+
prevOut: {
|
|
783
|
+
txid: genesisTxid,
|
|
784
|
+
outIdx: 1,
|
|
785
|
+
},
|
|
786
|
+
signData: {
|
|
787
|
+
sats: 10000n,
|
|
788
|
+
outputScript: cancelerP2pkh,
|
|
789
|
+
},
|
|
790
|
+
},
|
|
791
|
+
signatory: P2PKHSignatory(
|
|
792
|
+
cancelerSk,
|
|
793
|
+
cancelerPk,
|
|
794
|
+
ALL_BIP143,
|
|
795
|
+
),
|
|
796
|
+
},
|
|
797
|
+
],
|
|
798
|
+
outputs: [
|
|
799
|
+
{
|
|
800
|
+
sats: 0n,
|
|
801
|
+
script: slpGenesis(
|
|
802
|
+
SLP_NFT1_CHILD,
|
|
803
|
+
{
|
|
804
|
+
tokenTicker: 'SLP NFT1 CHILD TOKEN',
|
|
805
|
+
decimals: 0,
|
|
806
|
+
},
|
|
807
|
+
1n,
|
|
808
|
+
),
|
|
809
|
+
},
|
|
810
|
+
{ sats: 8000n, script: cancelerP2pkh },
|
|
811
|
+
],
|
|
812
|
+
});
|
|
813
|
+
const genesisChildTx = txBuildGenesisChild.sign();
|
|
814
|
+
const genesisChildTxid = (
|
|
815
|
+
await chronik.broadcastTx(genesisChildTx.ser())
|
|
816
|
+
).txid;
|
|
817
|
+
const childTokenId = genesisChildTxid;
|
|
818
|
+
|
|
819
|
+
expect(await chronik.token(childTokenId)).to.deep.equal({
|
|
820
|
+
tokenId: childTokenId,
|
|
821
|
+
tokenType: SLP_TOKEN_TYPE_NFT1_CHILD,
|
|
822
|
+
genesisInfo: {
|
|
823
|
+
tokenTicker: 'SLP NFT1 CHILD TOKEN',
|
|
824
|
+
tokenName: '',
|
|
825
|
+
url: '',
|
|
826
|
+
hash: '',
|
|
827
|
+
decimals: 0,
|
|
828
|
+
},
|
|
829
|
+
timeFirstSeen: 1300000000,
|
|
830
|
+
});
|
|
831
|
+
|
|
832
|
+
const emitter = new EventEmitter();
|
|
833
|
+
const ws = chronik.ws({
|
|
834
|
+
onMessage: async msg => {
|
|
835
|
+
if (!emitter.emit('ws', msg)) {
|
|
836
|
+
console.warn('Emitted msg without any listeners', msg);
|
|
837
|
+
}
|
|
838
|
+
},
|
|
839
|
+
});
|
|
840
|
+
await ws.waitForOpen();
|
|
841
|
+
agora.subscribeWs(ws, {
|
|
842
|
+
type: 'TOKEN_ID',
|
|
843
|
+
tokenId: childTokenId,
|
|
844
|
+
});
|
|
845
|
+
const listenNext = () => once(emitter, 'ws') as Promise<[MsgTxClient]>;
|
|
846
|
+
|
|
847
|
+
// 3. Seller sends the NFT to an ad setup output for an Agora Oneshot
|
|
848
|
+
// covenant that asks for 80000 sats
|
|
849
|
+
const enforcedOutputs: TxOutput[] = [
|
|
850
|
+
{
|
|
851
|
+
sats: BigInt(0),
|
|
852
|
+
script: slpSend(childTokenId, SLP_NFT1_CHILD, [0n, 1n]),
|
|
853
|
+
},
|
|
854
|
+
{ sats: BigInt(80000), script: cancelerP2pkh },
|
|
855
|
+
];
|
|
856
|
+
const agoraOneshot = new AgoraOneshot({
|
|
857
|
+
enforcedOutputs,
|
|
858
|
+
cancelPk: cancelerPk,
|
|
859
|
+
});
|
|
860
|
+
const agoraAdScript = agoraOneshot.adScript();
|
|
861
|
+
const agoraAdP2sh = Script.p2sh(shaRmd160(agoraAdScript.bytecode));
|
|
862
|
+
const txBuildAdSetup = new TxBuilder({
|
|
863
|
+
inputs: [
|
|
864
|
+
{
|
|
865
|
+
input: {
|
|
866
|
+
prevOut: {
|
|
867
|
+
txid: genesisChildTxid,
|
|
868
|
+
outIdx: 1,
|
|
869
|
+
},
|
|
870
|
+
signData: {
|
|
871
|
+
sats: 8000n,
|
|
872
|
+
outputScript: cancelerP2pkh,
|
|
873
|
+
},
|
|
874
|
+
},
|
|
875
|
+
signatory: P2PKHSignatory(
|
|
876
|
+
cancelerSk,
|
|
877
|
+
cancelerPk,
|
|
878
|
+
ALL_BIP143,
|
|
879
|
+
),
|
|
880
|
+
},
|
|
881
|
+
],
|
|
882
|
+
outputs: [
|
|
883
|
+
{
|
|
884
|
+
sats: 0n,
|
|
885
|
+
script: slpSend(childTokenId, SLP_NFT1_CHILD, [1n]),
|
|
886
|
+
},
|
|
887
|
+
{ sats: 7000n, script: agoraAdP2sh },
|
|
888
|
+
],
|
|
889
|
+
});
|
|
890
|
+
const adSetupTx = txBuildAdSetup.sign();
|
|
891
|
+
const adSetupTxid = (await chronik.broadcastTx(adSetupTx.ser())).txid;
|
|
892
|
+
|
|
893
|
+
// 4. Seller finishes offer setup + sends NFT to the advertised P2SH
|
|
894
|
+
const agoraScript = agoraOneshot.script();
|
|
895
|
+
const agoraP2sh = Script.p2sh(shaRmd160(agoraScript.bytecode));
|
|
896
|
+
const txBuildOffer = new TxBuilder({
|
|
897
|
+
inputs: [
|
|
898
|
+
{
|
|
899
|
+
input: {
|
|
900
|
+
prevOut: {
|
|
901
|
+
txid: adSetupTxid,
|
|
902
|
+
outIdx: 1,
|
|
903
|
+
},
|
|
904
|
+
signData: {
|
|
905
|
+
sats: 7000n,
|
|
906
|
+
redeemScript: agoraAdScript,
|
|
907
|
+
},
|
|
908
|
+
},
|
|
909
|
+
signatory: AgoraOneshotAdSignatory(cancelerSk),
|
|
910
|
+
},
|
|
911
|
+
],
|
|
912
|
+
outputs: [
|
|
913
|
+
{
|
|
914
|
+
sats: 0n,
|
|
915
|
+
script: slpSend(childTokenId, SLP_NFT1_CHILD, [1n]),
|
|
916
|
+
},
|
|
917
|
+
{ sats: 546n, script: agoraP2sh },
|
|
918
|
+
],
|
|
919
|
+
});
|
|
920
|
+
const offerTx = txBuildOffer.sign();
|
|
921
|
+
const offerPromise = listenNext();
|
|
922
|
+
const offerTxid = (await chronik.broadcastTx(offerTx.ser())).txid;
|
|
923
|
+
const offerOutpoint: OutPoint = {
|
|
924
|
+
txid: offerTxid,
|
|
925
|
+
outIdx: 1,
|
|
926
|
+
};
|
|
927
|
+
const offerTxBuilderInput: TxInput = {
|
|
928
|
+
prevOut: offerOutpoint,
|
|
929
|
+
signData: {
|
|
930
|
+
redeemScript: agoraScript,
|
|
931
|
+
sats: 546n,
|
|
932
|
+
},
|
|
933
|
+
};
|
|
934
|
+
|
|
935
|
+
// Expected created offer
|
|
936
|
+
const expectedOffer = new AgoraOffer({
|
|
937
|
+
variant: {
|
|
938
|
+
type: 'ONESHOT',
|
|
939
|
+
params: agoraOneshot,
|
|
940
|
+
},
|
|
941
|
+
outpoint: offerOutpoint,
|
|
942
|
+
txBuilderInput: offerTxBuilderInput,
|
|
943
|
+
token: {
|
|
944
|
+
tokenId: childTokenId,
|
|
945
|
+
tokenType: SLP_TOKEN_TYPE_NFT1_CHILD,
|
|
946
|
+
atoms: 1n,
|
|
947
|
+
isMintBaton: false,
|
|
948
|
+
},
|
|
949
|
+
status: 'OPEN',
|
|
950
|
+
});
|
|
951
|
+
|
|
952
|
+
const [offerMsg] = await offerPromise;
|
|
953
|
+
expect(offerMsg.type).to.equal('Tx');
|
|
954
|
+
expect(offerMsg.msgType).to.equal('TX_ADDED_TO_MEMPOOL');
|
|
955
|
+
expect(offerMsg.txid).to.equal(offerTxid);
|
|
956
|
+
|
|
957
|
+
// 5. Buyer searches for NFT trades, finds the advertised one
|
|
958
|
+
expect(await agora.allOfferedTokenIds()).to.deep.equal([childTokenId]);
|
|
959
|
+
|
|
960
|
+
// Query by group token ID
|
|
961
|
+
expect(
|
|
962
|
+
await agora.activeOffersByGroupTokenId(groupTokenId),
|
|
963
|
+
).to.deep.equal([expectedOffer]);
|
|
964
|
+
|
|
965
|
+
// Query by child token ID
|
|
966
|
+
expect(await agora.activeOffersByTokenId(childTokenId)).to.deep.equal([
|
|
967
|
+
expectedOffer,
|
|
968
|
+
]);
|
|
969
|
+
|
|
970
|
+
// Query by cancelPk
|
|
971
|
+
expect(
|
|
972
|
+
await agora.activeOffersByPubKey(toHex(cancelerPk)),
|
|
973
|
+
).to.deep.equal([expectedOffer]);
|
|
974
|
+
|
|
975
|
+
// We can cancel the offer using cancel()
|
|
976
|
+
// We need a utxo to spend to cancel this offer
|
|
977
|
+
await runner.sendToScript(50000n, cancelerP2pkh);
|
|
978
|
+
await cancelerWallet.sync();
|
|
979
|
+
await expectedOffer.cancel({
|
|
980
|
+
wallet: cancelerWallet,
|
|
981
|
+
});
|
|
982
|
+
|
|
983
|
+
// We can no longer find the offer
|
|
984
|
+
expect(await agora.allOfferedTokenIds()).to.deep.equal([]);
|
|
985
|
+
expect(await agora.offeredGroupTokenIds()).to.deep.equal([]);
|
|
986
|
+
expect(await agora.offeredFungibleTokenIds()).to.deep.equal([]);
|
|
987
|
+
expect(
|
|
988
|
+
await agora.activeOffersByGroupTokenId(groupTokenId),
|
|
989
|
+
).to.deep.equal([]);
|
|
990
|
+
expect(await agora.activeOffersByTokenId(childTokenId)).to.deep.equal(
|
|
991
|
+
[],
|
|
992
|
+
);
|
|
993
|
+
expect(
|
|
994
|
+
await agora.activeOffersByPubKey(toHex(cancelerPk)),
|
|
995
|
+
).to.deep.equal([]);
|
|
996
|
+
});
|
|
707
997
|
});
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
TxBuilderInput,
|
|
17
17
|
TxBuilderOutput,
|
|
18
18
|
} from 'ecash-lib';
|
|
19
|
+
import { Wallet } from 'ecash-wallet';
|
|
19
20
|
import { expect } from 'chai';
|
|
20
21
|
|
|
21
22
|
import { AgoraPartial } from '../src/partial.js';
|
|
@@ -124,22 +125,23 @@ export async function takeAlpOffer(params: {
|
|
|
124
125
|
chronik: ChronikClient;
|
|
125
126
|
offer: AgoraOffer;
|
|
126
127
|
takerSk: Uint8Array;
|
|
127
|
-
takerInput: TxBuilderInput;
|
|
128
128
|
acceptedAtoms: bigint;
|
|
129
129
|
allowUnspendable?: boolean;
|
|
130
130
|
}) {
|
|
131
131
|
const takerSk = params.takerSk;
|
|
132
|
-
const
|
|
133
|
-
const
|
|
134
|
-
const takerP2pkh =
|
|
135
|
-
|
|
136
|
-
|
|
132
|
+
const takerWallet = Wallet.fromSk(takerSk, params.chronik);
|
|
133
|
+
const takerPk = takerWallet.pk;
|
|
134
|
+
const takerP2pkh = takerWallet.script;
|
|
135
|
+
|
|
136
|
+
await takerWallet.sync();
|
|
137
|
+
const broadcastResult = await params.offer.take({
|
|
138
|
+
wallet: takerWallet,
|
|
139
|
+
covenantSk: takerSk,
|
|
137
140
|
covenantPk: takerPk,
|
|
138
|
-
fuelInputs: [params.takerInput],
|
|
139
141
|
recipientScript: takerP2pkh,
|
|
140
142
|
acceptedAtoms: params.acceptedAtoms,
|
|
141
143
|
allowUnspendable: params.allowUnspendable,
|
|
142
144
|
});
|
|
143
|
-
const acceptTxid =
|
|
145
|
+
const acceptTxid = broadcastResult.broadcasted[0];
|
|
144
146
|
return acceptTxid;
|
|
145
147
|
}
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
TxBuilder,
|
|
15
15
|
TxBuilderInput,
|
|
16
16
|
} from 'ecash-lib';
|
|
17
|
+
import { Wallet } from 'ecash-wallet';
|
|
17
18
|
import { expect } from 'chai';
|
|
18
19
|
|
|
19
20
|
import { AgoraPartial, AgoraPartialAdSignatory } from '../src/partial.js';
|
|
@@ -132,22 +133,22 @@ export async function takeSlpOffer(params: {
|
|
|
132
133
|
chronik: ChronikClient;
|
|
133
134
|
offer: AgoraOffer;
|
|
134
135
|
takerSk: Uint8Array;
|
|
135
|
-
takerInput: TxBuilderInput;
|
|
136
136
|
acceptedAtoms: bigint;
|
|
137
137
|
allowUnspendable?: boolean;
|
|
138
138
|
}) {
|
|
139
139
|
const takerSk = params.takerSk;
|
|
140
|
-
const
|
|
141
|
-
const
|
|
142
|
-
const takerP2pkh =
|
|
143
|
-
|
|
144
|
-
|
|
140
|
+
const takerWallet = Wallet.fromSk(takerSk, params.chronik);
|
|
141
|
+
const takerPk = takerWallet.pk;
|
|
142
|
+
const takerP2pkh = takerWallet.script;
|
|
143
|
+
await takerWallet.sync();
|
|
144
|
+
const broadcastResult = await params.offer.take({
|
|
145
|
+
wallet: takerWallet,
|
|
146
|
+
covenantSk: takerSk,
|
|
145
147
|
covenantPk: takerPk,
|
|
146
|
-
fuelInputs: [params.takerInput],
|
|
147
148
|
recipientScript: takerP2pkh,
|
|
148
149
|
acceptedAtoms: params.acceptedAtoms,
|
|
149
150
|
allowUnspendable: params.allowUnspendable,
|
|
150
151
|
});
|
|
151
|
-
const acceptTxid =
|
|
152
|
+
const acceptTxid = broadcastResult.broadcasted[0];
|
|
152
153
|
return acceptTxid;
|
|
153
154
|
}
|
|
@@ -53,7 +53,10 @@ async function makeBuilderInputs(
|
|
|
53
53
|
runner: TestRunner,
|
|
54
54
|
values: bigint[],
|
|
55
55
|
): Promise<TxBuilderInput[]> {
|
|
56
|
-
const txid = await runner.
|
|
56
|
+
const txid = await runner.sendToTwoScripts(
|
|
57
|
+
{ script: makerScript, sats: values[0] },
|
|
58
|
+
{ script: takerScript, sats: values[1] },
|
|
59
|
+
);
|
|
57
60
|
return values.map((sats, outIdx) => ({
|
|
58
61
|
input: {
|
|
59
62
|
prevOut: {
|
|
@@ -84,10 +87,7 @@ describe('AgoraPartial ALP 7450M XEC vs 2p48-1 full accept', () => {
|
|
|
84
87
|
});
|
|
85
88
|
|
|
86
89
|
it('AgoraPartial ALP 7450M XEC vs 2p48-1 full accept', async () => {
|
|
87
|
-
const [fuelInput
|
|
88
|
-
10000n,
|
|
89
|
-
BIGSATS,
|
|
90
|
-
]);
|
|
90
|
+
const [fuelInput] = await makeBuilderInputs(runner, [10000n, BIGSATS]);
|
|
91
91
|
|
|
92
92
|
const agora = new Agora(chronik);
|
|
93
93
|
const agoraPartial = await agora.selectParams({
|
|
@@ -133,7 +133,6 @@ describe('AgoraPartial ALP 7450M XEC vs 2p48-1 full accept', () => {
|
|
|
133
133
|
chronik,
|
|
134
134
|
offer,
|
|
135
135
|
takerSk,
|
|
136
|
-
takerInput,
|
|
137
136
|
acceptedAtoms: agoraPartial.offeredAtoms(),
|
|
138
137
|
});
|
|
139
138
|
|
|
@@ -178,10 +177,7 @@ describe('AgoraPartial 7450M XEC vs 2p48-1 small accept', () => {
|
|
|
178
177
|
});
|
|
179
178
|
|
|
180
179
|
it('AgoraPartial ALP 7450M XEC vs 2p48-1 small accept', async () => {
|
|
181
|
-
const [fuelInput
|
|
182
|
-
10000n,
|
|
183
|
-
BIGSATS,
|
|
184
|
-
]);
|
|
180
|
+
const [fuelInput] = await makeBuilderInputs(runner, [10000n, BIGSATS]);
|
|
185
181
|
|
|
186
182
|
const agora = new Agora(chronik);
|
|
187
183
|
const agoraPartial = await agora.selectParams({
|
|
@@ -229,7 +225,6 @@ describe('AgoraPartial 7450M XEC vs 2p48-1 small accept', () => {
|
|
|
229
225
|
chronik,
|
|
230
226
|
offer,
|
|
231
227
|
takerSk,
|
|
232
|
-
takerInput,
|
|
233
228
|
acceptedAtoms,
|
|
234
229
|
});
|
|
235
230
|
|
|
@@ -282,10 +277,7 @@ describe('AgoraPartial 7450M XEC vs 2p47-1 full accept', () => {
|
|
|
282
277
|
});
|
|
283
278
|
|
|
284
279
|
it('AgoraPartial ALP 7450M XEC vs 2p47-1 full accept', async () => {
|
|
285
|
-
const [fuelInput
|
|
286
|
-
10000n,
|
|
287
|
-
BIGSATS,
|
|
288
|
-
]);
|
|
280
|
+
const [fuelInput] = await makeBuilderInputs(runner, [10000n, BIGSATS]);
|
|
289
281
|
|
|
290
282
|
const agora = new Agora(chronik);
|
|
291
283
|
const agoraPartial = await agora.selectParams({
|
|
@@ -330,7 +322,6 @@ describe('AgoraPartial 7450M XEC vs 2p47-1 full accept', () => {
|
|
|
330
322
|
chronik,
|
|
331
323
|
offer,
|
|
332
324
|
takerSk,
|
|
333
|
-
takerInput,
|
|
334
325
|
acceptedAtoms: agoraPartial.offeredAtoms(),
|
|
335
326
|
});
|
|
336
327
|
|
|
@@ -378,10 +369,7 @@ describe('AgoraPartial ALP 7450M XEC vs 2p47-1 small accept', () => {
|
|
|
378
369
|
});
|
|
379
370
|
|
|
380
371
|
it('AgoraPartial ALP 7450M XEC vs 2p47-1 small accept', async () => {
|
|
381
|
-
const [fuelInput
|
|
382
|
-
10000n,
|
|
383
|
-
BIGSATS,
|
|
384
|
-
]);
|
|
372
|
+
const [fuelInput] = await makeBuilderInputs(runner, [10000n, BIGSATS]);
|
|
385
373
|
|
|
386
374
|
const agora = new Agora(chronik);
|
|
387
375
|
const agoraPartial = await agora.selectParams({
|
|
@@ -429,7 +417,6 @@ describe('AgoraPartial ALP 7450M XEC vs 2p47-1 small accept', () => {
|
|
|
429
417
|
chronik,
|
|
430
418
|
offer,
|
|
431
419
|
takerSk,
|
|
432
|
-
takerInput,
|
|
433
420
|
acceptedAtoms,
|
|
434
421
|
});
|
|
435
422
|
|
|
@@ -482,10 +469,7 @@ describe('AgoraPartial ALP 7450M XEC vs 100 full accept', () => {
|
|
|
482
469
|
});
|
|
483
470
|
|
|
484
471
|
it('AgoraPartial ALP 7450M XEC vs 100 full accept', async () => {
|
|
485
|
-
const [fuelInput
|
|
486
|
-
10000n,
|
|
487
|
-
BIGSATS,
|
|
488
|
-
]);
|
|
472
|
+
const [fuelInput] = await makeBuilderInputs(runner, [10000n, BIGSATS]);
|
|
489
473
|
|
|
490
474
|
const agora = new Agora(chronik);
|
|
491
475
|
const agoraPartial = await agora.selectParams({
|
|
@@ -529,7 +513,6 @@ describe('AgoraPartial ALP 7450M XEC vs 100 full accept', () => {
|
|
|
529
513
|
chronik,
|
|
530
514
|
offer,
|
|
531
515
|
takerSk,
|
|
532
|
-
takerInput,
|
|
533
516
|
acceptedAtoms: 100n,
|
|
534
517
|
});
|
|
535
518
|
const acceptTx = await chronik.tx(acceptTxid);
|
|
@@ -574,10 +557,7 @@ describe('AgoraPartial ALP 7450M XEC vs 100 small accept', () => {
|
|
|
574
557
|
});
|
|
575
558
|
|
|
576
559
|
it('AgoraPartial ALP 7450M XEC vs 100 small accept', async () => {
|
|
577
|
-
const [fuelInput
|
|
578
|
-
10000n,
|
|
579
|
-
BIGSATS,
|
|
580
|
-
]);
|
|
560
|
+
const [fuelInput] = await makeBuilderInputs(runner, [10000n, BIGSATS]);
|
|
581
561
|
|
|
582
562
|
const agora = new Agora(chronik);
|
|
583
563
|
const agoraPartial = await agora.selectParams({
|
|
@@ -617,7 +597,6 @@ describe('AgoraPartial ALP 7450M XEC vs 100 small accept', () => {
|
|
|
617
597
|
chronik,
|
|
618
598
|
offer,
|
|
619
599
|
takerSk,
|
|
620
|
-
takerInput,
|
|
621
600
|
acceptedAtoms: 1n,
|
|
622
601
|
});
|
|
623
602
|
const acceptTx = await chronik.tx(acceptTxid);
|
|
@@ -24,6 +24,7 @@ import { TestRunner } from 'ecash-lib/dist/test/testRunner.js';
|
|
|
24
24
|
import { AgoraPartial } from '../src/partial.js';
|
|
25
25
|
import { makeAlpOffer, takeAlpOffer } from './partial-helper-alp.js';
|
|
26
26
|
import { Agora, TakenInfo } from '../src/agora.js';
|
|
27
|
+
import { Wallet } from 'ecash-wallet/src/wallet.js';
|
|
27
28
|
|
|
28
29
|
use(chaiAsPromised);
|
|
29
30
|
|
|
@@ -57,7 +58,10 @@ describe('AgoraPartial ALP', () => {
|
|
|
57
58
|
async function makeBuilderInputs(
|
|
58
59
|
values: bigint[],
|
|
59
60
|
): Promise<TxBuilderInput[]> {
|
|
61
|
+
// NB for these "not big sats" tests, we can just send to both, no need to sendToTwoScripts
|
|
60
62
|
const txid = await runner.sendToScript(values, makerScript);
|
|
63
|
+
// Send some cash to the taker, since the accept() tests spend from this wallet
|
|
64
|
+
await runner.sendToScript(values, takerScript);
|
|
61
65
|
return values.map((sats, outIdx) => ({
|
|
62
66
|
input: {
|
|
63
67
|
prevOut: {
|
|
@@ -417,6 +421,7 @@ describe('AgoraPartial ALP', () => {
|
|
|
417
421
|
},
|
|
418
422
|
];
|
|
419
423
|
|
|
424
|
+
let cancelTxsMatchCount = 0;
|
|
420
425
|
for (const testCase of TEST_CASES) {
|
|
421
426
|
it(`AgoraPartial ALP ${testCase.offeredAtoms} for ${testCase.info}`, async () => {
|
|
422
427
|
const agora = new Agora(chronik);
|
|
@@ -429,10 +434,7 @@ describe('AgoraPartial ALP', () => {
|
|
|
429
434
|
});
|
|
430
435
|
const askedSats = agoraPartial.askedSats(testCase.acceptedAtoms);
|
|
431
436
|
const requiredSats = askedSats + 2000n;
|
|
432
|
-
const [fuelInput
|
|
433
|
-
4000n,
|
|
434
|
-
requiredSats,
|
|
435
|
-
]);
|
|
437
|
+
const [fuelInput] = await makeBuilderInputs([4000n, requiredSats]);
|
|
436
438
|
|
|
437
439
|
const offer = await makeAlpOffer({
|
|
438
440
|
chronik,
|
|
@@ -444,12 +446,10 @@ describe('AgoraPartial ALP', () => {
|
|
|
444
446
|
chronik,
|
|
445
447
|
takerSk,
|
|
446
448
|
offer,
|
|
447
|
-
takerInput,
|
|
448
449
|
acceptedAtoms: testCase.acceptedAtoms,
|
|
449
450
|
allowUnspendable: testCase.allowUnspendable,
|
|
450
451
|
});
|
|
451
452
|
const acceptTx = await chronik.tx(acceptTxid);
|
|
452
|
-
// TODO we do not even get here, keep debugging
|
|
453
453
|
const offeredAtoms = agoraPartial.offeredAtoms();
|
|
454
454
|
const isFullAccept = testCase.acceptedAtoms == offeredAtoms;
|
|
455
455
|
if (isFullAccept) {
|
|
@@ -543,17 +543,40 @@ describe('AgoraPartial ALP', () => {
|
|
|
543
543
|
recipientScript: makerScript,
|
|
544
544
|
extraInputs: [fuelInput], // dummy input for measuring
|
|
545
545
|
});
|
|
546
|
-
const
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
const
|
|
555
|
-
|
|
556
|
-
|
|
546
|
+
const cancelTx = newOffer.cancelTx({
|
|
547
|
+
cancelSk: makerSk,
|
|
548
|
+
fuelInputs: await makeBuilderInputs([cancelFeeSats]),
|
|
549
|
+
recipientScript: makerScript,
|
|
550
|
+
});
|
|
551
|
+
const cancelTxid = cancelTx.txid();
|
|
552
|
+
|
|
553
|
+
// Let's build and broadcast using cancel() instead
|
|
554
|
+
const cancelWallet = Wallet.fromSk(makerSk, chronik);
|
|
555
|
+
await cancelWallet.sync();
|
|
556
|
+
const cancelResult = await newOffer.cancel({
|
|
557
|
+
wallet: cancelWallet,
|
|
558
|
+
});
|
|
559
|
+
const broadcastCancelTxid = cancelResult.broadcasted[0];
|
|
560
|
+
if (broadcastCancelTxid === cancelTxid) {
|
|
561
|
+
cancelTxsMatchCount++;
|
|
562
|
+
console.log(
|
|
563
|
+
`${cancelTxsMatchCount} of ${TEST_CASES.length} produce equal txids with cancelTx() and cancel()`,
|
|
564
|
+
);
|
|
565
|
+
|
|
566
|
+
// Between ~5 and ~8 of 46 of these txs are identical from each method
|
|
567
|
+
|
|
568
|
+
// On inspection, when cancel() txid does not match,
|
|
569
|
+
// it is because cancel has selected different fuel inputs
|
|
570
|
+
// This is expected behavior, these txs still show change
|
|
571
|
+
// going to the cancel wallet as expected
|
|
572
|
+
}
|
|
573
|
+
const cancelChronikTx = await chronik.tx(broadcastCancelTxid);
|
|
574
|
+
expect(cancelChronikTx.outputs[1].token?.atoms).to.equal(
|
|
575
|
+
leftoverTokens,
|
|
576
|
+
);
|
|
577
|
+
expect(cancelChronikTx.outputs[1].outputScript).to.equal(
|
|
578
|
+
makerScriptHex,
|
|
579
|
+
);
|
|
557
580
|
|
|
558
581
|
// takerIndex is 2 for full accept, 3 for partial accept
|
|
559
582
|
const takerIndex = isFullAccept ? 2 : 3;
|
|
@@ -611,10 +634,7 @@ describe('AgoraPartial ALP', () => {
|
|
|
611
634
|
});
|
|
612
635
|
const askedSats = agoraPartial.askedSats(thisTestCase.acceptedAtoms);
|
|
613
636
|
const requiredSats = askedSats + 2000n;
|
|
614
|
-
const [fuelInput
|
|
615
|
-
4000n,
|
|
616
|
-
requiredSats,
|
|
617
|
-
]);
|
|
637
|
+
const [fuelInput] = await makeBuilderInputs([4000n, requiredSats]);
|
|
618
638
|
|
|
619
639
|
const offer = await makeAlpOffer({
|
|
620
640
|
chronik,
|
|
@@ -639,7 +659,6 @@ describe('AgoraPartial ALP', () => {
|
|
|
639
659
|
chronik,
|
|
640
660
|
takerSk,
|
|
641
661
|
offer,
|
|
642
|
-
takerInput,
|
|
643
662
|
acceptedAtoms: thisTestCase.acceptedAtoms,
|
|
644
663
|
allowUnspendable: false,
|
|
645
664
|
}),
|
|
@@ -678,10 +697,7 @@ describe('AgoraPartial ALP', () => {
|
|
|
678
697
|
const acceptedAtoms = 500n;
|
|
679
698
|
const askedSats = agoraPartial.askedSats(acceptedAtoms);
|
|
680
699
|
const requiredSats = askedSats + 2000n;
|
|
681
|
-
const [fuelInput
|
|
682
|
-
4000n,
|
|
683
|
-
requiredSats,
|
|
684
|
-
]);
|
|
700
|
+
const [fuelInput] = await makeBuilderInputs([4000n, requiredSats]);
|
|
685
701
|
|
|
686
702
|
const offer = await makeAlpOffer({
|
|
687
703
|
chronik,
|
|
@@ -703,7 +719,6 @@ describe('AgoraPartial ALP', () => {
|
|
|
703
719
|
chronik,
|
|
704
720
|
takerSk,
|
|
705
721
|
offer,
|
|
706
|
-
takerInput,
|
|
707
722
|
acceptedAtoms: acceptedAtoms,
|
|
708
723
|
allowUnspendable: false,
|
|
709
724
|
}),
|
|
@@ -51,7 +51,10 @@ async function makeBuilderInputs(
|
|
|
51
51
|
runner: TestRunner,
|
|
52
52
|
values: bigint[],
|
|
53
53
|
): Promise<TxBuilderInput[]> {
|
|
54
|
-
const txid = await runner.
|
|
54
|
+
const txid = await runner.sendToTwoScripts(
|
|
55
|
+
{ script: makerScript, sats: values[0] },
|
|
56
|
+
{ script: takerScript, sats: values[1] },
|
|
57
|
+
);
|
|
55
58
|
return values.map((sats, outIdx) => ({
|
|
56
59
|
input: {
|
|
57
60
|
prevOut: {
|
|
@@ -82,10 +85,7 @@ describe('Agora Partial 7450M XEC vs 2p64-1 full accept', () => {
|
|
|
82
85
|
});
|
|
83
86
|
|
|
84
87
|
it('Agora Partial 7450M XEC vs 2p64-1 full accept', async () => {
|
|
85
|
-
const [fuelInput
|
|
86
|
-
10000n,
|
|
87
|
-
BIGSATS,
|
|
88
|
-
]);
|
|
88
|
+
const [fuelInput] = await makeBuilderInputs(runner, [10000n, BIGSATS]);
|
|
89
89
|
|
|
90
90
|
const agora = new Agora(chronik);
|
|
91
91
|
const agoraPartial = await agora.selectParams({
|
|
@@ -131,7 +131,6 @@ describe('Agora Partial 7450M XEC vs 2p64-1 full accept', () => {
|
|
|
131
131
|
chronik,
|
|
132
132
|
offer,
|
|
133
133
|
takerSk,
|
|
134
|
-
takerInput,
|
|
135
134
|
acceptedAtoms: agoraPartial.offeredAtoms(),
|
|
136
135
|
});
|
|
137
136
|
|
|
@@ -173,10 +172,7 @@ describe('Agora Partial 7450M XEC vs 2p64-1 small accept', () => {
|
|
|
173
172
|
});
|
|
174
173
|
|
|
175
174
|
it('Agora Partial 7450M XEC vs 2p64-1 small accept', async () => {
|
|
176
|
-
const [fuelInput
|
|
177
|
-
10000n,
|
|
178
|
-
BIGSATS,
|
|
179
|
-
]);
|
|
175
|
+
const [fuelInput] = await makeBuilderInputs(runner, [10000n, BIGSATS]);
|
|
180
176
|
|
|
181
177
|
const agora = new Agora(chronik);
|
|
182
178
|
const agoraPartial = await agora.selectParams({
|
|
@@ -224,7 +220,6 @@ describe('Agora Partial 7450M XEC vs 2p64-1 small accept', () => {
|
|
|
224
220
|
chronik,
|
|
225
221
|
offer,
|
|
226
222
|
takerSk,
|
|
227
|
-
takerInput,
|
|
228
223
|
acceptedAtoms,
|
|
229
224
|
});
|
|
230
225
|
|
|
@@ -274,10 +269,7 @@ describe('Agora Partial 7450M XEC vs 2p63-1 full accept', () => {
|
|
|
274
269
|
});
|
|
275
270
|
|
|
276
271
|
it('Agora Partial 7450M XEC vs 2p63-1 full accept', async () => {
|
|
277
|
-
const [fuelInput
|
|
278
|
-
10000n,
|
|
279
|
-
BIGSATS,
|
|
280
|
-
]);
|
|
272
|
+
const [fuelInput] = await makeBuilderInputs(runner, [10000n, BIGSATS]);
|
|
281
273
|
|
|
282
274
|
const agora = new Agora(chronik);
|
|
283
275
|
const agoraPartial = await agora.selectParams({
|
|
@@ -326,7 +318,6 @@ describe('Agora Partial 7450M XEC vs 2p63-1 full accept', () => {
|
|
|
326
318
|
chronik,
|
|
327
319
|
offer,
|
|
328
320
|
takerSk,
|
|
329
|
-
takerInput,
|
|
330
321
|
acceptedAtoms,
|
|
331
322
|
});
|
|
332
323
|
|
|
@@ -369,10 +360,7 @@ describe('Agora Partial 7450M XEC vs 2p63-1 small accept', () => {
|
|
|
369
360
|
});
|
|
370
361
|
|
|
371
362
|
it('Agora Partial 7450M XEC vs 2p63-1 small accept', async () => {
|
|
372
|
-
const [fuelInput
|
|
373
|
-
10000n,
|
|
374
|
-
BIGSATS,
|
|
375
|
-
]);
|
|
363
|
+
const [fuelInput] = await makeBuilderInputs(runner, [10000n, BIGSATS]);
|
|
376
364
|
|
|
377
365
|
const agora = new Agora(chronik);
|
|
378
366
|
const agoraPartial = await agora.selectParams({
|
|
@@ -420,7 +408,6 @@ describe('Agora Partial 7450M XEC vs 2p63-1 small accept', () => {
|
|
|
420
408
|
chronik,
|
|
421
409
|
offer,
|
|
422
410
|
takerSk,
|
|
423
|
-
takerInput,
|
|
424
411
|
acceptedAtoms,
|
|
425
412
|
});
|
|
426
413
|
|
|
@@ -470,10 +457,7 @@ describe('Agora Partial 7450M XEC vs 100 full accept', () => {
|
|
|
470
457
|
});
|
|
471
458
|
|
|
472
459
|
it('Agora Partial 7450M XEC vs 100 full accept', async () => {
|
|
473
|
-
const [fuelInput
|
|
474
|
-
10000n,
|
|
475
|
-
BIGSATS,
|
|
476
|
-
]);
|
|
460
|
+
const [fuelInput] = await makeBuilderInputs(runner, [10000n, BIGSATS]);
|
|
477
461
|
|
|
478
462
|
const agora = new Agora(chronik);
|
|
479
463
|
const agoraPartial = await agora.selectParams({
|
|
@@ -517,7 +501,6 @@ describe('Agora Partial 7450M XEC vs 100 full accept', () => {
|
|
|
517
501
|
chronik,
|
|
518
502
|
offer,
|
|
519
503
|
takerSk,
|
|
520
|
-
takerInput,
|
|
521
504
|
acceptedAtoms: 100n,
|
|
522
505
|
});
|
|
523
506
|
const acceptTx = await chronik.tx(acceptTxid);
|
|
@@ -559,10 +542,7 @@ describe('Agora Partial 7450M XEC vs 100 small accept', () => {
|
|
|
559
542
|
});
|
|
560
543
|
|
|
561
544
|
it('Agora Partial 7450M XEC vs 100 small accept', async () => {
|
|
562
|
-
const [fuelInput
|
|
563
|
-
10000n,
|
|
564
|
-
BIGSATS,
|
|
565
|
-
]);
|
|
545
|
+
const [fuelInput] = await makeBuilderInputs(runner, [10000n, BIGSATS]);
|
|
566
546
|
|
|
567
547
|
const agora = new Agora(chronik);
|
|
568
548
|
const agoraPartial = await agora.selectParams({
|
|
@@ -602,7 +582,6 @@ describe('Agora Partial 7450M XEC vs 100 small accept', () => {
|
|
|
602
582
|
chronik,
|
|
603
583
|
offer,
|
|
604
584
|
takerSk,
|
|
605
|
-
takerInput,
|
|
606
585
|
acceptedAtoms: 1n,
|
|
607
586
|
});
|
|
608
587
|
const acceptTx = await chronik.tx(acceptTxid);
|
|
@@ -23,6 +23,7 @@ import { TestRunner } from 'ecash-lib/dist/test/testRunner.js';
|
|
|
23
23
|
import { AgoraPartial } from '../src/partial.js';
|
|
24
24
|
import { makeSlpOffer, takeSlpOffer } from './partial-helper-slp.js';
|
|
25
25
|
import { Agora, TakenInfo } from '../src/agora.js';
|
|
26
|
+
import { Wallet } from 'ecash-wallet/src/wallet.js';
|
|
26
27
|
|
|
27
28
|
use(chaiAsPromised);
|
|
28
29
|
|
|
@@ -56,7 +57,10 @@ describe('AgoraPartial SLP', () => {
|
|
|
56
57
|
async function makeBuilderInputs(
|
|
57
58
|
values: bigint[],
|
|
58
59
|
): Promise<TxBuilderInput[]> {
|
|
60
|
+
// NB for these "not big sats" tests, we can just send to both, no need to sendToTwoScripts
|
|
59
61
|
const txid = await runner.sendToScript(values, makerScript);
|
|
62
|
+
// Send some cash to the taker, since the accept() tests spend from this wallet
|
|
63
|
+
await runner.sendToScript(values, takerScript);
|
|
60
64
|
return values.map((sats, outIdx) => ({
|
|
61
65
|
input: {
|
|
62
66
|
prevOut: {
|
|
@@ -472,6 +476,7 @@ describe('AgoraPartial SLP', () => {
|
|
|
472
476
|
},
|
|
473
477
|
];
|
|
474
478
|
|
|
479
|
+
let cancelTxsMatchCount = 0;
|
|
475
480
|
for (const testCase of TEST_CASES) {
|
|
476
481
|
it(`AgoraPartial SLP ${testCase.offeredAtoms} for ${testCase.info}`, async () => {
|
|
477
482
|
const agora = new Agora(chronik);
|
|
@@ -484,10 +489,7 @@ describe('AgoraPartial SLP', () => {
|
|
|
484
489
|
});
|
|
485
490
|
const askedSats = agoraPartial.askedSats(testCase.acceptedAtoms);
|
|
486
491
|
const requiredSats = askedSats + 2000n;
|
|
487
|
-
const [fuelInput
|
|
488
|
-
4000n,
|
|
489
|
-
requiredSats,
|
|
490
|
-
]);
|
|
492
|
+
const [fuelInput] = await makeBuilderInputs([4000n, requiredSats]);
|
|
491
493
|
|
|
492
494
|
const offer = await makeSlpOffer({
|
|
493
495
|
chronik,
|
|
@@ -499,7 +501,6 @@ describe('AgoraPartial SLP', () => {
|
|
|
499
501
|
chronik,
|
|
500
502
|
takerSk,
|
|
501
503
|
offer,
|
|
502
|
-
takerInput,
|
|
503
504
|
acceptedAtoms: testCase.acceptedAtoms,
|
|
504
505
|
allowUnspendable: testCase.allowUnspendable,
|
|
505
506
|
});
|
|
@@ -586,17 +587,40 @@ describe('AgoraPartial SLP', () => {
|
|
|
586
587
|
recipientScript: makerScript,
|
|
587
588
|
extraInputs: [fuelInput], // dummy input for measuring
|
|
588
589
|
});
|
|
589
|
-
const
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
const
|
|
598
|
-
|
|
599
|
-
|
|
590
|
+
const cancelTx = newOffer.cancelTx({
|
|
591
|
+
cancelSk: makerSk,
|
|
592
|
+
fuelInputs: await makeBuilderInputs([cancelFeeSats]),
|
|
593
|
+
recipientScript: makerScript,
|
|
594
|
+
});
|
|
595
|
+
const cancelTxid = cancelTx.txid();
|
|
596
|
+
|
|
597
|
+
// Let's build and broadcast using cancel() instead
|
|
598
|
+
const cancelWallet = Wallet.fromSk(makerSk, chronik);
|
|
599
|
+
await cancelWallet.sync();
|
|
600
|
+
const cancelResult = await newOffer.cancel({
|
|
601
|
+
wallet: cancelWallet,
|
|
602
|
+
});
|
|
603
|
+
const broadcastCancelTxid = cancelResult.broadcasted[0];
|
|
604
|
+
if (broadcastCancelTxid === cancelTxid) {
|
|
605
|
+
cancelTxsMatchCount++;
|
|
606
|
+
console.log(
|
|
607
|
+
`${cancelTxsMatchCount} of ${TEST_CASES.length} produce equal txids with cancelTx() and cancel()`,
|
|
608
|
+
);
|
|
609
|
+
|
|
610
|
+
// Between ~5 and ~8 of 46 of these txs are identical from each method
|
|
611
|
+
|
|
612
|
+
// On inspection, when cancel() txid does not match,
|
|
613
|
+
// it is because cancel has selected different fuel inputs
|
|
614
|
+
// This is expected behavior, these txs still show change
|
|
615
|
+
// going to the cancel wallet as expected
|
|
616
|
+
}
|
|
617
|
+
const cancelChronikTx = await chronik.tx(broadcastCancelTxid);
|
|
618
|
+
expect(cancelChronikTx.outputs[1].token?.atoms).to.equal(
|
|
619
|
+
leftoverTokens,
|
|
620
|
+
);
|
|
621
|
+
expect(cancelChronikTx.outputs[1].outputScript).to.equal(
|
|
622
|
+
makerScriptHex,
|
|
623
|
+
);
|
|
600
624
|
|
|
601
625
|
// takerIndex is 2 for full accept, 3 for partial accept
|
|
602
626
|
const takerIndex = isFullAccept ? 2 : 3;
|
|
@@ -655,10 +679,7 @@ describe('AgoraPartial SLP', () => {
|
|
|
655
679
|
});
|
|
656
680
|
const askedSats = agoraPartial.askedSats(thisTestCase.acceptedAtoms);
|
|
657
681
|
const requiredSats = askedSats + 2000n;
|
|
658
|
-
const [fuelInput
|
|
659
|
-
4000n,
|
|
660
|
-
requiredSats,
|
|
661
|
-
]);
|
|
682
|
+
const [fuelInput] = await makeBuilderInputs([4000n, requiredSats]);
|
|
662
683
|
|
|
663
684
|
const offer = await makeSlpOffer({
|
|
664
685
|
chronik,
|
|
@@ -683,7 +704,6 @@ describe('AgoraPartial SLP', () => {
|
|
|
683
704
|
chronik,
|
|
684
705
|
takerSk,
|
|
685
706
|
offer,
|
|
686
|
-
takerInput,
|
|
687
707
|
acceptedAtoms: thisTestCase.acceptedAtoms,
|
|
688
708
|
allowUnspendable: false,
|
|
689
709
|
}),
|
|
@@ -713,10 +733,7 @@ describe('AgoraPartial SLP', () => {
|
|
|
713
733
|
const acceptedAtoms = 500n;
|
|
714
734
|
const askedSats = agoraPartial.askedSats(acceptedAtoms);
|
|
715
735
|
const requiredSats = askedSats + 2000n;
|
|
716
|
-
const [fuelInput
|
|
717
|
-
4000n,
|
|
718
|
-
requiredSats,
|
|
719
|
-
]);
|
|
736
|
+
const [fuelInput] = await makeBuilderInputs([4000n, requiredSats]);
|
|
720
737
|
|
|
721
738
|
const offer = await makeSlpOffer({
|
|
722
739
|
chronik,
|
|
@@ -739,7 +756,6 @@ describe('AgoraPartial SLP', () => {
|
|
|
739
756
|
chronik,
|
|
740
757
|
takerSk,
|
|
741
758
|
offer,
|
|
742
|
-
takerInput,
|
|
743
759
|
acceptedAtoms: acceptedAtoms,
|
|
744
760
|
allowUnspendable: false,
|
|
745
761
|
}),
|
|
@@ -752,7 +768,6 @@ describe('AgoraPartial SLP', () => {
|
|
|
752
768
|
chronik,
|
|
753
769
|
takerSk,
|
|
754
770
|
offer,
|
|
755
|
-
takerInput,
|
|
756
771
|
acceptedAtoms: acceptedAtoms,
|
|
757
772
|
allowUnspendable: undefined,
|
|
758
773
|
}),
|
|
@@ -765,7 +780,6 @@ describe('AgoraPartial SLP', () => {
|
|
|
765
780
|
chronik,
|
|
766
781
|
takerSk,
|
|
767
782
|
offer,
|
|
768
|
-
takerInput,
|
|
769
783
|
acceptedAtoms: acceptedAtoms,
|
|
770
784
|
}),
|
|
771
785
|
expectedError,
|