@1sat/actions 0.0.219 → 0.0.221
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/apply/applyIntent.d.ts.map +1 -1
- package/dist/apply/applyIntent.js +4 -0
- package/dist/apply/applyIntent.js.map +1 -1
- package/dist/apply/index.d.ts +1 -0
- package/dist/apply/index.d.ts.map +1 -1
- package/dist/apply/index.js +1 -0
- package/dist/apply/index.js.map +1 -1
- package/dist/apply/ordlockPurchase.d.ts +66 -0
- package/dist/apply/ordlockPurchase.d.ts.map +1 -0
- package/dist/apply/ordlockPurchase.js +333 -0
- package/dist/apply/ordlockPurchase.js.map +1 -0
- package/dist/apply/ordlockPurchase.test.d.ts +2 -0
- package/dist/apply/ordlockPurchase.test.d.ts.map +1 -0
- package/dist/apply/ordlockPurchase.test.js +252 -0
- package/dist/apply/ordlockPurchase.test.js.map +1 -0
- package/dist/constants.d.ts +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/ordinals/index.d.ts.map +1 -1
- package/dist/ordinals/index.js +41 -41
- package/dist/ordinals/index.js.map +1 -1
- package/dist/pipeline/index.d.ts +1 -1
- package/dist/pipeline/index.d.ts.map +1 -1
- package/dist/pipeline/index.js +1 -1
- package/dist/pipeline/index.js.map +1 -1
- package/dist/pipeline/runPipeline.d.ts +4 -1
- package/dist/pipeline/runPipeline.d.ts.map +1 -1
- package/dist/pipeline/runPipeline.js +10 -5
- package/dist/pipeline/runPipeline.js.map +1 -1
- package/dist/pipeline/spendTargets.d.ts +9 -0
- package/dist/pipeline/spendTargets.d.ts.map +1 -1
- package/dist/pipeline/spendTargets.js +16 -0
- package/dist/pipeline/spendTargets.js.map +1 -1
- package/dist/pipeline/unlockInput.d.ts +9 -3
- package/dist/pipeline/unlockInput.d.ts.map +1 -1
- package/dist/pipeline/unlockInput.js +13 -6
- package/dist/pipeline/unlockInput.js.map +1 -1
- package/dist/pipeline/unlockInput.test.js +55 -13
- package/dist/pipeline/unlockInput.test.js.map +1 -1
- package/dist/sweep/index.d.ts +1 -1
- package/dist/sweep/index.d.ts.map +1 -1
- package/dist/sweep/index.js +1 -1
- package/dist/sweep/index.js.map +1 -1
- package/dist/sweep/scan.d.ts +6 -0
- package/dist/sweep/scan.d.ts.map +1 -1
- package/dist/sweep/scan.js +12 -0
- package/dist/sweep/scan.js.map +1 -1
- package/dist/sweep/scan.test.js +25 -1
- package/dist/sweep/scan.test.js.map +1 -1
- package/dist/sweep/sweepDeposit.d.ts +6 -0
- package/dist/sweep/sweepDeposit.d.ts.map +1 -1
- package/dist/sweep/sweepDeposit.js +11 -1
- package/dist/sweep/sweepDeposit.js.map +1 -1
- package/dist/tokens/index.d.ts.map +1 -1
- package/dist/tokens/index.js +40 -22
- package/dist/tokens/index.js.map +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import { describe, expect, it } from 'bun:test';
|
|
2
|
+
import { OrdLockV2 } from '@1sat/templates';
|
|
3
|
+
import { DEPOSIT_BASKET, ORDINALS_BASKET, P1SAT_PROTOCOL, depositHoldTag, depositHoldUntil, isDepositHeld, } from '@1sat/types';
|
|
4
|
+
import { Beef, P2PKH, PrivateKey, ProtoWallet, PublicKey, Script, Transaction, } from '@bsv/sdk';
|
|
5
|
+
import { PENDING_RESOLVED_SPENDS_KEY } from '../pipeline/spendTargets.js';
|
|
6
|
+
import { ORDLOCK_FUNDING_HOLD_MS, applyOrdLockV2Purchase, hasUnpreparedOrdLockV2Purchase, selectFrontFunding, } from './ordlockPurchase.js';
|
|
7
|
+
const NOW = 1_800_000_000_000;
|
|
8
|
+
const seller = new PrivateKey(9001).toAddress();
|
|
9
|
+
const buyerLock = new P2PKH().lock(new PrivateKey(9002).toAddress());
|
|
10
|
+
/** ProtoWallet plus just enough BRC-100 surface for the apply step. */
|
|
11
|
+
class StubWallet extends ProtoWallet {
|
|
12
|
+
fundingKey;
|
|
13
|
+
held = [];
|
|
14
|
+
heldBeef = new Beef();
|
|
15
|
+
created = [];
|
|
16
|
+
constructor(fundingKey) {
|
|
17
|
+
super(new PrivateKey(9003));
|
|
18
|
+
this.fundingKey = fundingKey;
|
|
19
|
+
}
|
|
20
|
+
async listOutputs() {
|
|
21
|
+
return {
|
|
22
|
+
totalOutputs: this.held.length,
|
|
23
|
+
outputs: this.held,
|
|
24
|
+
BEEF: this.heldBeef.toBinary(),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
async createAction(args) {
|
|
28
|
+
this.created.push(args);
|
|
29
|
+
const tx = new Transaction();
|
|
30
|
+
const fund = new Transaction();
|
|
31
|
+
fund.addOutput({ satoshis: 1_000_000, lockingScript: buyerLock });
|
|
32
|
+
tx.addInput({
|
|
33
|
+
sourceTransaction: fund,
|
|
34
|
+
sourceOutputIndex: 0,
|
|
35
|
+
unlockingScriptTemplate: new P2PKH().unlock(this.fundingKey),
|
|
36
|
+
});
|
|
37
|
+
for (const o of args.outputs ?? []) {
|
|
38
|
+
tx.addOutput({
|
|
39
|
+
satoshis: o.satoshis,
|
|
40
|
+
lockingScript: Script.fromHex(o.lockingScript),
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
await tx.sign();
|
|
44
|
+
return { txid: tx.id('hex'), tx: tx.toAtomicBEEF() };
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const asWallet = (w) => w;
|
|
48
|
+
function listingArgs(price, extra = []) {
|
|
49
|
+
const lock = OrdLockV2.lock(seller, seller, price);
|
|
50
|
+
const listingTx = new Transaction();
|
|
51
|
+
listingTx.addOutput({ satoshis: 1, lockingScript: lock });
|
|
52
|
+
const beef = new Beef();
|
|
53
|
+
beef.mergeTransaction(listingTx);
|
|
54
|
+
const outpoint = `${listingTx.id('hex')}.0`;
|
|
55
|
+
const payout = OrdLockV2.payoutOutput(lock);
|
|
56
|
+
const args = {
|
|
57
|
+
description: 'Purchase ordinal',
|
|
58
|
+
inputBEEF: beef.toBinary(),
|
|
59
|
+
inputs: [
|
|
60
|
+
{
|
|
61
|
+
outpoint,
|
|
62
|
+
inputDescription: 'Listed ordinal',
|
|
63
|
+
unlockingScriptLength: 1,
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
outputs: [
|
|
67
|
+
{
|
|
68
|
+
lockingScript: buyerLock.toHex(),
|
|
69
|
+
satoshis: 1,
|
|
70
|
+
outputDescription: 'Purchased ordinal',
|
|
71
|
+
basket: ORDINALS_BASKET,
|
|
72
|
+
tags: [],
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
lockingScript: payout.lockingScript.toHex(),
|
|
76
|
+
satoshis: payout.satoshis ?? 0,
|
|
77
|
+
outputDescription: 'Payment to seller',
|
|
78
|
+
tags: [],
|
|
79
|
+
},
|
|
80
|
+
...(extra ?? []),
|
|
81
|
+
],
|
|
82
|
+
options: { randomizeOutputs: false },
|
|
83
|
+
};
|
|
84
|
+
return { args, lock, outpoint };
|
|
85
|
+
}
|
|
86
|
+
async function heldOutput(wallet, keyID, satoshis, tags) {
|
|
87
|
+
const { publicKey } = await wallet.getPublicKey({
|
|
88
|
+
protocolID: P1SAT_PROTOCOL,
|
|
89
|
+
keyID,
|
|
90
|
+
counterparty: 'self',
|
|
91
|
+
forSelf: true,
|
|
92
|
+
});
|
|
93
|
+
const lock = new P2PKH().lock(PublicKey.fromString(publicKey).toAddress());
|
|
94
|
+
const tx = new Transaction();
|
|
95
|
+
tx.addOutput({ satoshis, lockingScript: lock });
|
|
96
|
+
wallet.heldBeef.mergeTransaction(tx);
|
|
97
|
+
wallet.held.push({
|
|
98
|
+
outpoint: `${tx.id('hex')}.0`,
|
|
99
|
+
satoshis,
|
|
100
|
+
spendable: true,
|
|
101
|
+
tags,
|
|
102
|
+
customInstructions: JSON.stringify({
|
|
103
|
+
protocolID: P1SAT_PROTOCOL,
|
|
104
|
+
keyID,
|
|
105
|
+
counterparty: 'self',
|
|
106
|
+
}),
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
describe('deposit hold tags', () => {
|
|
110
|
+
it('round-trip and expiry', () => {
|
|
111
|
+
const tag = depositHoldTag(NOW + 1000);
|
|
112
|
+
expect(tag).toBe(`hold:${NOW + 1000}`);
|
|
113
|
+
expect(depositHoldUntil([tag, 'x'])).toBe(NOW + 1000);
|
|
114
|
+
expect(isDepositHeld([tag], NOW)).toBe(true);
|
|
115
|
+
expect(isDepositHeld([tag], NOW + 1000)).toBe(false);
|
|
116
|
+
expect(isDepositHeld(['ordlock-funding'], NOW)).toBe(false);
|
|
117
|
+
expect(isDepositHeld(undefined, NOW)).toBe(false);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
describe('selectFrontFunding', () => {
|
|
121
|
+
const c = (satoshis) => ({
|
|
122
|
+
outpoint: `${satoshis}`,
|
|
123
|
+
satoshis,
|
|
124
|
+
customInstructions: '{}',
|
|
125
|
+
});
|
|
126
|
+
it('prefers the smallest single cover, else combines from the largest', () => {
|
|
127
|
+
expect(selectFrontFunding([c(5000), c(1200), c(900)], 1000)?.map((x) => x.satoshis)).toEqual([1200]);
|
|
128
|
+
expect(selectFrontFunding([c(600), c(500), c(100)], 1000)?.map((x) => x.satoshis)).toEqual([600, 500]);
|
|
129
|
+
expect(selectFrontFunding([c(100), c(100)], 1000)).toBeNull();
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
describe('applyOrdLockV2Purchase', () => {
|
|
133
|
+
it('is a no-op for non-listing args and detects v2 listing inputs', async () => {
|
|
134
|
+
const wallet = new StubWallet(new PrivateKey(9002));
|
|
135
|
+
const plain = { description: 'x', outputs: [] };
|
|
136
|
+
expect(hasUnpreparedOrdLockV2Purchase(plain)).toBe(false);
|
|
137
|
+
const { args } = listingArgs(1000);
|
|
138
|
+
expect(hasUnpreparedOrdLockV2Purchase(args)).toBe(true);
|
|
139
|
+
await applyOrdLockV2Purchase(asWallet(wallet), args, NOW);
|
|
140
|
+
expect(hasUnpreparedOrdLockV2Purchase(args)).toBe(false);
|
|
141
|
+
});
|
|
142
|
+
it('prepares front funding when nothing held covers the payout', async () => {
|
|
143
|
+
const wallet = new StubWallet(new PrivateKey(9002));
|
|
144
|
+
const { args, lock, outpoint } = listingArgs(1000, [
|
|
145
|
+
{
|
|
146
|
+
lockingScript: buyerLock.toHex(),
|
|
147
|
+
satoshis: 20,
|
|
148
|
+
outputDescription: 'Marketplace fee',
|
|
149
|
+
tags: [],
|
|
150
|
+
},
|
|
151
|
+
]);
|
|
152
|
+
await applyOrdLockV2Purchase(asWallet(wallet), args, NOW);
|
|
153
|
+
// one preparation createAction, exactly the payout, held in the deposit basket
|
|
154
|
+
expect(wallet.created.length).toBe(1);
|
|
155
|
+
const prep = wallet.created[0].outputs?.[0];
|
|
156
|
+
expect(wallet.created[0].options?.acceptDelayedBroadcast).toBe(false);
|
|
157
|
+
expect(prep?.satoshis).toBe(1000);
|
|
158
|
+
expect(prep?.basket).toBe(DEPOSIT_BASKET);
|
|
159
|
+
expect(prep?.tags).toContain(depositHoldTag(NOW + ORDLOCK_FUNDING_HOLD_MS));
|
|
160
|
+
// inputs: front funding, then the listing with its exact reservation
|
|
161
|
+
expect(args.inputs?.length).toBe(2);
|
|
162
|
+
expect(args.inputs?.[1].outpoint).toBe(outpoint);
|
|
163
|
+
expect(args.inputs?.[1].unlockingScriptLength).toBe(OrdLockV2.estimatePurchaseUnlockLength(lock));
|
|
164
|
+
// outputs: filler (cushion 0), payout at 1, receive at 2, fee at 3
|
|
165
|
+
const outs = args.outputs ?? [];
|
|
166
|
+
expect(outs.map((o) => o.satoshis)).toEqual([0, 1000, 1, 20]);
|
|
167
|
+
expect(outs[0].lockingScript).toBe('006a');
|
|
168
|
+
expect(outs[1].lockingScript).toBe(OrdLockV2.payoutOutput(lock).lockingScript.toHex());
|
|
169
|
+
expect(outs[2].basket).toBe(ORDINALS_BASKET);
|
|
170
|
+
expect(outs[3].outputDescription).toBe('Marketplace fee');
|
|
171
|
+
// front input signable from its CI; funding tx merged into inputBEEF
|
|
172
|
+
const pending = args[PENDING_RESOLVED_SPENDS_KEY];
|
|
173
|
+
const frontOutpoint = String(args.inputs?.[0].outpoint);
|
|
174
|
+
expect(pending.length).toBe(1);
|
|
175
|
+
expect(pending[0].outpoint).toBe(frontOutpoint);
|
|
176
|
+
expect(JSON.parse(pending[0].customInstructions ?? '{}').keyID).toMatch(/^ordlock-funding /);
|
|
177
|
+
const merged = Beef.fromBinary(Array.from(args.inputBEEF ?? []));
|
|
178
|
+
expect(merged.findTxid(args.inputs?.[0].outpoint.split('.')[0] ?? '')).not.toBeNull();
|
|
179
|
+
expect(args.options?.trustSelf).toBe('known');
|
|
180
|
+
});
|
|
181
|
+
it('reuses a held output and returns the cushion to the deposit basket', async () => {
|
|
182
|
+
const wallet = new StubWallet(new PrivateKey(9002));
|
|
183
|
+
await heldOutput(wallet, 'ordlock-funding earlier', 5000, [
|
|
184
|
+
'ordlock-funding',
|
|
185
|
+
depositHoldTag(NOW + 60_000),
|
|
186
|
+
]);
|
|
187
|
+
// an expired hold and an unrelated deposit must not be used
|
|
188
|
+
await heldOutput(wallet, 'ordlock-funding stale', 9000, [
|
|
189
|
+
depositHoldTag(NOW - 1),
|
|
190
|
+
]);
|
|
191
|
+
await heldOutput(wallet, 'deposit 1', 9000, []);
|
|
192
|
+
const { args } = listingArgs(1000);
|
|
193
|
+
await applyOrdLockV2Purchase(asWallet(wallet), args, NOW);
|
|
194
|
+
expect(wallet.created.length).toBe(0);
|
|
195
|
+
expect(args.inputs?.[0].outpoint).toBe(wallet.held[0].outpoint);
|
|
196
|
+
const outs = args.outputs ?? [];
|
|
197
|
+
expect(outs.map((o) => o.satoshis)).toEqual([4000, 1000, 1]);
|
|
198
|
+
expect(outs[0].basket).toBe(DEPOSIT_BASKET);
|
|
199
|
+
expect(outs[0].tags).toContain(depositHoldTag(NOW + ORDLOCK_FUNDING_HOLD_MS));
|
|
200
|
+
expect(JSON.parse(outs[0].customInstructions ?? '{}').keyID).toMatch(/cushion/);
|
|
201
|
+
});
|
|
202
|
+
it('leaves a cancel alone: listing input without a payout output', async () => {
|
|
203
|
+
const wallet = new StubWallet(new PrivateKey(9002));
|
|
204
|
+
const { args } = listingArgs(1000);
|
|
205
|
+
// cancel draft: the listing input and the reclaimed ordinal, no payout
|
|
206
|
+
args.outputs = args.outputs?.filter((o) => o.basket);
|
|
207
|
+
const before = JSON.stringify(args);
|
|
208
|
+
expect(hasUnpreparedOrdLockV2Purchase(args)).toBe(false);
|
|
209
|
+
await applyOrdLockV2Purchase(asWallet(wallet), args, NOW);
|
|
210
|
+
expect(wallet.created.length).toBe(0);
|
|
211
|
+
expect(JSON.stringify(args)).toBe(before);
|
|
212
|
+
});
|
|
213
|
+
it('rejects a draft without one basketed 1-sat receive per listing', async () => {
|
|
214
|
+
const wallet = new StubWallet(new PrivateKey(9002));
|
|
215
|
+
const { args } = listingArgs(1000);
|
|
216
|
+
args.outputs = args.outputs?.filter((o) => !o.basket);
|
|
217
|
+
await expect(applyOrdLockV2Purchase(asWallet(wallet), args, NOW)).rejects.toThrow(/receive output/);
|
|
218
|
+
});
|
|
219
|
+
it('produces a transaction the template signs and routes correctly', async () => {
|
|
220
|
+
// Build the final tx the way the wallet would (explicit inputs in order,
|
|
221
|
+
// outputs in order, change appended) and run the purchase template.
|
|
222
|
+
const fundingKey = new PrivateKey(9002);
|
|
223
|
+
const wallet = new StubWallet(fundingKey);
|
|
224
|
+
const { args, lock } = listingArgs(1000);
|
|
225
|
+
await applyOrdLockV2Purchase(asWallet(wallet), args, NOW);
|
|
226
|
+
const beef = Beef.fromBinary(Array.from(args.inputBEEF ?? []));
|
|
227
|
+
const tx = new Transaction();
|
|
228
|
+
for (const [i, input] of (args.inputs ?? []).entries()) {
|
|
229
|
+
const [txid, vout] = input.outpoint.split('.');
|
|
230
|
+
const src = beef.findTxid(txid)?.tx;
|
|
231
|
+
tx.addInput({
|
|
232
|
+
sourceTransaction: src,
|
|
233
|
+
sourceOutputIndex: Number(vout),
|
|
234
|
+
unlockingScriptTemplate: i === 0
|
|
235
|
+
? new P2PKH().unlock(fundingKey) // stub: funding key stands in for the derived key
|
|
236
|
+
: OrdLockV2.purchaseListing(),
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
for (const o of args.outputs ?? []) {
|
|
240
|
+
tx.addOutput({
|
|
241
|
+
satoshis: o.satoshis,
|
|
242
|
+
lockingScript: Script.fromHex(o.lockingScript),
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
tx.addOutput({ satoshis: 500, lockingScript: buyerLock });
|
|
246
|
+
// only the listing input is signed by the template under test
|
|
247
|
+
await OrdLockV2.purchaseListing().sign(tx, 1);
|
|
248
|
+
expect(OrdLockV2.ordinalOutput(tx, 1)).toBe(2);
|
|
249
|
+
expect(tx.outputs[1].lockingScript.toHex()).toBe(OrdLockV2.payoutOutput(lock).lockingScript.toHex());
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
//# sourceMappingURL=ordlockPurchase.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ordlockPurchase.test.js","sourceRoot":"","sources":["../../src/apply/ordlockPurchase.test.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { BAP_BASKET, BAP_BITCOM_ADDRESS, BAP_KEY_ID, BAP_PROTOCOL_ID, BSV21_AUTH_TAG, BSV21_AUTH_BASKET, BSV21_BASKET, BSV20_BASKET, BSV21_DEPLOY_TAG, BSV21_FEE_SATS, DEFAULT_STREAM_CHUNK_SIZE, EXCHANGE_RATE_CACHE_TTL, FUNDING_BASKET, LOCK_BASKET, LOCK_PREFIX, LOCK_SUFFIX, MAX_INSCRIPTION_BYTES, HANDLE_CERT_TYPE, DISABLED_REVOCATION_OUTPOINT, MESSAGE_SIGNING_PROTOCOL, ONESAT_MAINNET_CONTENT_URL, ONESAT_MAINNET_URL, ONESAT_TESTNET_CONTENT_URL, ONESAT_TESTNET_URL, ONESAT_BASKET, ONESAT_ASSET_BASKETS, LEGACY_P1SAT_BASKET_MIGRATIONS, isOneSatAssetBasket, OPNS_BASKET, OPNS_PUBLISHED_TAG, OPNS_PUSHDROP_TEMPLATE, OPNS_REGISTER_COUNTERPARTY, OPNS_REGISTER_KEY_PREFIX, opnsRegisterKeyId, ORDFS_STREAM_CONTENT_TYPE, ORDFS_STREAM_PARAM, ORDINALS_BASKET, BSOCIAL_BASKET, SIGMA_BASKET, ORD_LOCK_PREFIX, ORD_LOCK_SUFFIX, ONESAT_PROTOCOL, LEGACY_ONESAT_PROTOCOL, P1SAT_MODULE_PROTOCOL, P1SAT_PROTOCOL, WOC_MAINNET_URL, WOC_TESTNET_URL, } from '@1sat/types';
|
|
1
|
+
export { BAP_BASKET, BAP_BITCOM_ADDRESS, BAP_KEY_ID, BAP_PROTOCOL_ID, BSV21_AUTH_TAG, BSV21_AUTH_BASKET, BSV21_BASKET, BSV20_BASKET, BSV21_DEPLOY_TAG, BSV21_FEE_SATS, DEFAULT_STREAM_CHUNK_SIZE, EXCHANGE_RATE_CACHE_TTL, FUNDING_BASKET, LOCK_BASKET, LOCK_PREFIX, LOCK_SUFFIX, MAX_INSCRIPTION_BYTES, HANDLE_CERT_TYPE, DISABLED_REVOCATION_OUTPOINT, MESSAGE_SIGNING_PROTOCOL, ONESAT_MAINNET_CONTENT_URL, ONESAT_MAINNET_URL, ONESAT_TESTNET_CONTENT_URL, ONESAT_TESTNET_URL, ONESAT_BASKET, ONESAT_ASSET_BASKETS, LEGACY_P1SAT_BASKET_MIGRATIONS, isOneSatAssetBasket, OPNS_BASKET, OPNS_PUBLISHED_TAG, OPNS_PUSHDROP_TEMPLATE, OPNS_REGISTER_COUNTERPARTY, OPNS_REGISTER_KEY_PREFIX, opnsRegisterKeyId, ORDFS_STREAM_CONTENT_TYPE, ORDFS_STREAM_PARAM, ORDINALS_BASKET, ORDLOCK_FUNDING_KEY_PREFIX, ORDLOCK_FUNDING_TAG, DEPOSIT_BASKET, DEPOSIT_HOLD_TAG_PREFIX, depositHoldTag, depositHoldUntil, isDepositHeld, BSOCIAL_BASKET, SIGMA_BASKET, ORD_LOCK_PREFIX, ORD_LOCK_SUFFIX, ONESAT_PROTOCOL, LEGACY_ONESAT_PROTOCOL, P1SAT_MODULE_PROTOCOL, P1SAT_PROTOCOL, WOC_MAINNET_URL, WOC_TESTNET_URL, } from '@1sat/types';
|
|
2
2
|
export type { KeyDerivation } from '@1sat/types';
|
|
3
3
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,yBAAyB,EACzB,uBAAuB,EACvB,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,0BAA0B,EAC1B,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,8BAA8B,EAC9B,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,eAAe,GACf,MAAM,aAAa,CAAA;AAEpB,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,yBAAyB,EACzB,uBAAuB,EACvB,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,0BAA0B,EAC1B,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,8BAA8B,EAC9B,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,eAAe,GACf,MAAM,aAAa,CAAA;AAEpB,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/constants.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { BAP_BASKET, BAP_BITCOM_ADDRESS, BAP_KEY_ID, BAP_PROTOCOL_ID, BSV21_AUTH_TAG, BSV21_AUTH_BASKET, BSV21_BASKET, BSV20_BASKET, BSV21_DEPLOY_TAG, BSV21_FEE_SATS, DEFAULT_STREAM_CHUNK_SIZE, EXCHANGE_RATE_CACHE_TTL, FUNDING_BASKET, LOCK_BASKET, LOCK_PREFIX, LOCK_SUFFIX, MAX_INSCRIPTION_BYTES, HANDLE_CERT_TYPE, DISABLED_REVOCATION_OUTPOINT, MESSAGE_SIGNING_PROTOCOL, ONESAT_MAINNET_CONTENT_URL, ONESAT_MAINNET_URL, ONESAT_TESTNET_CONTENT_URL, ONESAT_TESTNET_URL, ONESAT_BASKET, ONESAT_ASSET_BASKETS, LEGACY_P1SAT_BASKET_MIGRATIONS, isOneSatAssetBasket, OPNS_BASKET, OPNS_PUBLISHED_TAG, OPNS_PUSHDROP_TEMPLATE, OPNS_REGISTER_COUNTERPARTY, OPNS_REGISTER_KEY_PREFIX, opnsRegisterKeyId, ORDFS_STREAM_CONTENT_TYPE, ORDFS_STREAM_PARAM, ORDINALS_BASKET, BSOCIAL_BASKET, SIGMA_BASKET, ORD_LOCK_PREFIX, ORD_LOCK_SUFFIX, ONESAT_PROTOCOL, LEGACY_ONESAT_PROTOCOL, P1SAT_MODULE_PROTOCOL, P1SAT_PROTOCOL, WOC_MAINNET_URL, WOC_TESTNET_URL, } from '@1sat/types';
|
|
1
|
+
export { BAP_BASKET, BAP_BITCOM_ADDRESS, BAP_KEY_ID, BAP_PROTOCOL_ID, BSV21_AUTH_TAG, BSV21_AUTH_BASKET, BSV21_BASKET, BSV20_BASKET, BSV21_DEPLOY_TAG, BSV21_FEE_SATS, DEFAULT_STREAM_CHUNK_SIZE, EXCHANGE_RATE_CACHE_TTL, FUNDING_BASKET, LOCK_BASKET, LOCK_PREFIX, LOCK_SUFFIX, MAX_INSCRIPTION_BYTES, HANDLE_CERT_TYPE, DISABLED_REVOCATION_OUTPOINT, MESSAGE_SIGNING_PROTOCOL, ONESAT_MAINNET_CONTENT_URL, ONESAT_MAINNET_URL, ONESAT_TESTNET_CONTENT_URL, ONESAT_TESTNET_URL, ONESAT_BASKET, ONESAT_ASSET_BASKETS, LEGACY_P1SAT_BASKET_MIGRATIONS, isOneSatAssetBasket, OPNS_BASKET, OPNS_PUBLISHED_TAG, OPNS_PUSHDROP_TEMPLATE, OPNS_REGISTER_COUNTERPARTY, OPNS_REGISTER_KEY_PREFIX, opnsRegisterKeyId, ORDFS_STREAM_CONTENT_TYPE, ORDFS_STREAM_PARAM, ORDINALS_BASKET, ORDLOCK_FUNDING_KEY_PREFIX, ORDLOCK_FUNDING_TAG, DEPOSIT_BASKET, DEPOSIT_HOLD_TAG_PREFIX, depositHoldTag, depositHoldUntil, isDepositHeld, BSOCIAL_BASKET, SIGMA_BASKET, ORD_LOCK_PREFIX, ORD_LOCK_SUFFIX, ONESAT_PROTOCOL, LEGACY_ONESAT_PROTOCOL, P1SAT_MODULE_PROTOCOL, P1SAT_PROTOCOL, WOC_MAINNET_URL, WOC_TESTNET_URL, } from '@1sat/types';
|
|
2
2
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,yBAAyB,EACzB,uBAAuB,EACvB,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,0BAA0B,EAC1B,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,8BAA8B,EAC9B,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,eAAe,GACf,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,yBAAyB,EACzB,uBAAuB,EACvB,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,0BAA0B,EAC1B,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,8BAA8B,EAC9B,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,eAAe,GACf,MAAM,aAAa,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ordinals/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ordinals/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ordinals/index.js
CHANGED
|
@@ -13,12 +13,12 @@ import { prepareP1SatArgs } from '../apply/index.js';
|
|
|
13
13
|
import { MAX_INSCRIPTION_BYTES, OPNS_BASKET, ORDINALS_BASKET, P1SAT_PROTOCOL, } from '../constants.js';
|
|
14
14
|
import { appendSigmaPlaceholder } from '../signing/sigma.js';
|
|
15
15
|
import { executeTrackedAction } from '../utils/createTrackedAction.js';
|
|
16
|
+
import { isTokenListing } from '../utils/listingToken.js';
|
|
16
17
|
import { loadBasketOutputBeef } from '../utils/loadBasketOutput.js';
|
|
17
18
|
import { buildOrdinalCustomInstructions } from '../utils/ordinalRemittance.js';
|
|
18
19
|
import { ordinalSeedTags } from '../utils/ordinalSeedTags.js';
|
|
19
20
|
import { ordLockCancelUnlockLength } from '../utils/ordlockCancelLength.js';
|
|
20
21
|
import { unlockingScriptLengthForInstructions } from '../utils/signOrdinalInput.js';
|
|
21
|
-
import { isTokenListing } from '../utils/listingToken.js';
|
|
22
22
|
// ============================================================================
|
|
23
23
|
// Helpers
|
|
24
24
|
// ============================================================================
|
|
@@ -157,7 +157,7 @@ export async function defaultPayAddress(ctx) {
|
|
|
157
157
|
return PublicKey.fromString(result.publicKey).toAddress();
|
|
158
158
|
}
|
|
159
159
|
export function buildOrdLockScript(ordAddress, payAddress, price) {
|
|
160
|
-
// New listings are always OrdLock v2 (batch design,
|
|
160
|
+
// New listings are always OrdLock v2 (batch design, SIGHASH_SINGLE payout binding).
|
|
161
161
|
return OrdLockV2.lock(ordAddress, payAddress, price);
|
|
162
162
|
}
|
|
163
163
|
// ============================================================================
|
|
@@ -976,13 +976,22 @@ export const buyOrdinal = {
|
|
|
976
976
|
if (!listingOutput) {
|
|
977
977
|
return { error: 'listing-output-not-found' };
|
|
978
978
|
}
|
|
979
|
-
// v2 first (
|
|
980
|
-
// serialized payout the covenant demands.
|
|
979
|
+
// v2 first (SIGHASH_SINGLE payout binding), else legacy v1. Both
|
|
980
|
+
// expose the serialized payout the covenant demands.
|
|
981
981
|
const v2Listing = OrdLockV2.decode(listingOutput.lockingScript);
|
|
982
982
|
const ordLockData = v2Listing ?? OrdLock.decode(listingOutput.lockingScript);
|
|
983
983
|
if (!ordLockData) {
|
|
984
984
|
return { error: 'not-an-ordlock-listing' };
|
|
985
985
|
}
|
|
986
|
+
// A v2 purchase needs front funding placed ahead of the listing; the
|
|
987
|
+
// apply step sources that from this wallet. A FundingProvider would
|
|
988
|
+
// have to supply and place it itself, which the provider contract does
|
|
989
|
+
// not cover yet, so refuse rather than fail part-way through.
|
|
990
|
+
if (v2Listing && input.fundingProvider) {
|
|
991
|
+
return {
|
|
992
|
+
error: 'ordlock-v2-purchase-with-funding-provider-unsupported',
|
|
993
|
+
};
|
|
994
|
+
}
|
|
986
995
|
const { publicKey } = await ctx.wallet.getPublicKey({
|
|
987
996
|
protocolID: P1SAT_PROTOCOL,
|
|
988
997
|
keyID: outpoint,
|
|
@@ -995,8 +1004,7 @@ export const buyOrdinal = {
|
|
|
995
1004
|
error: 'Cannot buy BSV-20 token listing through ordinal purchase — use buyBsv21 instead',
|
|
996
1005
|
};
|
|
997
1006
|
}
|
|
998
|
-
const
|
|
999
|
-
outputs.push({
|
|
1007
|
+
const receive = {
|
|
1000
1008
|
lockingScript: new P2PKH().lock(ourOrdAddress).toHex(),
|
|
1001
1009
|
satoshis: 1,
|
|
1002
1010
|
outputDescription: 'Purchased ordinal',
|
|
@@ -1009,33 +1017,17 @@ export const buyOrdinal = {
|
|
|
1009
1017
|
tags,
|
|
1010
1018
|
name: resolved.name,
|
|
1011
1019
|
}),
|
|
1012
|
-
}
|
|
1020
|
+
};
|
|
1013
1021
|
const payoutReader = new Utils.Reader(ordLockData.payout);
|
|
1014
1022
|
const payoutSatoshis = payoutReader.readUInt64LEBn().toNumber();
|
|
1015
1023
|
const payoutScriptLen = payoutReader.readVarIntNum();
|
|
1016
1024
|
const payoutScriptBin = payoutReader.read(payoutScriptLen);
|
|
1017
1025
|
const payoutLockingScript = LockingScript.fromBinary(payoutScriptBin);
|
|
1018
|
-
|
|
1019
|
-
lockingScript: payoutLockingScript.toHex(),
|
|
1020
|
-
satoshis: payoutSatoshis,
|
|
1021
|
-
outputDescription: 'Payment to seller',
|
|
1022
|
-
tags: [],
|
|
1023
|
-
});
|
|
1024
|
-
// v2: the payout must be IMMEDIATELY followed by this listing's tag
|
|
1025
|
-
// output (0 sats, OP_FALSE OP_RETURN <outpoint>). Output order is
|
|
1026
|
-
// preserved by randomizeOutputs:false below.
|
|
1027
|
-
if (v2Listing) {
|
|
1028
|
-
outputs.push({
|
|
1029
|
-
lockingScript: OrdLockV2.tagScript(txid, vout).toHex(),
|
|
1030
|
-
satoshis: 0,
|
|
1031
|
-
outputDescription: 'Listing tag',
|
|
1032
|
-
tags: [],
|
|
1033
|
-
});
|
|
1034
|
-
}
|
|
1026
|
+
const marketFeeOutputs = [];
|
|
1035
1027
|
if (marketplaceAddress && marketplaceRate && marketplaceRate > 0) {
|
|
1036
1028
|
const marketFee = Math.ceil(payoutSatoshis * marketplaceRate);
|
|
1037
1029
|
if (marketFee > 0) {
|
|
1038
|
-
|
|
1030
|
+
marketFeeOutputs.push({
|
|
1039
1031
|
lockingScript: new P2PKH().lock(marketplaceAddress).toHex(),
|
|
1040
1032
|
satoshis: marketFee,
|
|
1041
1033
|
outputDescription: 'Marketplace fee',
|
|
@@ -1043,18 +1035,23 @@ export const buyOrdinal = {
|
|
|
1043
1035
|
});
|
|
1044
1036
|
}
|
|
1045
1037
|
}
|
|
1038
|
+
const usePermissionModule = input.usePermissionModule ?? input.useOneSatModule ?? input.useModule;
|
|
1039
|
+
// Draft shape: receive, payout, fees. For a v2 listing the apply
|
|
1040
|
+
// step (applyOrdLockV2Purchase) prepends front funding and lays
|
|
1041
|
+
// the outputs out so the payout sits at the listing's input index
|
|
1042
|
+
// and the ordinal routes into the receive output; v1 keeps this
|
|
1043
|
+
// order as-is with its historical unlock reservation.
|
|
1044
|
+
const outputs = [
|
|
1045
|
+
receive,
|
|
1046
|
+
{
|
|
1047
|
+
lockingScript: payoutLockingScript.toHex(),
|
|
1048
|
+
satoshis: payoutSatoshis,
|
|
1049
|
+
outputDescription: 'Payment to seller',
|
|
1050
|
+
tags: [],
|
|
1051
|
+
},
|
|
1052
|
+
...marketFeeOutputs,
|
|
1053
|
+
];
|
|
1046
1054
|
const beefBinary = beef.toBinary();
|
|
1047
|
-
// v1 reserves its historical constant. v2 is sized from the actual
|
|
1048
|
-
// listing script plus our non-pair outputs; the template adds slack
|
|
1049
|
-
// for the change outputs the wallet appends.
|
|
1050
|
-
let unlockingScriptLength = 1368;
|
|
1051
|
-
if (v2Listing) {
|
|
1052
|
-
const otherOutputsBytes = outputs
|
|
1053
|
-
.filter((_, i) => i !== 1 && i !== 2)
|
|
1054
|
-
.reduce((sum, o) => sum +
|
|
1055
|
-
OrdLockV2.buildOutput(o.satoshis, Utils.toArray(o.lockingScript, 'hex')).length, 0);
|
|
1056
|
-
unlockingScriptLength = OrdLockV2.estimatePurchaseUnlockLength(listingOutput.lockingScript, otherOutputsBytes);
|
|
1057
|
-
}
|
|
1058
1055
|
const args = await prepareP1SatArgs(ctx, {
|
|
1059
1056
|
description: `Purchase ordinal for ${payoutSatoshis} sats`,
|
|
1060
1057
|
inputBEEF: beefBinary,
|
|
@@ -1062,7 +1059,9 @@ export const buyOrdinal = {
|
|
|
1062
1059
|
{
|
|
1063
1060
|
outpoint,
|
|
1064
1061
|
inputDescription: 'Listed ordinal',
|
|
1065
|
-
unlockingScriptLength
|
|
1062
|
+
unlockingScriptLength: v2Listing
|
|
1063
|
+
? OrdLockV2.estimatePurchaseUnlockLength(listingOutput.lockingScript)
|
|
1064
|
+
: 1368,
|
|
1066
1065
|
},
|
|
1067
1066
|
],
|
|
1068
1067
|
outputs,
|
|
@@ -1070,11 +1069,12 @@ export const buyOrdinal = {
|
|
|
1070
1069
|
});
|
|
1071
1070
|
const result = await executeTrackedAction(ctx.wallet, args, input.fundingProvider, beefBinary, undefined, {
|
|
1072
1071
|
spends: [{ outpoint, scheme: '1sat' }],
|
|
1073
|
-
usePermissionModule
|
|
1074
|
-
input.useOneSatModule ??
|
|
1075
|
-
input.useModule,
|
|
1072
|
+
usePermissionModule,
|
|
1076
1073
|
permissionScheme: '1sat',
|
|
1077
1074
|
});
|
|
1075
|
+
// v2: the apply step places the receive output after the front
|
|
1076
|
+
// slot(s) and the payout; v1 keeps it at 0.
|
|
1077
|
+
const receiveIndex = v2Listing ? 2 : 0;
|
|
1078
1078
|
if (ctx.debug && ctx.log) {
|
|
1079
1079
|
ctx.log({
|
|
1080
1080
|
timestamp: new Date().toISOString(),
|
|
@@ -1084,7 +1084,7 @@ export const buyOrdinal = {
|
|
|
1084
1084
|
rawtx: result.tx ? Utils.toHex(result.tx) : undefined,
|
|
1085
1085
|
outputs: [
|
|
1086
1086
|
{
|
|
1087
|
-
index:
|
|
1087
|
+
index: receiveIndex,
|
|
1088
1088
|
protocolID: P1SAT_PROTOCOL,
|
|
1089
1089
|
keyID: outpoint,
|
|
1090
1090
|
basket: basket,
|