@1sat/actions 0.0.220 → 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/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,
|