@1sat/actions 0.0.137 → 0.0.139
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/sweep/sweepDeposit.d.ts +5 -4
- package/dist/sweep/sweepDeposit.d.ts.map +1 -1
- package/dist/sweep/sweepDeposit.js +26 -14
- package/dist/sweep/sweepDeposit.js.map +1 -1
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +10 -0
- package/dist/sync/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* sweepDeposit — rotate plain BSV out of the user's P1SAT-derived deposit
|
|
3
|
-
* address into a fresh
|
|
3
|
+
* address into a fresh BRC-29-derived funding output.
|
|
4
4
|
*
|
|
5
5
|
* Run by the wallet (or an explicit caller) after a batch of inbound
|
|
6
6
|
* payments has been internalized. Plain BSV inbounds are parked in
|
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
* picks them up — so a failed sweep is harmless; the next call retries.
|
|
9
9
|
*
|
|
10
10
|
* Each call queries every UTXO currently in the deposit basket, builds
|
|
11
|
-
* one createAction that spends them all, and locks
|
|
12
|
-
* derived address recorded in `FUNDING_BASKET`.
|
|
13
|
-
* are normal
|
|
11
|
+
* one createAction that spends them all (signed under P1SAT), and locks
|
|
12
|
+
* the change to a freshly BRC-29-derived address recorded in `FUNDING_BASKET`.
|
|
13
|
+
* From that point the funds are normal BRC-29 funding, available for
|
|
14
|
+
* ordinary spending under the wallet's standard funding protocol.
|
|
14
15
|
*/
|
|
15
16
|
import type { Action, ActionOptions } from '../types';
|
|
16
17
|
export interface SweepDepositInput extends ActionOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sweepDeposit.d.ts","sourceRoot":"","sources":["../../src/sweep/sweepDeposit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sweepDeposit.d.ts","sourceRoot":"","sources":["../../src/sweep/sweepDeposit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAQrD,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACvD,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,kBAAkB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAgCD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CA4HtE,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* sweepDeposit — rotate plain BSV out of the user's P1SAT-derived deposit
|
|
3
|
-
* address into a fresh
|
|
3
|
+
* address into a fresh BRC-29-derived funding output.
|
|
4
4
|
*
|
|
5
5
|
* Run by the wallet (or an explicit caller) after a batch of inbound
|
|
6
6
|
* payments has been internalized. Plain BSV inbounds are parked in
|
|
@@ -8,23 +8,29 @@
|
|
|
8
8
|
* picks them up — so a failed sweep is harmless; the next call retries.
|
|
9
9
|
*
|
|
10
10
|
* Each call queries every UTXO currently in the deposit basket, builds
|
|
11
|
-
* one createAction that spends them all, and locks
|
|
12
|
-
* derived address recorded in `FUNDING_BASKET`.
|
|
13
|
-
* are normal
|
|
11
|
+
* one createAction that spends them all (signed under P1SAT), and locks
|
|
12
|
+
* the change to a freshly BRC-29-derived address recorded in `FUNDING_BASKET`.
|
|
13
|
+
* From that point the funds are normal BRC-29 funding, available for
|
|
14
|
+
* ordinary spending under the wallet's standard funding protocol.
|
|
14
15
|
*/
|
|
15
|
-
import { DEPOSIT_BASKET, FUNDING_BASKET, P1SAT_PROTOCOL } from '@1sat/types';
|
|
16
|
+
import { BRC29_PROTOCOL_ID, DEPOSIT_BASKET, FUNDING_BASKET, P1SAT_PROTOCOL, } from '@1sat/types';
|
|
16
17
|
import { P2PKH, PublicKey, Utils } from '@bsv/sdk';
|
|
17
18
|
import { executeTrackedAction } from '../utils/createTrackedAction';
|
|
18
19
|
import { signP2PKHInput } from '../utils/signP2PKH';
|
|
19
20
|
/**
|
|
20
21
|
* Generate a unique keyID for the sweep destination output. The funds
|
|
21
|
-
* land at a self-derived address under
|
|
22
|
+
* land at a self-derived address under BRC-29 — the keyID just needs to
|
|
22
23
|
* be unique and recoverable from the on-chain output's customInstructions.
|
|
24
|
+
* BRC-29 keyID convention is `${derivationPrefix} ${derivationSuffix}`
|
|
25
|
+
* (space-separated base64); we follow that shape with random bytes so any
|
|
26
|
+
* BRC-29-aware tooling can parse the parts.
|
|
23
27
|
*/
|
|
24
28
|
function generateSweepKeyID() {
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
const prefixBytes = new Uint8Array(4);
|
|
30
|
+
const suffixBytes = new Uint8Array(8);
|
|
31
|
+
crypto.getRandomValues(prefixBytes);
|
|
32
|
+
crypto.getRandomValues(suffixBytes);
|
|
33
|
+
return `${Utils.toBase64(Array.from(prefixBytes))} ${Utils.toBase64(Array.from(suffixBytes))}`;
|
|
28
34
|
}
|
|
29
35
|
// ============================================================================
|
|
30
36
|
// Action
|
|
@@ -47,15 +53,19 @@ export const sweepDeposit = {
|
|
|
47
53
|
},
|
|
48
54
|
async execute(ctx, input) {
|
|
49
55
|
const limit = input.limit ?? 50;
|
|
50
|
-
// 1. Find every plain-BSV UTXO sitting in the deposit basket.
|
|
56
|
+
// 1. Find every plain-BSV UTXO sitting in the deposit basket. Pull
|
|
57
|
+
// full transaction data so we can hand the wallet the inputBEEF
|
|
58
|
+
// it requires for spending these outputs.
|
|
51
59
|
const list = await ctx.wallet.listOutputs({
|
|
52
60
|
basket: DEPOSIT_BASKET,
|
|
53
61
|
includeCustomInstructions: true,
|
|
62
|
+
include: 'entire transactions',
|
|
54
63
|
limit,
|
|
55
64
|
});
|
|
56
65
|
if (list.outputs.length === 0) {
|
|
57
66
|
return { swept: 0 };
|
|
58
67
|
}
|
|
68
|
+
const inputBEEF = list.BEEF ? Array.from(list.BEEF) : undefined;
|
|
59
69
|
const inputs = [];
|
|
60
70
|
for (const out of list.outputs) {
|
|
61
71
|
if (!out.customInstructions)
|
|
@@ -78,10 +88,12 @@ export const sweepDeposit = {
|
|
|
78
88
|
if (inputs.length === 0) {
|
|
79
89
|
return { swept: 0 };
|
|
80
90
|
}
|
|
81
|
-
// 2. Derive a fresh destination address under
|
|
91
|
+
// 2. Derive a fresh destination address under BRC-29 — sweep target
|
|
92
|
+
// is the wallet's standard funding protocol, so spending the
|
|
93
|
+
// output later goes through the normal BRC-29 funding path.
|
|
82
94
|
const destKeyID = generateSweepKeyID();
|
|
83
95
|
const { publicKey: destPubHex } = await ctx.wallet.getPublicKey({
|
|
84
|
-
protocolID:
|
|
96
|
+
protocolID: BRC29_PROTOCOL_ID,
|
|
85
97
|
keyID: destKeyID,
|
|
86
98
|
forSelf: true,
|
|
87
99
|
});
|
|
@@ -104,7 +116,7 @@ export const sweepDeposit = {
|
|
|
104
116
|
outputDescription: 'Swept funding',
|
|
105
117
|
basket: FUNDING_BASKET,
|
|
106
118
|
customInstructions: JSON.stringify({
|
|
107
|
-
protocolID:
|
|
119
|
+
protocolID: BRC29_PROTOCOL_ID,
|
|
108
120
|
keyID: destKeyID,
|
|
109
121
|
}),
|
|
110
122
|
},
|
|
@@ -113,7 +125,7 @@ export const sweepDeposit = {
|
|
|
113
125
|
randomizeOutputs: false,
|
|
114
126
|
acceptDelayedBroadcast: false,
|
|
115
127
|
},
|
|
116
|
-
}, input.fundingProvider,
|
|
128
|
+
}, input.fundingProvider, inputBEEF, async (tx) => {
|
|
117
129
|
const spends = {};
|
|
118
130
|
for (let i = 0; i < inputs.length; i++) {
|
|
119
131
|
const unlock = await signP2PKHInput(ctx, tx, i, P1SAT_PROTOCOL, inputs[i].keyID);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sweepDeposit.js","sourceRoot":"","sources":["../../src/sweep/sweepDeposit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sweepDeposit.js","sourceRoot":"","sources":["../../src/sweep/sweepDeposit.ts"],"names":[],"mappings":"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"}
|
package/dist/sync/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,aAAa,CAAA;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,aAAa,CAAA;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,UAAU,CAAA;AASrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAyB7C,MAAM,WAAW,kBAAkB;IAClC,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,0EAA0E;IAC1E,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAA;CAC7C;AAID,MAAM,WAAW,mBAAmB;IACnC,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAA;IACjB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAA;IACd,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAA;IACjB,iCAAiC;IACjC,SAAS,EAAE,MAAM,EAAE,CAAA;CACnB;AA0BD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,kBAAkB,EAAE,mBAAmB,CAkJzE,CAAA;AA0CD,OAAO,EAAE,YAAY,EAAE,CAAA;AACvB,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAE3E,OAAO,EAAE,oBAAoB,EAAE,CAAA;AAC/B,YAAY,EACX,yBAAyB,EACzB,0BAA0B,GAC1B,MAAM,wBAAwB,CAAA;AAE/B,oCAAoC;AACpC,eAAO,MAAM,WAAW,uLAAsD,CAAA;AAE9E,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA"}
|
package/dist/sync/index.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import { P1SAT_PROTOCOL } from '@1sat/types';
|
|
9
9
|
import { PublicKey, Utils } from '@bsv/sdk';
|
|
10
10
|
import { internalizeBeef, } from '../utils/internalizeBeef';
|
|
11
|
+
import { sweepDeposit } from '../sweep/sweepDeposit';
|
|
11
12
|
import { ProcessedTxStoreIdb } from './ProcessedTxStoreIdb';
|
|
12
13
|
import { ProcessedTxStoreSqlite } from './ProcessedTxStoreSqlite';
|
|
13
14
|
import { syncCosignDeliveries } from './syncCosignDeliveries';
|
|
@@ -143,6 +144,15 @@ export const syncAddresses = {
|
|
|
143
144
|
if (maxSafeScore > lastScore) {
|
|
144
145
|
await store.setLastScore(maxSafeScore);
|
|
145
146
|
}
|
|
147
|
+
// 7. Rotate any plain-BSV inbounds out of the deposit basket and
|
|
148
|
+
// into a fresh BRC-29 funding output. Idempotent: returns
|
|
149
|
+
// `swept: 0` if the deposit basket is empty.
|
|
150
|
+
try {
|
|
151
|
+
await sweepDeposit.execute(ctx, {});
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
console.error('[syncAddresses] sweepDeposit failed:', error instanceof Error ? error.message : String(error));
|
|
155
|
+
}
|
|
146
156
|
return { processed, failed, lastScore: maxSafeScore, addresses };
|
|
147
157
|
}
|
|
148
158
|
finally {
|
package/dist/sync/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAA0B,cAAc,EAAE,MAAM,aAAa,CAAA;AAEpE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,EAEN,eAAe,GACf,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"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"}
|