bch-rpa 1.1.0 → 1.2.0
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/CHANGELOG.md +21 -0
- package/README.md +8 -6
- package/dist/paycode.js +1 -1
- package/dist/paycode.js.map +1 -1
- package/dist/scan.js +4 -2
- package/dist/scan.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/INTEGRATION.md +5 -2
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.2.0 (2026-11-07)
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- `RpaMatch.childIndices` identifies the derivation index for each matching output
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Discover every matching output, including multiple outputs to the same derived address, without requiring an address UTXO query to recover omitted outputs
|
|
12
|
+
- Emit uppercase CashCodes by default so QR encoders can use the more compact alphanumeric mode; decoding still accepts lowercase CashCodes
|
|
13
|
+
|
|
14
|
+
### Migration
|
|
15
|
+
|
|
16
|
+
- When deriving a spending key for `outputIndices[i]`, use `childIndices[i]` rather than `i`. The `addresses` array still contains unique destinations indexed by child index.
|
|
17
|
+
|
|
18
|
+
## 1.1.1 (2026-10-27)
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- Point the npm repository and homepage links to the public GitLab.com mirror
|
|
23
|
+
|
|
3
24
|
## 1.1.0 (2026-10-27)
|
|
4
25
|
|
|
5
26
|
### Migration
|
package/README.md
CHANGED
|
@@ -54,7 +54,7 @@ const [payment] = prepareSend(decodePaycode(recipientCashCode), {
|
|
|
54
54
|
// Build a transaction output paying payment.address.
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
-
The designated P2PKH input must remain among the transaction's first 30 inputs. For nonzero scan prefixes, use [`grindPrefix()`](https://gitlab.com/selene.cash/bch-rpa/-/blob/v1.1.
|
|
57
|
+
The designated P2PKH input must remain among the transaction's first 30 inputs. For nonzero scan prefixes, use [`grindPrefix()`](https://gitlab.com/selene.cash/bch-rpa/-/blob/v1.1.1/docs/INTEGRATION.md#grinding) when signing that input. The wallet then broadcasts the transaction.
|
|
58
58
|
|
|
59
59
|
### Detect received payments
|
|
60
60
|
|
|
@@ -67,15 +67,17 @@ const tx = parseRawTransaction(rawTxHex);
|
|
|
67
67
|
const matches = tryTransaction(tx, keys.scanPrivkey, keys.spendPubkey);
|
|
68
68
|
|
|
69
69
|
for (const match of matches) {
|
|
70
|
-
match.outputIndices.forEach((outputIndex,
|
|
70
|
+
match.outputIndices.forEach((outputIndex, index) => {
|
|
71
71
|
const spendingKey = deriveSpendingKey(
|
|
72
|
-
keys.spendPrivkey, match.sharedSecret,
|
|
72
|
+
keys.spendPrivkey, match.sharedSecret, match.childIndices[index],
|
|
73
73
|
);
|
|
74
74
|
// spendingKey controls tx.txid:outputIndex.
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
+
`outputIndices` includes every matching output, including repeated destinations. Use the corresponding `childIndices` entry to derive its spending key. `addresses` contains unique destinations indexed by child index.
|
|
80
|
+
|
|
79
81
|
Check unspent status before counting or spending matched outputs. Without an RPA indexer, use `scanTransaction()` to perform prefix filtering locally.
|
|
80
82
|
|
|
81
83
|
## Integration notes
|
|
@@ -87,9 +89,9 @@ Check unspent status before counting or spending matched outputs. Without an RPA
|
|
|
87
89
|
|
|
88
90
|
## Reference
|
|
89
91
|
|
|
90
|
-
- [Wallet integration guide](https://gitlab.com/selene.cash/bch-rpa/-/blob/v1.1.
|
|
91
|
-
- [Public API](https://gitlab.com/selene.cash/bch-rpa/-/blob/v1.1.
|
|
92
|
-
- [Examples](https://gitlab.com/selene.cash/bch-rpa/-/tree/v1.1.
|
|
92
|
+
- [Wallet integration guide](https://gitlab.com/selene.cash/bch-rpa/-/blob/v1.1.1/docs/INTEGRATION.md) — complete send/receive flows, server queries, and grinding.
|
|
93
|
+
- [Public API](https://gitlab.com/selene.cash/bch-rpa/-/blob/v1.1.1/src/index.ts) and [TypeScript types](https://gitlab.com/selene.cash/bch-rpa/-/blob/v1.1.1/src/types.ts).
|
|
94
|
+
- [Examples](https://gitlab.com/selene.cash/bch-rpa/-/tree/v1.1.1/examples) — sender, receiver, and HD wallet integration.
|
|
93
95
|
- [RPA specification](https://github.com/imaginaryusername/Reusable_specs/blob/master/reusable_addresses.md).
|
|
94
96
|
|
|
95
97
|
## License
|
package/dist/paycode.js
CHANGED
|
@@ -51,7 +51,7 @@ export function encodePaycode(paycode) {
|
|
|
51
51
|
...payloadContents,
|
|
52
52
|
...new Array(CHECKSUM_SIZE).fill(0),
|
|
53
53
|
]));
|
|
54
|
-
return `${prefix}:${encodeBech32([...payloadContents, ...checksum])}
|
|
54
|
+
return `${prefix}:${encodeBech32([...payloadContents, ...checksum])}`.toUpperCase();
|
|
55
55
|
}
|
|
56
56
|
export function decodePaycode(encoded) {
|
|
57
57
|
const lower = encoded.toLowerCase();
|
package/dist/paycode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paycode.js","sourceRoot":"","sources":["../src/paycode.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"paycode.js","sourceRoot":"","sources":["../src/paycode.ts"],"names":[],"mappings":"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"}
|
package/dist/scan.js
CHANGED
|
@@ -108,6 +108,7 @@ function tryInput(inputPubkey, outpointTxid, outpointIndex, inputIndex, outputs,
|
|
|
108
108
|
return decoded.bytecode;
|
|
109
109
|
});
|
|
110
110
|
const matchedIndices = [];
|
|
111
|
+
const childIndices = [];
|
|
111
112
|
const matchedAddresses = [];
|
|
112
113
|
// Try child index 0 first
|
|
113
114
|
for (let childIndex = 0; childIndex < outputs.length; childIndex++) {
|
|
@@ -118,14 +119,14 @@ function tryInput(inputPubkey, outpointTxid, outpointIndex, inputIndex, outputs,
|
|
|
118
119
|
const outputScript = outputScripts[o];
|
|
119
120
|
if (outputScript !== null && binsAreEqual(outputScript, candidateScript)) {
|
|
120
121
|
matchedIndices.push(o);
|
|
121
|
-
|
|
122
|
+
childIndices.push(childIndex);
|
|
122
123
|
found = true;
|
|
123
|
-
break;
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
126
|
// Stop at first gap — spec requires consecutive child indices from 0
|
|
127
127
|
if (!found)
|
|
128
128
|
break;
|
|
129
|
+
matchedAddresses.push(candidate.address);
|
|
129
130
|
}
|
|
130
131
|
if (matchedIndices.length === 0)
|
|
131
132
|
return null;
|
|
@@ -133,6 +134,7 @@ function tryInput(inputPubkey, outpointTxid, outpointIndex, inputIndex, outputs,
|
|
|
133
134
|
sharedSecret,
|
|
134
135
|
inputIndex,
|
|
135
136
|
outputIndices: matchedIndices,
|
|
137
|
+
childIndices,
|
|
136
138
|
addresses: matchedAddresses,
|
|
137
139
|
};
|
|
138
140
|
}
|
package/dist/scan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,UAAU,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,UAAU,CAAC;CAC1B;AAED,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,UAAU,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,UAAU,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,UAAU,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,UAAU,CAAC;CAC1B;AAED,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,UAAU,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,UAAU,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
package/docs/INTEGRATION.md
CHANGED
|
@@ -105,12 +105,15 @@ const matches = tryTransaction(rpaTx, scanPrivkey, spendPubkey);
|
|
|
105
105
|
for (const match of matches) {
|
|
106
106
|
// Derive spending key for each matched output
|
|
107
107
|
for (let i = 0; i < match.outputIndices.length; i++) {
|
|
108
|
-
const
|
|
109
|
-
|
|
108
|
+
const childIndex = match.childIndices[i];
|
|
109
|
+
const spendingKey = deriveSpendingKey(spendPrivkey, match.sharedSecret, childIndex);
|
|
110
|
+
// Controls tx output match.outputIndices[i] at match.addresses[childIndex].
|
|
110
111
|
}
|
|
111
112
|
}
|
|
112
113
|
```
|
|
113
114
|
|
|
115
|
+
`outputIndices` includes every matching output, even when several outputs pay the same derived address. `childIndices` maps each output to its derivation index; do not use its position in `outputIndices` as the child index. `addresses` remains a list of unique destinations indexed by child index.
|
|
116
|
+
|
|
114
117
|
Ownership detection compares decoded locking scripts rather than CashAddr strings. Ordinary and token-aware encodings of the same destination match identically. Non-address outputs are skipped without changing their transaction output indices.
|
|
115
118
|
|
|
116
119
|
Parsing checks transaction encoding, and RPA scanning identifies outputs controlled by the recipient's keys. Neither performs consensus validation, verifies inclusion, or establishes that an output remains unspent. The wallet's node and verification workflow own those checks.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bch-rpa",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Bitcoin Cash Reusable Payment Addresses (RPA) - pure TypeScript over libauth",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
"sideEffects": false,
|
|
22
22
|
"repository": {
|
|
23
23
|
"type": "git",
|
|
24
|
-
"url": "https://
|
|
24
|
+
"url": "git+https://gitlab.com/selene.cash/bch-rpa.git"
|
|
25
25
|
},
|
|
26
|
-
"homepage": "https://
|
|
26
|
+
"homepage": "https://gitlab.com/selene.cash/bch-rpa",
|
|
27
27
|
"bugs": {
|
|
28
28
|
"url": "https://git.xulu.tech/selene.cash/bch-rpa/issues"
|
|
29
29
|
},
|