@1sat/actions 0.0.220 → 0.0.222
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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ordfs/dir.d.ts +99 -0
- package/dist/ordfs/dir.d.ts.map +1 -0
- package/dist/ordfs/dir.js +251 -0
- package/dist/ordfs/dir.js.map +1 -0
- package/dist/ordfs/index.d.ts +7 -1
- package/dist/ordfs/index.d.ts.map +1 -1
- package/dist/ordfs/index.js +5 -1
- package/dist/ordfs/index.js.map +1 -1
- package/dist/ordfs/outpoint.d.ts +11 -0
- package/dist/ordfs/outpoint.d.ts.map +1 -0
- package/dist/ordfs/outpoint.js +42 -0
- package/dist/ordfs/outpoint.js.map +1 -0
- package/dist/ordfs/outputs.d.ts +11 -0
- package/dist/ordfs/outputs.d.ts.map +1 -1
- package/dist/ordfs/outputs.js +23 -3
- package/dist/ordfs/outputs.js.map +1 -1
- package/dist/ordfs/patch.d.ts +34 -0
- package/dist/ordfs/patch.d.ts.map +1 -0
- package/dist/ordfs/patch.js +103 -0
- package/dist/ordfs/patch.js.map +1 -0
- package/dist/ordfs/vcdiff.d.ts +16 -0
- package/dist/ordfs/vcdiff.d.ts.map +1 -0
- package/dist/ordfs/vcdiff.js +87 -0
- package/dist/ordfs/vcdiff.js.map +1 -0
- 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/sync/addressSyncTask.d.ts +1 -1
- package/dist/sync/addressSyncTask.js +1 -1
- package/dist/sync/index.d.ts +1 -1
- package/dist/sync/index.js +2 -2
- package/dist/sync/index.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/dist/utils/pushdrop.d.ts +36 -0
- package/dist/utils/pushdrop.d.ts.map +1 -0
- package/dist/utils/pushdrop.js +56 -0
- package/dist/utils/pushdrop.js.map +1 -0
- package/package.json +9 -8
|
@@ -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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export * from './constants.js';
|
|
|
10
10
|
export { applyP1SatCreateAction, applyP1SatIntent, applyOpnsRegister, applyInscribeSigma, applyValidateOnly, prepareP1SatArgs, sigmaAnchorKeyId, stampScriptDerivedTags, P1SAT_APPLY_REGISTRY, type ApplyFn, } from './apply/index.js';
|
|
11
11
|
export { signP2PKHInput } from './utils/signP2PKH.js';
|
|
12
12
|
export { completeSignedAction, type CompleteSignedActionResult, type SigningCallback, } from './utils/completeSignedAction.js';
|
|
13
|
+
export { PUSHDROP_SIG_PLACEHOLDER_LEN, pushDropCustomInstructions, pushDropDecode, pushDropLock, pushDropSeal, type PushDropLockParams, } from './utils/pushdrop.js';
|
|
13
14
|
export { createTrackedAction, executeTrackedAction, randomActionId, stampManagedOutputIds, ensureP1SatDispatchLabel, ensureActionId, type TrackedActionOptions, } from './utils/createTrackedAction.js';
|
|
14
15
|
export { hasOneSatModule } from './utils/hasOneSatModule.js';
|
|
15
16
|
export type { PrepareP1SatOptions } from './apply/prepare.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -15,6 +15,7 @@ export { applyP1SatCreateAction, applyP1SatIntent, applyOpnsRegister, applyInscr
|
|
|
15
15
|
// Export shared utilities
|
|
16
16
|
export { signP2PKHInput } from './utils/signP2PKH.js';
|
|
17
17
|
export { completeSignedAction, } from './utils/completeSignedAction.js';
|
|
18
|
+
export { PUSHDROP_SIG_PLACEHOLDER_LEN, pushDropCustomInstructions, pushDropDecode, pushDropLock, pushDropSeal, } from './utils/pushdrop.js';
|
|
18
19
|
export { createTrackedAction, executeTrackedAction, randomActionId, stampManagedOutputIds, ensureP1SatDispatchLabel, ensureActionId, } from './utils/createTrackedAction.js';
|
|
19
20
|
export { hasOneSatModule } from './utils/hasOneSatModule.js';
|
|
20
21
|
export { spendsFromLabels, labelsFromSpends, spendToLabel, spendTargetsFromLabels, labelsFromSpendTargets, spendTargetToLabel, buildSpendsForTargets, buildSpendsForResolved, materializeSpends, resolveSpendTargets, unlockByScript, buildPurchaseUnlockingScript, runCreateActionPipeline, finishCreateAction, embellishCreateActionArgs, } from './pipeline/index.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ordfs/dir` — binary directory manifest codec.
|
|
3
|
+
*
|
|
4
|
+
* The binary sibling of the `ord-fs/json` manifest: same logical structure
|
|
5
|
+
* (a directory maps child names to outpoint references), encoded as a fixed
|
|
6
|
+
* byte layout so the encoding is canonical — same logical directory always
|
|
7
|
+
* produces byte-identical output, giving manifests a stable SHA-256.
|
|
8
|
+
*
|
|
9
|
+
* Layout (all integers big-endian; no varints; no padding):
|
|
10
|
+
*
|
|
11
|
+
* dir :=
|
|
12
|
+
* [1B version] 0x01
|
|
13
|
+
* [2B entry count] uint16
|
|
14
|
+
* [entries × N] sorted ascending by raw name bytes
|
|
15
|
+
*
|
|
16
|
+
* entry :=
|
|
17
|
+
* [1B flags]
|
|
18
|
+
* bit0 KIND 0 = file, 1 = directory
|
|
19
|
+
* bit1 EXEC executable (file)
|
|
20
|
+
* bit2 SYMLINK content = target path (file)
|
|
21
|
+
* bit3 REFTYPE 0 = same-tx output, 1 = full outpoint
|
|
22
|
+
* bits4–7 MUST be zero
|
|
23
|
+
* [1B name length] 1..255
|
|
24
|
+
* [NB name] raw UTF-8 path component; no 0x00, no '/'
|
|
25
|
+
* [target]
|
|
26
|
+
* REFTYPE 0: [1B vout] sibling output in the same tx
|
|
27
|
+
* REFTYPE 1: [32B txid][4B vout] exact Bitcoin outpoint bytes
|
|
28
|
+
* (txid internal order, vout LE)
|
|
29
|
+
*
|
|
30
|
+
* Spec: docs/plans/ordfs-formats.html in the gib repo. Writers MUST emit
|
|
31
|
+
* canonical form; readers MUST reject anything else.
|
|
32
|
+
*/
|
|
33
|
+
/** Content type written on `ordfs/dir` inscription outputs. */
|
|
34
|
+
export declare const DIR_CONTENT_TYPE = "ordfs/dir";
|
|
35
|
+
/** Legacy JSON manifest content type (read support only going forward). */
|
|
36
|
+
export declare const JSON_MANIFEST_CONTENT_TYPE_LEGACY = "ord-fs/json";
|
|
37
|
+
/** Current manifest format version. */
|
|
38
|
+
export declare const DIR_VERSION = 1;
|
|
39
|
+
/** Maximum number of entries in one manifest (uint16 entry count). */
|
|
40
|
+
export declare const MAX_DIR_ENTRIES = 65535;
|
|
41
|
+
/** A reference to another output in the same transaction (`_N` in JSON). */
|
|
42
|
+
export interface SameTxRef {
|
|
43
|
+
kind: 'same-tx';
|
|
44
|
+
vout: number;
|
|
45
|
+
}
|
|
46
|
+
/** A reference to an exact outpoint elsewhere (native Bitcoin serialization). */
|
|
47
|
+
export interface OutpointRef {
|
|
48
|
+
kind: 'outpoint';
|
|
49
|
+
txid: string;
|
|
50
|
+
vout: number;
|
|
51
|
+
}
|
|
52
|
+
export type DirRef = SameTxRef | OutpointRef;
|
|
53
|
+
/** One child entry in a directory manifest. */
|
|
54
|
+
export interface DirEntry {
|
|
55
|
+
/** Raw UTF-8 name bytes; a single path component (never contains '/'). */
|
|
56
|
+
name: Uint8Array;
|
|
57
|
+
/** Directory (true) vs file (false). */
|
|
58
|
+
isDir: boolean;
|
|
59
|
+
/** Executable file bit (git mode 100755). Files only. */
|
|
60
|
+
exec?: boolean;
|
|
61
|
+
/** Symlink: the leaf content is a relative target path. Files only. */
|
|
62
|
+
symlink?: boolean;
|
|
63
|
+
/** What this entry points at. */
|
|
64
|
+
ref: DirRef;
|
|
65
|
+
}
|
|
66
|
+
/** A decoded directory manifest. */
|
|
67
|
+
export interface DirManifest {
|
|
68
|
+
version: number;
|
|
69
|
+
entries: DirEntry[];
|
|
70
|
+
}
|
|
71
|
+
/** Thrown for any spec violation: malformed, non-canonical, or invalid input. */
|
|
72
|
+
export declare class DirFormatError extends Error {
|
|
73
|
+
constructor(message: string);
|
|
74
|
+
}
|
|
75
|
+
/** Sort key for canonical ordering: ascending by raw name bytes. */
|
|
76
|
+
export declare function dirEntryNameCompare(a: DirEntry, b: DirEntry): number;
|
|
77
|
+
/**
|
|
78
|
+
* Encode a directory manifest to canonical bytes.
|
|
79
|
+
*
|
|
80
|
+
* Entries are sorted by raw name bytes; duplicates are rejected. Throws
|
|
81
|
+
* {@link DirFormatError} on any spec violation.
|
|
82
|
+
*/
|
|
83
|
+
export declare function dirEncode(manifest: DirManifest): Uint8Array;
|
|
84
|
+
/**
|
|
85
|
+
* Decode `ordfs/dir` bytes. Validates strictly: known version, canonical
|
|
86
|
+
* sorted order, unique names, zero reserved bits, sane name bytes. Throws
|
|
87
|
+
* {@link DirFormatError} on anything else — including non-canonical input.
|
|
88
|
+
*/
|
|
89
|
+
export declare function dirDecode(bytes: Uint8Array): DirManifest;
|
|
90
|
+
/** Helper: UTF-8 encode an entry name. Validates component legality. */
|
|
91
|
+
export declare function dirName(name: string): Uint8Array;
|
|
92
|
+
/** Helper: UTF-8 decode an entry name. */
|
|
93
|
+
export declare function dirNameString(name: Uint8Array): string;
|
|
94
|
+
/**
|
|
95
|
+
* Default file for a directory with no remaining path: an entry named `.`,
|
|
96
|
+
* else `index.html`. Same convention as `ord-fs/json`.
|
|
97
|
+
*/
|
|
98
|
+
export declare function dirDefault(manifest: DirManifest): DirEntry | undefined;
|
|
99
|
+
//# sourceMappingURL=dir.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dir.d.ts","sourceRoot":"","sources":["../../src/ordfs/dir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAIH,+DAA+D;AAC/D,eAAO,MAAM,gBAAgB,cAAc,CAAA;AAE3C,2EAA2E;AAC3E,eAAO,MAAM,iCAAiC,gBAAgB,CAAA;AAE9D,uCAAuC;AACvC,eAAO,MAAM,WAAW,IAAI,CAAA;AAE5B,sEAAsE;AACtE,eAAO,MAAM,eAAe,QAAS,CAAA;AAErC,4EAA4E;AAC5E,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,iFAAiF;AACjF,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,WAAW,CAAA;AAE5C,+CAA+C;AAC/C,MAAM,WAAW,QAAQ;IACxB,0EAA0E;IAC1E,IAAI,EAAE,UAAU,CAAA;IAChB,wCAAwC;IACxC,KAAK,EAAE,OAAO,CAAA;IACd,yDAAyD;IACzD,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAA;CACX;AAED,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,QAAQ,EAAE,CAAA;CACnB;AAQD,iFAAiF;AACjF,qBAAa,cAAe,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI3B;AAcD,oEAAoE;AACpE,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAEpE;AA+BD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,WAAW,GAAG,UAAU,CAsD3D;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAmExD;AAED,wEAAwE;AACxE,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAShD;AAED,0CAA0C;AAC1C,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEtD;AAKD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAOtE"}
|