@1sat/actions 0.0.137 → 0.0.138
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 +20 -12
- 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,CAwHtE,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
|
|
@@ -78,10 +84,12 @@ export const sweepDeposit = {
|
|
|
78
84
|
if (inputs.length === 0) {
|
|
79
85
|
return { swept: 0 };
|
|
80
86
|
}
|
|
81
|
-
// 2. Derive a fresh destination address under
|
|
87
|
+
// 2. Derive a fresh destination address under BRC-29 — sweep target
|
|
88
|
+
// is the wallet's standard funding protocol, so spending the
|
|
89
|
+
// output later goes through the normal BRC-29 funding path.
|
|
82
90
|
const destKeyID = generateSweepKeyID();
|
|
83
91
|
const { publicKey: destPubHex } = await ctx.wallet.getPublicKey({
|
|
84
|
-
protocolID:
|
|
92
|
+
protocolID: BRC29_PROTOCOL_ID,
|
|
85
93
|
keyID: destKeyID,
|
|
86
94
|
forSelf: true,
|
|
87
95
|
});
|
|
@@ -104,7 +112,7 @@ export const sweepDeposit = {
|
|
|
104
112
|
outputDescription: 'Swept funding',
|
|
105
113
|
basket: FUNDING_BASKET,
|
|
106
114
|
customInstructions: JSON.stringify({
|
|
107
|
-
protocolID:
|
|
115
|
+
protocolID: BRC29_PROTOCOL_ID,
|
|
108
116
|
keyID: destKeyID,
|
|
109
117
|
}),
|
|
110
118
|
},
|
|
@@ -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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"}
|