@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyIntent.d.ts","sourceRoot":"","sources":["../../src/apply/applyIntent.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,gBAAgB,EAIrB,KAAK,eAAe,EACpB,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"applyIntent.d.ts","sourceRoot":"","sources":["../../src/apply/applyIntent.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,gBAAgB,EAIrB,KAAK,eAAe,EACpB,MAAM,UAAU,CAAA;AAajB;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC3C,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,gBAAgB,GACpB,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED,qDAAqD;AACrD,wBAAsB,gBAAgB,CACrC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,gBAAgB,EACtB,OAAO,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAEf"}
|
|
@@ -6,6 +6,7 @@ import { stampBsv21OutputCustomInstructions } from '../utils/stampBsv21OutputCi.
|
|
|
6
6
|
import { stampOrdinalOutputCustomInstructions } from '../utils/stampOrdinalOutputCi.js';
|
|
7
7
|
import { applyInscribeSigma } from './inscribeSigma.js';
|
|
8
8
|
import { applyOpnsRegister } from './opnsRegister.js';
|
|
9
|
+
import { applyOrdLockV2Purchase, hasUnpreparedOrdLockV2Purchase, } from './ordlockPurchase.js';
|
|
9
10
|
import { stampScriptDerivedTags } from './stampScriptTags.js';
|
|
10
11
|
/**
|
|
11
12
|
* Authoritative enrich (local pipeline + module embellish):
|
|
@@ -20,6 +21,9 @@ export async function applyP1SatCreateAction(wallet, args) {
|
|
|
20
21
|
if (hasUnsealedSigmaTape(args)) {
|
|
21
22
|
await applyInscribeSigma(wallet, args);
|
|
22
23
|
}
|
|
24
|
+
if (hasUnpreparedOrdLockV2Purchase(args)) {
|
|
25
|
+
await applyOrdLockV2Purchase(wallet, args);
|
|
26
|
+
}
|
|
23
27
|
stampScriptDerivedTags(args);
|
|
24
28
|
// Tags/script + spent-input carry → CI. Keeps derivation.
|
|
25
29
|
// Same path for local (WPM encrypts after) and module (may re-encrypt).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyIntent.js","sourceRoot":"","sources":["../../src/apply/applyIntent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"applyIntent.js","sourceRoot":"","sources":["../../src/apply/applyIntent.ts"],"names":[],"mappings":"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"}
|
package/dist/apply/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export type { ApplyFn } from './registry.js';
|
|
|
3
3
|
export { P1SAT_APPLY_REGISTRY } from './registry.js';
|
|
4
4
|
export { applyInscribeSigma, sigmaAnchorKeyId } from './inscribeSigma.js';
|
|
5
5
|
export { applyOpnsRegister } from './opnsRegister.js';
|
|
6
|
+
export { ORDLOCK_FUNDING_HOLD_MS, applyOrdLockV2Purchase, hasUnpreparedOrdLockV2Purchase, loadHeldFunding, selectFrontFunding, } from './ordlockPurchase.js';
|
|
6
7
|
export { stampScriptDerivedTags } from './stampScriptTags.js';
|
|
7
8
|
export { prepareP1SatArgs } from './prepare.js';
|
|
8
9
|
export { applyValidateOnly } from './validateOnly.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/apply/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAC3E,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEpD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/apply/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAC3E,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEpD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EACN,uBAAuB,EACvB,sBAAsB,EACtB,8BAA8B,EAC9B,eAAe,EACf,kBAAkB,GAClB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/apply/index.js
CHANGED
|
@@ -2,6 +2,7 @@ export { applyP1SatCreateAction, applyP1SatIntent } from './applyIntent.js';
|
|
|
2
2
|
export { P1SAT_APPLY_REGISTRY } from './registry.js';
|
|
3
3
|
export { applyInscribeSigma, sigmaAnchorKeyId } from './inscribeSigma.js';
|
|
4
4
|
export { applyOpnsRegister } from './opnsRegister.js';
|
|
5
|
+
export { ORDLOCK_FUNDING_HOLD_MS, applyOrdLockV2Purchase, hasUnpreparedOrdLockV2Purchase, loadHeldFunding, selectFrontFunding, } from './ordlockPurchase.js';
|
|
5
6
|
export { stampScriptDerivedTags } from './stampScriptTags.js';
|
|
6
7
|
export { prepareP1SatArgs } from './prepare.js';
|
|
7
8
|
export { applyValidateOnly } from './validateOnly.js';
|
package/dist/apply/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/apply/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAE3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEpD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/apply/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAE3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEpD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EACN,uBAAuB,EACvB,sBAAsB,EACtB,8BAA8B,EAC9B,eAAe,EACf,kBAAkB,GAClB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OrdLock v2 purchase apply: front funding + canonical output layout.
|
|
3
|
+
*
|
|
4
|
+
* The canonical batch contract binds each listing input `i` to the complete
|
|
5
|
+
* output `i` (SIGHASH_SINGLE), and the listed satoshi follows first-sat
|
|
6
|
+
* ordering. A purchase is therefore laid out as
|
|
7
|
+
*
|
|
8
|
+
* ```text
|
|
9
|
+
* inputs: 0…m-1 front funding · m…m+n-1 listings · wallet fee inputs
|
|
10
|
+
* outputs: 0…m-1 cushion/fillers · m…m+n-1 payouts · receives · extras · wallet change
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* wallet-toolbox keeps explicit inputs in order, appends the funding inputs it
|
|
14
|
+
* allocates after them, and appends change after the caller's outputs, but it
|
|
15
|
+
* refuses to spend its own change as an explicit input. Front funding is
|
|
16
|
+
* therefore a wallet-owned P2PKH output parked in the deposit basket under a
|
|
17
|
+
* short `hold:` tag: an unexpired one is reused when it covers the payouts,
|
|
18
|
+
* otherwise a preparation createAction on the base wallet creates one first.
|
|
19
|
+
* The cushion (front funding minus payouts) goes back to the deposit basket
|
|
20
|
+
* under a fresh hold, so a following purchase can reuse it and `sweepDeposit`
|
|
21
|
+
* returns it to normal funding once the hold lapses.
|
|
22
|
+
*
|
|
23
|
+
* Actions submit the draft shape — the listing input plus the receive,
|
|
24
|
+
* payout and extra outputs in any order — and this apply step rewrites it
|
|
25
|
+
* after approval. In the permission-module path that means one prompt, the
|
|
26
|
+
* same way the Sigma anchor is created in apply.
|
|
27
|
+
*/
|
|
28
|
+
import { Beef, type CreateActionArgs, type WalletInterface } from '@bsv/sdk';
|
|
29
|
+
/** How long a prepared front-funding or cushion output is held from `sweepDeposit`. */
|
|
30
|
+
export declare const ORDLOCK_FUNDING_HOLD_MS: number;
|
|
31
|
+
interface FundingCandidate {
|
|
32
|
+
outpoint: string;
|
|
33
|
+
satoshis: number;
|
|
34
|
+
customInstructions: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* True when the draft args are an OrdLock v2 purchase that has not been laid
|
|
38
|
+
* out yet: every v2 listing input has a matching payout output in the draft.
|
|
39
|
+
* A cancel also spends a v2 listing but carries no payout, so it is left
|
|
40
|
+
* alone; the seller's own key unlocks it.
|
|
41
|
+
*/
|
|
42
|
+
export declare function hasUnpreparedOrdLockV2Purchase(args: CreateActionArgs): boolean;
|
|
43
|
+
/** Deposit-basket outputs still under hold (ours, recent), with their BEEF. */
|
|
44
|
+
export declare function loadHeldFunding(wallet: WalletInterface, exclude: Set<string>, now?: number): Promise<{
|
|
45
|
+
candidates: FundingCandidate[];
|
|
46
|
+
beef?: Beef;
|
|
47
|
+
}>;
|
|
48
|
+
/**
|
|
49
|
+
* Pick front funding covering `needed`: the smallest single output that
|
|
50
|
+
* covers it, else the largest few combined. null when nothing does.
|
|
51
|
+
*/
|
|
52
|
+
export declare function selectFrontFunding(candidates: FundingCandidate[], needed: number): FundingCandidate[] | null;
|
|
53
|
+
/**
|
|
54
|
+
* Lay out an OrdLock v2 purchase. Mutates `args` in place:
|
|
55
|
+
*
|
|
56
|
+
* - inputs: front funding first, then the listing inputs (exact unlock
|
|
57
|
+
* reservation), then any other draft inputs;
|
|
58
|
+
* - outputs: cushion / fillers, one payout per listing at its input index,
|
|
59
|
+
* the draft's basketed 1-sat receive outputs (in order, one per listing),
|
|
60
|
+
* then every other draft output;
|
|
61
|
+
* - inputBEEF merged with the funding BEEF; front inputs stashed as pending
|
|
62
|
+
* resolved spends so the pipeline signs them from their CI.
|
|
63
|
+
*/
|
|
64
|
+
export declare function applyOrdLockV2Purchase(wallet: WalletInterface, args: CreateActionArgs, now?: number): Promise<void>;
|
|
65
|
+
export {};
|
|
66
|
+
//# sourceMappingURL=ordlockPurchase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ordlockPurchase.d.ts","sourceRoot":"","sources":["../../src/apply/ordlockPurchase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAWH,OAAO,EACN,IAAI,EACJ,KAAK,gBAAgB,EAQrB,KAAK,eAAe,EACpB,MAAM,UAAU,CAAA;AASjB,uFAAuF;AACvF,eAAO,MAAM,uBAAuB,QAAa,CAAA;AAajD,UAAU,gBAAgB;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,MAAM,CAAA;CAC1B;AAiDD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC7C,IAAI,EAAE,gBAAgB,GACpB,OAAO,CAQT;AAyBD,+EAA+E;AAC/E,wBAAsB,eAAe,CACpC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,GAAG,SAAa,GACd,OAAO,CAAC;IAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC,CA2B1D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CACjC,UAAU,EAAE,gBAAgB,EAAE,EAC9B,MAAM,EAAE,MAAM,GACZ,gBAAgB,EAAE,GAAG,IAAI,CAa3B;AA+CD;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAC3C,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,gBAAgB,EACtB,GAAG,SAAa,GACd,OAAO,CAAC,IAAI,CAAC,CAuIf"}
|
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OrdLock v2 purchase apply: front funding + canonical output layout.
|
|
3
|
+
*
|
|
4
|
+
* The canonical batch contract binds each listing input `i` to the complete
|
|
5
|
+
* output `i` (SIGHASH_SINGLE), and the listed satoshi follows first-sat
|
|
6
|
+
* ordering. A purchase is therefore laid out as
|
|
7
|
+
*
|
|
8
|
+
* ```text
|
|
9
|
+
* inputs: 0…m-1 front funding · m…m+n-1 listings · wallet fee inputs
|
|
10
|
+
* outputs: 0…m-1 cushion/fillers · m…m+n-1 payouts · receives · extras · wallet change
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* wallet-toolbox keeps explicit inputs in order, appends the funding inputs it
|
|
14
|
+
* allocates after them, and appends change after the caller's outputs, but it
|
|
15
|
+
* refuses to spend its own change as an explicit input. Front funding is
|
|
16
|
+
* therefore a wallet-owned P2PKH output parked in the deposit basket under a
|
|
17
|
+
* short `hold:` tag: an unexpired one is reused when it covers the payouts,
|
|
18
|
+
* otherwise a preparation createAction on the base wallet creates one first.
|
|
19
|
+
* The cushion (front funding minus payouts) goes back to the deposit basket
|
|
20
|
+
* under a fresh hold, so a following purchase can reuse it and `sweepDeposit`
|
|
21
|
+
* returns it to normal funding once the hold lapses.
|
|
22
|
+
*
|
|
23
|
+
* Actions submit the draft shape — the listing input plus the receive,
|
|
24
|
+
* payout and extra outputs in any order — and this apply step rewrites it
|
|
25
|
+
* after approval. In the permission-module path that means one prompt, the
|
|
26
|
+
* same way the Sigma anchor is created in apply.
|
|
27
|
+
*/
|
|
28
|
+
import { OrdLockV2 } from '@1sat/templates';
|
|
29
|
+
import { DEPOSIT_BASKET, ORDLOCK_FUNDING_KEY_PREFIX, ORDLOCK_FUNDING_TAG, P1SAT_PROTOCOL, depositHoldTag, isDepositHeld, } from '@1sat/types';
|
|
30
|
+
import { Beef, LockingScript, P2PKH, PublicKey, Utils, } from '@bsv/sdk';
|
|
31
|
+
import { PENDING_RESOLVED_SPENDS_KEY, } from '../pipeline/spendTargets.js';
|
|
32
|
+
import { stampManagedOutputIds } from '../utils/createTrackedAction.js';
|
|
33
|
+
import { ensurePlaintextCi } from '../utils/walletMetadataCi.js';
|
|
34
|
+
/** How long a prepared front-funding or cushion output is held from `sweepDeposit`. */
|
|
35
|
+
export const ORDLOCK_FUNDING_HOLD_MS = 5 * 60_000;
|
|
36
|
+
/** Most front funding inputs one purchase will combine. */
|
|
37
|
+
const MAX_FRONT_INPUTS = 4;
|
|
38
|
+
/** P2PKH unlock reservation for a front funding input. */
|
|
39
|
+
const P2PKH_UNLOCK_LENGTH = 108;
|
|
40
|
+
/** Stash key marking args already laid out (idempotence). */
|
|
41
|
+
const PREPARED_KEY = '__ordlockV2Prepared';
|
|
42
|
+
const FILLER_HEX = '006a';
|
|
43
|
+
function bytesEqual(a, b) {
|
|
44
|
+
if (a.length !== b.length)
|
|
45
|
+
return false;
|
|
46
|
+
for (let i = 0; i < a.length; i++)
|
|
47
|
+
if (a[i] !== b[i])
|
|
48
|
+
return false;
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
function serializedOutput(o) {
|
|
52
|
+
return OrdLockV2.buildOutput(o.satoshis, Utils.toArray(o.lockingScript, 'hex'));
|
|
53
|
+
}
|
|
54
|
+
/** Listing inputs of the draft args, resolved against args.inputBEEF. */
|
|
55
|
+
function findListingInputs(args) {
|
|
56
|
+
if (!args.inputs?.length || !args.inputBEEF)
|
|
57
|
+
return [];
|
|
58
|
+
let beef;
|
|
59
|
+
try {
|
|
60
|
+
beef = Beef.fromBinary(Array.from(args.inputBEEF));
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
const out = [];
|
|
66
|
+
args.inputs.forEach((input, draftIndex) => {
|
|
67
|
+
const [txid, voutStr] = input.outpoint.replace('_', '.').split('.');
|
|
68
|
+
const src = beef.findTxid(txid)?.tx?.outputs[Number(voutStr)];
|
|
69
|
+
if (!src)
|
|
70
|
+
return;
|
|
71
|
+
const data = OrdLockV2.decode(src.lockingScript);
|
|
72
|
+
if (!data)
|
|
73
|
+
return;
|
|
74
|
+
out.push({
|
|
75
|
+
draftIndex,
|
|
76
|
+
outpoint: `${txid}.${Number(voutStr)}`,
|
|
77
|
+
lockingScript: src.lockingScript,
|
|
78
|
+
payout: data.payout,
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
return out;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* True when the draft args are an OrdLock v2 purchase that has not been laid
|
|
85
|
+
* out yet: every v2 listing input has a matching payout output in the draft.
|
|
86
|
+
* A cancel also spends a v2 listing but carries no payout, so it is left
|
|
87
|
+
* alone; the seller's own key unlocks it.
|
|
88
|
+
*/
|
|
89
|
+
export function hasUnpreparedOrdLockV2Purchase(args) {
|
|
90
|
+
if (args[PREPARED_KEY]) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
const listings = findListingInputs(args);
|
|
94
|
+
if (listings.length === 0)
|
|
95
|
+
return false;
|
|
96
|
+
const outputs = (args.outputs ?? []).map(serializedOutput);
|
|
97
|
+
return listings.every((l) => outputs.some((o) => bytesEqual(o, l.payout)));
|
|
98
|
+
}
|
|
99
|
+
/** Derive a fresh P1SAT funding key: P2PKH script + spend CI. */
|
|
100
|
+
async function fundingScript(wallet, keyID) {
|
|
101
|
+
const { publicKey } = await wallet.getPublicKey({
|
|
102
|
+
protocolID: P1SAT_PROTOCOL,
|
|
103
|
+
keyID,
|
|
104
|
+
counterparty: 'self',
|
|
105
|
+
forSelf: true,
|
|
106
|
+
});
|
|
107
|
+
return {
|
|
108
|
+
lockingScript: new P2PKH()
|
|
109
|
+
.lock(PublicKey.fromString(publicKey).toAddress())
|
|
110
|
+
.toHex(),
|
|
111
|
+
customInstructions: JSON.stringify({
|
|
112
|
+
protocolID: P1SAT_PROTOCOL,
|
|
113
|
+
keyID,
|
|
114
|
+
counterparty: 'self',
|
|
115
|
+
}),
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/** Deposit-basket outputs still under hold (ours, recent), with their BEEF. */
|
|
119
|
+
export async function loadHeldFunding(wallet, exclude, now = Date.now()) {
|
|
120
|
+
const res = await wallet.listOutputs({
|
|
121
|
+
basket: DEPOSIT_BASKET,
|
|
122
|
+
include: 'entire transactions',
|
|
123
|
+
includeTags: true,
|
|
124
|
+
includeCustomInstructions: true,
|
|
125
|
+
limit: 200,
|
|
126
|
+
});
|
|
127
|
+
const beef = res.BEEF?.length
|
|
128
|
+
? Beef.fromBinary(Array.from(res.BEEF))
|
|
129
|
+
: undefined;
|
|
130
|
+
const candidates = [];
|
|
131
|
+
for (const o of res.outputs) {
|
|
132
|
+
if (!o.spendable || !o.customInstructions)
|
|
133
|
+
continue;
|
|
134
|
+
if (!isDepositHeld(o.tags, now))
|
|
135
|
+
continue;
|
|
136
|
+
if (exclude.has(o.outpoint))
|
|
137
|
+
continue;
|
|
138
|
+
// Stored CI may be WPM-encrypted; the pipeline signs from plaintext.
|
|
139
|
+
const customInstructions = (await ensurePlaintextCi(wallet, o.customInstructions)) ??
|
|
140
|
+
o.customInstructions;
|
|
141
|
+
candidates.push({
|
|
142
|
+
outpoint: o.outpoint,
|
|
143
|
+
satoshis: o.satoshis,
|
|
144
|
+
customInstructions,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
return { candidates, beef };
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Pick front funding covering `needed`: the smallest single output that
|
|
151
|
+
* covers it, else the largest few combined. null when nothing does.
|
|
152
|
+
*/
|
|
153
|
+
export function selectFrontFunding(candidates, needed) {
|
|
154
|
+
const asc = [...candidates].sort((a, b) => a.satoshis - b.satoshis);
|
|
155
|
+
const single = asc.find((c) => c.satoshis >= needed);
|
|
156
|
+
if (single)
|
|
157
|
+
return [single];
|
|
158
|
+
const picked = [];
|
|
159
|
+
let sum = 0;
|
|
160
|
+
for (const c of asc.reverse()) {
|
|
161
|
+
picked.push(c);
|
|
162
|
+
sum += c.satoshis;
|
|
163
|
+
if (sum >= needed)
|
|
164
|
+
return picked;
|
|
165
|
+
if (picked.length >= MAX_FRONT_INPUTS)
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Preparation createAction on the base wallet: one P2PKH output of `satoshis`
|
|
172
|
+
* in the deposit basket under a hold. Broadcast normally, so the wallet's
|
|
173
|
+
* change from it stays spendable whatever happens to the purchase.
|
|
174
|
+
*/
|
|
175
|
+
async function prepareFrontFunding(wallet, keyID, satoshis, now) {
|
|
176
|
+
const funding = await fundingScript(wallet, keyID);
|
|
177
|
+
const result = await wallet.createAction({
|
|
178
|
+
description: `Fund OrdLock purchase (${satoshis} sats)`.slice(0, 50),
|
|
179
|
+
outputs: [
|
|
180
|
+
{
|
|
181
|
+
lockingScript: funding.lockingScript,
|
|
182
|
+
satoshis,
|
|
183
|
+
outputDescription: 'OrdLock purchase funding',
|
|
184
|
+
basket: DEPOSIT_BASKET,
|
|
185
|
+
tags: [
|
|
186
|
+
ORDLOCK_FUNDING_TAG,
|
|
187
|
+
depositHoldTag(now + ORDLOCK_FUNDING_HOLD_MS),
|
|
188
|
+
],
|
|
189
|
+
customInstructions: funding.customInstructions,
|
|
190
|
+
},
|
|
191
|
+
],
|
|
192
|
+
// Broadcast now, not on the next monitor pass: the purchase built right
|
|
193
|
+
// after this spends output 0, and the network rejects it as "missing
|
|
194
|
+
// parents" until this transaction has been sent.
|
|
195
|
+
options: { randomizeOutputs: false, acceptDelayedBroadcast: false },
|
|
196
|
+
});
|
|
197
|
+
if (!result.txid || !result.tx) {
|
|
198
|
+
throw new Error('ordlock.purchase apply: front funding preparation failed');
|
|
199
|
+
}
|
|
200
|
+
return {
|
|
201
|
+
candidate: {
|
|
202
|
+
outpoint: `${result.txid}.0`,
|
|
203
|
+
satoshis,
|
|
204
|
+
customInstructions: funding.customInstructions,
|
|
205
|
+
},
|
|
206
|
+
beef: Beef.fromBinary(Array.from(result.tx)),
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Lay out an OrdLock v2 purchase. Mutates `args` in place:
|
|
211
|
+
*
|
|
212
|
+
* - inputs: front funding first, then the listing inputs (exact unlock
|
|
213
|
+
* reservation), then any other draft inputs;
|
|
214
|
+
* - outputs: cushion / fillers, one payout per listing at its input index,
|
|
215
|
+
* the draft's basketed 1-sat receive outputs (in order, one per listing),
|
|
216
|
+
* then every other draft output;
|
|
217
|
+
* - inputBEEF merged with the funding BEEF; front inputs stashed as pending
|
|
218
|
+
* resolved spends so the pipeline signs them from their CI.
|
|
219
|
+
*/
|
|
220
|
+
export async function applyOrdLockV2Purchase(wallet, args, now = Date.now()) {
|
|
221
|
+
if (!hasUnpreparedOrdLockV2Purchase(args))
|
|
222
|
+
return;
|
|
223
|
+
const listings = findListingInputs(args);
|
|
224
|
+
const draftInputs = args.inputs ?? [];
|
|
225
|
+
const draftOutputs = args.outputs ?? [];
|
|
226
|
+
const actionId = stampManagedOutputIds(args);
|
|
227
|
+
// Receive outputs: basketed 1-sat outputs, in draft order, one per listing.
|
|
228
|
+
const receives = draftOutputs.filter((o) => o.basket && o.satoshis === 1);
|
|
229
|
+
if (receives.length !== listings.length) {
|
|
230
|
+
throw new Error(`ordlock.purchase apply: ${listings.length} listing input(s) need ${listings.length} basketed 1-sat receive output(s), found ${receives.length}`);
|
|
231
|
+
}
|
|
232
|
+
// Drop draft payouts (the layout re-adds each at its listing's index).
|
|
233
|
+
const payoutBytes = listings.map((l) => l.payout);
|
|
234
|
+
const extras = draftOutputs.filter((o) => !receives.includes(o) &&
|
|
235
|
+
!payoutBytes.some((p) => bytesEqual(p, serializedOutput(o))));
|
|
236
|
+
const needed = listings.reduce((sum, l) => sum + (OrdLockV2.payoutOutput(l.lockingScript).satoshis ?? 0), 0);
|
|
237
|
+
const exclude = new Set(listings.map((l) => l.outpoint));
|
|
238
|
+
const held = await loadHeldFunding(wallet, exclude, now);
|
|
239
|
+
let front = selectFrontFunding(held.candidates, needed);
|
|
240
|
+
let fundingBeef = held.beef;
|
|
241
|
+
if (!front) {
|
|
242
|
+
const prepared = await prepareFrontFunding(wallet, `${ORDLOCK_FUNDING_KEY_PREFIX} ${actionId}`, needed, now);
|
|
243
|
+
front = [prepared.candidate];
|
|
244
|
+
fundingBeef = prepared.beef;
|
|
245
|
+
}
|
|
246
|
+
const cushionKey = await fundingScript(wallet, `${ORDLOCK_FUNDING_KEY_PREFIX} cushion ${actionId}`);
|
|
247
|
+
const plan = OrdLockV2.planPurchase({
|
|
248
|
+
frontSatoshis: front.map((f) => f.satoshis),
|
|
249
|
+
listings: listings.map((l) => l.lockingScript),
|
|
250
|
+
receives: receives.map((r) => ({
|
|
251
|
+
satoshis: 1,
|
|
252
|
+
lockingScript: LockingScript.fromHex(r.lockingScript),
|
|
253
|
+
})),
|
|
254
|
+
cushionScript: LockingScript.fromHex(cushionKey.lockingScript),
|
|
255
|
+
});
|
|
256
|
+
const outputs = plan.outputs.map((o, vout) => {
|
|
257
|
+
if (vout === plan.cushionVout) {
|
|
258
|
+
return {
|
|
259
|
+
lockingScript: cushionKey.lockingScript,
|
|
260
|
+
satoshis: o.satoshis ?? 0,
|
|
261
|
+
outputDescription: 'OrdLock funding cushion',
|
|
262
|
+
basket: DEPOSIT_BASKET,
|
|
263
|
+
tags: [
|
|
264
|
+
ORDLOCK_FUNDING_TAG,
|
|
265
|
+
depositHoldTag(now + ORDLOCK_FUNDING_HOLD_MS),
|
|
266
|
+
],
|
|
267
|
+
customInstructions: cushionKey.customInstructions,
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
if (plan.fillerVouts.includes(vout)) {
|
|
271
|
+
return {
|
|
272
|
+
lockingScript: FILLER_HEX,
|
|
273
|
+
satoshis: 0,
|
|
274
|
+
outputDescription: 'OrdLock index filler',
|
|
275
|
+
tags: [],
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
const payoutIndex = plan.payoutVouts.indexOf(vout);
|
|
279
|
+
if (payoutIndex !== -1) {
|
|
280
|
+
return {
|
|
281
|
+
lockingScript: o.lockingScript.toHex(),
|
|
282
|
+
satoshis: o.satoshis ?? 0,
|
|
283
|
+
outputDescription: 'Payment to seller',
|
|
284
|
+
tags: [],
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
return receives[plan.receiveVouts.indexOf(vout)];
|
|
288
|
+
});
|
|
289
|
+
outputs.push(...extras);
|
|
290
|
+
const inputs = front.map((f) => ({
|
|
291
|
+
outpoint: f.outpoint,
|
|
292
|
+
inputDescription: 'OrdLock purchase funding',
|
|
293
|
+
unlockingScriptLength: P2PKH_UNLOCK_LENGTH,
|
|
294
|
+
}));
|
|
295
|
+
for (const l of listings) {
|
|
296
|
+
inputs.push({
|
|
297
|
+
...draftInputs[l.draftIndex],
|
|
298
|
+
unlockingScriptLength: OrdLockV2.estimatePurchaseUnlockLength(l.lockingScript),
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
const listingDraftIndexes = new Set(listings.map((l) => l.draftIndex));
|
|
302
|
+
draftInputs.forEach((i, idx) => {
|
|
303
|
+
if (!listingDraftIndexes.has(idx))
|
|
304
|
+
inputs.push(i);
|
|
305
|
+
});
|
|
306
|
+
const merged = new Beef();
|
|
307
|
+
if (args.inputBEEF)
|
|
308
|
+
merged.mergeBeef(Beef.fromBinary(Array.from(args.inputBEEF)));
|
|
309
|
+
if (fundingBeef)
|
|
310
|
+
merged.mergeBeef(fundingBeef);
|
|
311
|
+
args.inputs = inputs;
|
|
312
|
+
args.outputs = outputs;
|
|
313
|
+
args.inputBEEF = merged.toBinary();
|
|
314
|
+
args.options = {
|
|
315
|
+
...args.options,
|
|
316
|
+
randomizeOutputs: false,
|
|
317
|
+
trustSelf: 'known',
|
|
318
|
+
};
|
|
319
|
+
const stash = args;
|
|
320
|
+
const pending = front.map((f) => ({
|
|
321
|
+
outpoint: f.outpoint,
|
|
322
|
+
customInstructions: f.customInstructions,
|
|
323
|
+
}));
|
|
324
|
+
stash[PENDING_RESOLVED_SPENDS_KEY] = [
|
|
325
|
+
...(stash[PENDING_RESOLVED_SPENDS_KEY] ?? []),
|
|
326
|
+
...pending,
|
|
327
|
+
];
|
|
328
|
+
args[PREPARED_KEY] =
|
|
329
|
+
true;
|
|
330
|
+
// Re-stamp `id:` tags: the receive output moved and the cushion is new.
|
|
331
|
+
stampManagedOutputIds(args);
|
|
332
|
+
}
|
|
333
|
+
//# sourceMappingURL=ordlockPurchase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ordlockPurchase.js","sourceRoot":"","sources":["../../src/apply/ordlockPurchase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ordlockPurchase.test.d.ts","sourceRoot":"","sources":["../../src/apply/ordlockPurchase.test.ts"],"names":[],"mappings":""}
|