@vultisig/core-mpc 1.0.1 → 1.1.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 +54 -0
- package/dist/dkls/dkls.d.ts.map +1 -1
- package/dist/dkls/dkls.js +75 -49
- package/dist/dkls/dkls.js.map +1 -1
- package/dist/keysign/cosigner.js +1 -1
- package/dist/keysign/cosigner.js.map +1 -1
- package/dist/keysign/fee/resolvers/cosmos.d.ts.map +1 -1
- package/dist/keysign/fee/resolvers/cosmos.js +9 -10
- package/dist/keysign/fee/resolvers/cosmos.js.map +1 -1
- package/dist/keysign/index.js +21 -17
- package/dist/keysign/index.js.map +1 -1
- package/dist/keysign/refine/amount.js +1 -1
- package/dist/keysign/refine/amount.js.map +1 -1
- package/dist/keysign/refine/utxo.d.ts.map +1 -1
- package/dist/keysign/refine/utxo.js +5 -6
- package/dist/keysign/refine/utxo.js.map +1 -1
- package/dist/keysign/setupMessage/make.d.ts.map +1 -1
- package/dist/keysign/setupMessage/make.js +2 -11
- package/dist/keysign/setupMessage/make.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/bitcoin/sighash.d.ts +28 -0
- package/dist/keysign/signingInputs/resolvers/bitcoin/sighash.d.ts.map +1 -0
- package/dist/keysign/signingInputs/resolvers/bitcoin/sighash.js +147 -0
- package/dist/keysign/signingInputs/resolvers/bitcoin/sighash.js.map +1 -0
- package/dist/keysign/signingInputs/resolvers/cardano.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/cardano.js +25 -1
- package/dist/keysign/signingInputs/resolvers/cardano.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/ton/index.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/ton/index.js +1 -0
- package/dist/keysign/signingInputs/resolvers/ton/index.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/ton/native.d.ts +2 -1
- package/dist/keysign/signingInputs/resolvers/ton/native.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/ton/native.js +2 -1
- package/dist/keysign/signingInputs/resolvers/ton/native.js.map +1 -1
- package/dist/keysign/swap/build.d.ts +1 -1
- package/dist/keysign/swap/build.d.ts.map +1 -1
- package/dist/lib/initialize.d.ts +1 -1
- package/dist/lib/initialize.d.ts.map +1 -1
- package/dist/lib/initialize.js +4 -10
- package/dist/lib/initialize.js.map +1 -1
- package/dist/lib/keyshare.d.ts +1 -4
- package/dist/lib/keyshare.d.ts.map +1 -1
- package/dist/lib/keyshare.js +8 -8
- package/dist/lib/keyshare.js.map +1 -1
- package/dist/lib/signSession.d.ts +6 -5
- package/dist/lib/signSession.d.ts.map +1 -1
- package/dist/lib/signSession.js +38 -11
- package/dist/lib/signSession.js.map +1 -1
- package/dist/schnorr/schnorrKeygen.d.ts.map +1 -1
- package/dist/schnorr/schnorrKeygen.js +25 -17
- package/dist/schnorr/schnorrKeygen.js.map +1 -1
- package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.d.ts.map +1 -1
- package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.js +7 -0
- package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.js.map +1 -1
- package/dist/tx/compile/cardano/buildSignedCardanoTx.d.ts +28 -0
- package/dist/tx/compile/cardano/buildSignedCardanoTx.d.ts.map +1 -0
- package/dist/tx/compile/cardano/buildSignedCardanoTx.js +78 -0
- package/dist/tx/compile/cardano/buildSignedCardanoTx.js.map +1 -0
- package/dist/tx/compile/compileSignBitcoinTx.d.ts +20 -0
- package/dist/tx/compile/compileSignBitcoinTx.d.ts.map +1 -0
- package/dist/tx/compile/compileSignBitcoinTx.js +101 -0
- package/dist/tx/compile/compileSignBitcoinTx.js.map +1 -0
- package/dist/tx/compile/compileTx.d.ts +4 -2
- package/dist/tx/compile/compileTx.d.ts.map +1 -1
- package/dist/tx/compile/compileTx.js +47 -5
- package/dist/tx/compile/compileTx.js.map +1 -1
- package/dist/tx/preSigningHashes/index.d.ts +3 -1
- package/dist/tx/preSigningHashes/index.d.ts.map +1 -1
- package/dist/tx/preSigningHashes/index.js +10 -5
- package/dist/tx/preSigningHashes/index.js.map +1 -1
- package/dist/types/utils/commVault.d.ts.map +1 -1
- package/dist/types/utils/commVault.js +1 -4
- package/dist/types/utils/commVault.js.map +1 -1
- package/dist/types/utils/libType.d.ts +3 -7
- package/dist/types/utils/libType.d.ts.map +1 -1
- package/dist/types/utils/libType.js +4 -20
- package/dist/types/utils/libType.js.map +1 -1
- package/dist/types/vultisig/keygen/v1/single_keygen_message_pb.d.ts +5 -5
- package/dist/types/vultisig/keygen/v1/single_keygen_message_pb.d.ts.map +1 -1
- package/dist/types/vultisig/keygen/v1/single_keygen_message_pb.js +5 -12
- package/dist/types/vultisig/keygen/v1/single_keygen_message_pb.js.map +1 -1
- package/dist/types/vultisig/keygen/v1/single_keygen_type_pb.d.ts +1 -1
- package/dist/types/vultisig/keygen/v1/single_keygen_type_pb.d.ts.map +1 -1
- package/dist/types/vultisig/keygen/v1/single_keygen_type_pb.js +3 -7
- package/dist/types/vultisig/keygen/v1/single_keygen_type_pb.js.map +1 -1
- package/dist/types/vultisig/keysign/v1/keysign_message_pb.d.ts +7 -1
- package/dist/types/vultisig/keysign/v1/keysign_message_pb.d.ts.map +1 -1
- package/dist/types/vultisig/keysign/v1/keysign_message_pb.js +1 -1
- package/dist/types/vultisig/keysign/v1/keysign_message_pb.js.map +1 -1
- package/dist/types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.d.ts +152 -0
- package/dist/types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.d.ts.map +1 -1
- package/dist/types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.js +16 -1
- package/dist/types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.js.map +1 -1
- package/dist/types/vultisig/vault/v1/vault_pb.d.ts +8 -0
- package/dist/types/vultisig/vault/v1/vault_pb.d.ts.map +1 -1
- package/dist/types/vultisig/vault/v1/vault_pb.js +1 -1
- package/dist/types/vultisig/vault/v1/vault_pb.js.map +1 -1
- package/package.json +18 -2
package/dist/lib/signSession.js
CHANGED
|
@@ -1,15 +1,42 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { SignSession as MldsaSignSession } from '@vultisig/lib-mldsa';
|
|
3
|
-
import { SignSession as SchnorrSignSession } from '@vultisig/lib-schnorr/vs_schnorr_wasm';
|
|
1
|
+
import { getMpcEngine } from '@vultisig/mpc-types';
|
|
4
2
|
import { toMpcLibKeyshare } from './keyshare.js';
|
|
3
|
+
const getEngineKey = (algo) => {
|
|
4
|
+
if (algo === 'mldsa') {
|
|
5
|
+
throw new Error('MLDSA uses a dedicated signing path (MldsaKeysign), not the pluggable MPC engine. ' +
|
|
6
|
+
'Route MLDSA signing through packages/core/mpc/mldsa/ instead.');
|
|
7
|
+
}
|
|
8
|
+
return algo === 'eddsa' ? 'schnorr' : 'dkls';
|
|
9
|
+
};
|
|
10
|
+
const dklsMethods = {
|
|
11
|
+
setup: (...args) => getMpcEngine().dkls.signSetup(...args),
|
|
12
|
+
setupMessageHash: (setupMsg) => getMpcEngine().dkls.signSetupMessageHash(setupMsg),
|
|
13
|
+
};
|
|
14
|
+
const mldsaNotSupported = {
|
|
15
|
+
setup: () => {
|
|
16
|
+
throw new Error('MLDSA uses a dedicated signing path (MldsaKeysign), not the pluggable MPC engine.');
|
|
17
|
+
},
|
|
18
|
+
setupMessageHash: () => {
|
|
19
|
+
throw new Error('MLDSA uses a dedicated signing path (MldsaKeysign), not the pluggable MPC engine.');
|
|
20
|
+
},
|
|
21
|
+
};
|
|
5
22
|
export const SignSession = {
|
|
6
|
-
ecdsa:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
23
|
+
ecdsa: dklsMethods,
|
|
24
|
+
mldsa: mldsaNotSupported,
|
|
25
|
+
eddsa: {
|
|
26
|
+
setup: (keyId, chainPath, messageHash, partyIds) => {
|
|
27
|
+
if (!messageHash) {
|
|
28
|
+
throw new Error('EdDSA signing requires a message hash');
|
|
29
|
+
}
|
|
30
|
+
return getMpcEngine().schnorr.signSetup(keyId, chainPath, messageHash, partyIds);
|
|
31
|
+
},
|
|
32
|
+
setupMessageHash: (setupMsg) => getMpcEngine().schnorr.signSetupMessageHash(setupMsg),
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
export const makeSignSession = async ({ setupMessage, localPartyId, keyShare, signatureAlgorithm, }) => {
|
|
36
|
+
const engineKey = getEngineKey(signatureAlgorithm);
|
|
37
|
+
return getMpcEngine()[engineKey].createSignSession(setupMessage, localPartyId, toMpcLibKeyshare({
|
|
38
|
+
keyShare,
|
|
39
|
+
signatureAlgorithm,
|
|
40
|
+
}));
|
|
14
41
|
};
|
|
15
42
|
//# sourceMappingURL=signSession.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signSession.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/lib/signSession.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"signSession.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/lib/signSession.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C,MAAM,YAAY,GAAG,CAAC,IAAwB,EAAsB,EAAE;IACpE,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,oFAAoF;YACpF,+DAA+D,CAChE,CAAA;IACH,CAAC;IACD,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;AAC9C,CAAC,CAAA;AAYD,MAAM,WAAW,GAAuB;IACtC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAC1D,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;CACnF,CAAA;AAED,MAAM,iBAAiB,GAAuB;IAC5C,KAAK,EAAE,GAAG,EAAE;QACV,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAA;IACH,CAAC;IACD,gBAAgB,EAAE,GAAG,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAA;IACH,CAAC;CACF,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAmD;IACzE,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,iBAAiB;IACxB,KAAK,EAAE;QACL,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE;YACjD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;YAC1D,CAAC;YACD,OAAO,YAAY,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;QAClF,CAAC;QACD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC7B,YAAY,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC;KACxD;CACF,CAAA;AASD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,EACpC,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,kBAAkB,GACG,EAAE,EAAE;IACzB,MAAM,SAAS,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAA;IAClD,OAAO,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAChD,YAAY,EACZ,YAAY,EACZ,gBAAgB,CAAC;QACf,QAAQ;QACR,kBAAkB;KACnB,CAAC,CACH,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schnorrKeygen.d.ts","sourceRoot":"","sources":["../../../../../packages/core/mpc/schnorr/schnorrKeygen.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schnorrKeygen.d.ts","sourceRoot":"","sources":["../../../../../packages/core/mpc/schnorr/schnorrKeygen.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAW3D,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,gBAAgB,CAAiB;IACzC,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,uBAAuB,CAGhB;IACf,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;gBAEhC,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,OAAO,EACzB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EAAE,EACzB,kBAAkB,EAAE,MAAM,EAAE,EAC5B,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,UAAU,EAAE,mHAAmH;IAC7I,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB;YAiBW,eAAe;YA8Cf,cAAc;YA6Dd,WAAW;IAmDZ,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM;;;;;YAatC,YAAY;IAkGb,qBAAqB,CAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,SAAS,CAAC,EAAE,MAAM;;;;;IAeP,qBAAqB,CAChC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;YA+BF,cAAc;IAqFf,uBAAuB,CAClC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM,EACvB,iBAAiB,CAAC,EAAE,MAAM;;;;;CAqB7B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getMpcEngine } from '@vultisig/mpc-types';
|
|
2
2
|
import { base64Encode } from '@vultisig/lib-utils/base64Encode';
|
|
3
3
|
import { getKeygenThreshold } from '../getKeygenThreshold.js';
|
|
4
4
|
import { getMessageHash } from '../getMessageHash.js';
|
|
@@ -146,13 +146,17 @@ export class Schnorr {
|
|
|
146
146
|
console.log('session id:', this.sessionId);
|
|
147
147
|
this.isKeygenComplete = false;
|
|
148
148
|
try {
|
|
149
|
+
const engine = getMpcEngine().schnorr;
|
|
149
150
|
let session;
|
|
150
151
|
if ('create' in this.keygenOperation) {
|
|
151
|
-
session =
|
|
152
|
+
session = await engine.createKeygenSession(this.setupMessage, this.localPartyId);
|
|
152
153
|
}
|
|
153
154
|
else if ('reshare' in this.keygenOperation &&
|
|
154
155
|
this.keygenOperation.reshare === 'migrate') {
|
|
155
|
-
|
|
156
|
+
if (!engine.createMigrateSession) {
|
|
157
|
+
throw new Error('schnorr engine does not support createMigrateSession');
|
|
158
|
+
}
|
|
159
|
+
session = await engine.createMigrateSession(this.setupMessage, this.localPartyId, Buffer.from(this.localUI || '', 'hex'), Buffer.from(this.publicKey || '', 'hex'), Buffer.from(this.chainCode || '', 'hex'));
|
|
156
160
|
}
|
|
157
161
|
else {
|
|
158
162
|
throw new Error('invalid keygen type');
|
|
@@ -162,7 +166,7 @@ export class Schnorr {
|
|
|
162
166
|
const inbound = this.processInbound(session, start, messageId);
|
|
163
167
|
const [, inboundResult] = await Promise.all([outbound, inbound]);
|
|
164
168
|
if (inboundResult) {
|
|
165
|
-
const keyShare = session.finish();
|
|
169
|
+
const keyShare = await session.finish();
|
|
166
170
|
return {
|
|
167
171
|
keyshare: base64Encode(keyShare.toBytes()),
|
|
168
172
|
publicKey: Buffer.from(keyShare.publicKey()).toString('hex'),
|
|
@@ -195,9 +199,10 @@ export class Schnorr {
|
|
|
195
199
|
async startReshare(rawSchnorrKeyshare, attempt, messageId) {
|
|
196
200
|
console.log('startReshare schnorr, attempt:', attempt);
|
|
197
201
|
this.isKeygenComplete = false;
|
|
202
|
+
const engine = getMpcEngine().schnorr;
|
|
198
203
|
let localKeyshare = null;
|
|
199
204
|
if (rawSchnorrKeyshare !== undefined && rawSchnorrKeyshare.length > 0) {
|
|
200
|
-
localKeyshare =
|
|
205
|
+
localKeyshare = engine.keyshareFromBytes(Buffer.from(rawSchnorrKeyshare, 'base64'));
|
|
201
206
|
}
|
|
202
207
|
try {
|
|
203
208
|
const setupMessageId = messageId ?? 'eddsa';
|
|
@@ -216,7 +221,7 @@ export class Schnorr {
|
|
|
216
221
|
keygenCommittee: this.keygenCommittee,
|
|
217
222
|
oldKeygenCommittee: this.oldKeygenCommittee,
|
|
218
223
|
});
|
|
219
|
-
setupMessage =
|
|
224
|
+
setupMessage = engine.reshareSetup(localKeyshare, allCommittee, new Uint8Array(oldCommitteeIdx), threshold, new Uint8Array(newCommitteeIdx));
|
|
220
225
|
// upload setup message to server
|
|
221
226
|
const encryptedSetupMsg = toMpcServerMessage(setupMessage, this.hexEncryptionKey);
|
|
222
227
|
await uploadMpcSetupMessage({
|
|
@@ -235,14 +240,14 @@ export class Schnorr {
|
|
|
235
240
|
});
|
|
236
241
|
setupMessage = fromMpcServerMessage(encodedEncryptedSetupMsg, this.hexEncryptionKey);
|
|
237
242
|
}
|
|
238
|
-
const session =
|
|
243
|
+
const session = await engine.createReshareSession(setupMessage, this.localPartyId, localKeyshare);
|
|
239
244
|
try {
|
|
240
245
|
const start = Date.now();
|
|
241
246
|
const outbound = this.processOutbound(session, messageId);
|
|
242
247
|
const inbound = this.processInbound(session, start, messageId);
|
|
243
248
|
const [, inboundResult] = await Promise.all([outbound, inbound]);
|
|
244
249
|
if (inboundResult) {
|
|
245
|
-
const finalKeyShare = session.finish();
|
|
250
|
+
const finalKeyShare = await session.finish();
|
|
246
251
|
if (finalKeyShare === undefined) {
|
|
247
252
|
throw new Error('keyshare is null, schnorr reshare failed');
|
|
248
253
|
}
|
|
@@ -254,7 +259,7 @@ export class Schnorr {
|
|
|
254
259
|
}
|
|
255
260
|
}
|
|
256
261
|
finally {
|
|
257
|
-
session.free();
|
|
262
|
+
session.free?.();
|
|
258
263
|
}
|
|
259
264
|
}
|
|
260
265
|
catch (error) {
|
|
@@ -281,10 +286,12 @@ export class Schnorr {
|
|
|
281
286
|
if (!this.isInitiateDevice) {
|
|
282
287
|
return;
|
|
283
288
|
}
|
|
289
|
+
const engine = getMpcEngine().schnorr;
|
|
284
290
|
const privateKey = Buffer.from(hexPrivateKey, 'hex');
|
|
285
291
|
const chainCode = Buffer.from(hexChainCode, 'hex');
|
|
286
|
-
|
|
287
|
-
this.
|
|
292
|
+
const importResult = await engine.createKeyImportInitiator(Uint8Array.from(privateKey), Uint8Array.from(chainCode), getKeygenThreshold(this.keygenCommittee.length), this.keygenCommittee);
|
|
293
|
+
this.pendingKeyImportSession = importResult;
|
|
294
|
+
this.setupMessage = importResult.setup;
|
|
288
295
|
const encryptedSetupMsg = toMpcServerMessage(this.setupMessage, this.hexEncryptionKey);
|
|
289
296
|
const effectiveSetupId = messageId ?? 'eddsa_key_import';
|
|
290
297
|
await uploadMpcSetupMessage({
|
|
@@ -299,21 +306,22 @@ export class Schnorr {
|
|
|
299
306
|
console.log('startKeyImport schnorr, attempt:', attempt);
|
|
300
307
|
this.isKeygenComplete = false;
|
|
301
308
|
try {
|
|
309
|
+
const engine = getMpcEngine().schnorr;
|
|
302
310
|
let session = null;
|
|
303
311
|
const effectiveSetupId = setupMessageId ?? 'eddsa_key_import';
|
|
304
312
|
if (this.isInitiateDevice) {
|
|
305
313
|
if (attempt === 0 && this.pendingKeyImportSession) {
|
|
306
314
|
const pendingSession = this.pendingKeyImportSession;
|
|
307
|
-
session = pendingSession;
|
|
315
|
+
session = pendingSession.session;
|
|
308
316
|
this.setupMessage = pendingSession.setup;
|
|
309
317
|
this.pendingKeyImportSession = null;
|
|
310
318
|
}
|
|
311
319
|
else {
|
|
312
320
|
const privateKey = Buffer.from(hexPrivateKey, 'hex');
|
|
313
321
|
const chainCode = Buffer.from(hexChainCode, 'hex');
|
|
314
|
-
const
|
|
315
|
-
this.setupMessage =
|
|
316
|
-
session =
|
|
322
|
+
const importResult = await engine.createKeyImportInitiator(Uint8Array.from(privateKey), Uint8Array.from(chainCode), getKeygenThreshold(this.keygenCommittee.length), this.keygenCommittee);
|
|
323
|
+
this.setupMessage = importResult.setup;
|
|
324
|
+
session = importResult.session;
|
|
317
325
|
const encryptedSetupMsg = toMpcServerMessage(this.setupMessage, this.hexEncryptionKey);
|
|
318
326
|
await uploadMpcSetupMessage({
|
|
319
327
|
serverUrl: this.serverURL,
|
|
@@ -334,7 +342,7 @@ export class Schnorr {
|
|
|
334
342
|
}
|
|
335
343
|
if ('keyimport' in this.keygenOperation) {
|
|
336
344
|
if (!this.isInitiateDevice) {
|
|
337
|
-
session =
|
|
345
|
+
session = await engine.createKeyImportSession(this.setupMessage, this.localPartyId);
|
|
338
346
|
}
|
|
339
347
|
}
|
|
340
348
|
else {
|
|
@@ -349,7 +357,7 @@ export class Schnorr {
|
|
|
349
357
|
const inbound = this.processInbound(session, start, exchangeMessageId);
|
|
350
358
|
const [, inboundResult] = await Promise.all([outbound, inbound]);
|
|
351
359
|
if (inboundResult) {
|
|
352
|
-
const keyShare = session.finish();
|
|
360
|
+
const keyShare = await session.finish();
|
|
353
361
|
return {
|
|
354
362
|
keyshare: base64Encode(keyShare.toBytes()),
|
|
355
363
|
publicKey: Buffer.from(keyShare.publicKey()).toString('hex'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schnorrKeygen.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/schnorr/schnorrKeygen.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schnorrKeygen.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/schnorr/schnorrKeygen.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCompiledTxsForBlockaidInput.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAKrD,OAAO,EAAE,cAAc,EAAE,MAAM,0DAA0D,CAAA;AAGzF,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,8BAA8B,GAAI,0BAG5C,KAAK,
|
|
1
|
+
{"version":3,"file":"getCompiledTxsForBlockaidInput.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAKrD,OAAO,EAAE,cAAc,EAAE,MAAM,0DAA0D,CAAA;AAGzF,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,8BAA8B,GAAI,0BAG5C,KAAK,kCAiEP,CAAA"}
|
|
@@ -21,11 +21,18 @@ export const getCompiledTxsForBlockaidInput = ({ payload, walletCore, }) => {
|
|
|
21
21
|
walletCore,
|
|
22
22
|
publicKey,
|
|
23
23
|
});
|
|
24
|
+
// SignBitcoin (PSBT) flows use custom sighash/compilation that WalletCore
|
|
25
|
+
// doesn't understand. Skip Blockaid simulation for PSBT transactions.
|
|
26
|
+
// TODO: implement Blockaid validation for PSBT flows using compileSignBitcoinTx
|
|
27
|
+
if (payload.signData.case === 'signBitcoin') {
|
|
28
|
+
return [];
|
|
29
|
+
}
|
|
24
30
|
return inputs.map(txInputData => {
|
|
25
31
|
const preHashes = getPreSigningHashes({
|
|
26
32
|
walletCore,
|
|
27
33
|
txInputData,
|
|
28
34
|
chain,
|
|
35
|
+
keysignPayload: payload,
|
|
29
36
|
});
|
|
30
37
|
const signatures = walletCore.DataVector.create();
|
|
31
38
|
const publicKeys = walletCore.DataVector.create();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCompiledTxsForBlockaidInput.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAA;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sDAAsD,CAAA;AACzF,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAGjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAA;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAA;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AAOrE,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,EAC7C,OAAO,EACP,UAAU,GACJ,EAAE,EAAE;IACV,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IACtC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAErC,MAAM,aAAa,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;IACpD,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,cAAc,CACnD,aAAa,EACb,kBAAkB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAC1C,CAAA;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,KAAK;QACL,UAAU;KACX,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,uBAAuB,CAAC;QACrC,cAAc,EAAE,OAAO;QACvB,UAAU;QACV,SAAS;KACV,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QAC9B,MAAM,SAAS,GAAG,mBAAmB,CAAC;YACpC,UAAU;YACV,WAAW;YACX,KAAK;
|
|
1
|
+
{"version":3,"file":"getCompiledTxsForBlockaidInput.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wrap a WalletCore-produced Cardano tx body with witness CBOR.
|
|
3
|
+
*
|
|
4
|
+
* compileWithSignatures() calls encodeTransactionWithSig() which hits
|
|
5
|
+
* AddressV2::isValid() — crashing under WASM DISABLE_EXCEPTION_CATCHING.
|
|
6
|
+
* This module manually wraps the pre-signed tx body (from preImageHashes)
|
|
7
|
+
* with a CBOR witness set, producing a valid signed Cardano transaction.
|
|
8
|
+
*
|
|
9
|
+
* The tx body bytes are embedded verbatim (not re-encoded) because the
|
|
10
|
+
* MPC signature covers Blake2b of the exact bytes. Re-encoding could
|
|
11
|
+
* change key ordering or integer widths, invalidating the signature.
|
|
12
|
+
*
|
|
13
|
+
* The witness set is hand-encoded because common JS CBOR libraries tag
|
|
14
|
+
* Maps or encode object keys as text strings — Cardano requires plain
|
|
15
|
+
* CBOR maps with unsigned-integer keys.
|
|
16
|
+
*/
|
|
17
|
+
type BuildSignedCardanoTxInput = {
|
|
18
|
+
/** CBOR-encoded transaction body from PreSigningOutput.data */
|
|
19
|
+
txBodyCbor: Uint8Array;
|
|
20
|
+
/** 32-byte Ed25519 spending public key */
|
|
21
|
+
publicKey: Uint8Array;
|
|
22
|
+
/** 64-byte Ed25519 signature (r || s, each little-endian) */
|
|
23
|
+
signature: Uint8Array;
|
|
24
|
+
};
|
|
25
|
+
/** Returns the full signed Cardano transaction as CBOR bytes. */
|
|
26
|
+
export declare const buildSignedCardanoTx: ({ txBodyCbor, publicKey, signature, }: BuildSignedCardanoTxInput) => Uint8Array;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=buildSignedCardanoTx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildSignedCardanoTx.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/tx/compile/cardano/buildSignedCardanoTx.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,KAAK,yBAAyB,GAAG;IAC/B,+DAA+D;IAC/D,UAAU,EAAE,UAAU,CAAA;IACtB,0CAA0C;IAC1C,SAAS,EAAE,UAAU,CAAA;IACrB,6DAA6D;IAC7D,SAAS,EAAE,UAAU,CAAA;CACtB,CAAA;AA4DD,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,GAAI,uCAIlC,yBAAyB,KAAG,UAW9B,CAAA"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wrap a WalletCore-produced Cardano tx body with witness CBOR.
|
|
3
|
+
*
|
|
4
|
+
* compileWithSignatures() calls encodeTransactionWithSig() which hits
|
|
5
|
+
* AddressV2::isValid() — crashing under WASM DISABLE_EXCEPTION_CATCHING.
|
|
6
|
+
* This module manually wraps the pre-signed tx body (from preImageHashes)
|
|
7
|
+
* with a CBOR witness set, producing a valid signed Cardano transaction.
|
|
8
|
+
*
|
|
9
|
+
* The tx body bytes are embedded verbatim (not re-encoded) because the
|
|
10
|
+
* MPC signature covers Blake2b of the exact bytes. Re-encoding could
|
|
11
|
+
* change key ordering or integer widths, invalidating the signature.
|
|
12
|
+
*
|
|
13
|
+
* The witness set is hand-encoded because common JS CBOR libraries tag
|
|
14
|
+
* Maps or encode object keys as text strings — Cardano requires plain
|
|
15
|
+
* CBOR maps with unsigned-integer keys.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Encode a CBOR byte string: major type 2, then length, then data.
|
|
19
|
+
* Supports lengths up to 65535 (two-byte length).
|
|
20
|
+
*/
|
|
21
|
+
const cborBytes = (data) => {
|
|
22
|
+
if (data.length < 24) {
|
|
23
|
+
const out = new Uint8Array(1 + data.length);
|
|
24
|
+
out[0] = 0x40 | data.length;
|
|
25
|
+
out.set(data, 1);
|
|
26
|
+
return out;
|
|
27
|
+
}
|
|
28
|
+
if (data.length < 256) {
|
|
29
|
+
const out = new Uint8Array(2 + data.length);
|
|
30
|
+
out[0] = 0x58;
|
|
31
|
+
out[1] = data.length;
|
|
32
|
+
out.set(data, 2);
|
|
33
|
+
return out;
|
|
34
|
+
}
|
|
35
|
+
const out = new Uint8Array(3 + data.length);
|
|
36
|
+
out[0] = 0x59;
|
|
37
|
+
out[1] = (data.length >> 8) & 0xff;
|
|
38
|
+
out[2] = data.length & 0xff;
|
|
39
|
+
out.set(data, 3);
|
|
40
|
+
return out;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Build the witness set CBOR: a1 00 81 82 5820<vkey> 5840<sig>
|
|
44
|
+
* = map(1) { 0 => [ [bytes(32), bytes(64)] ] }
|
|
45
|
+
*/
|
|
46
|
+
const buildWitnessCbor = (publicKey, signature) => {
|
|
47
|
+
const vkeyCbor = cborBytes(publicKey);
|
|
48
|
+
const sigCbor = cborBytes(signature);
|
|
49
|
+
// inner array [vkey, sig]: 0x82 = array(2)
|
|
50
|
+
const pair = concat([new Uint8Array([0x82]), vkeyCbor, sigCbor]);
|
|
51
|
+
// outer array [[vkey, sig]]: 0x81 = array(1)
|
|
52
|
+
const arr = concat([new Uint8Array([0x81]), pair]);
|
|
53
|
+
// map {0 => arr}: 0xa1 = map(1), 0x00 = uint(0)
|
|
54
|
+
return concat([new Uint8Array([0xa1, 0x00]), arr]);
|
|
55
|
+
};
|
|
56
|
+
const concat = (parts) => {
|
|
57
|
+
const totalLen = parts.reduce((sum, p) => sum + p.length, 0);
|
|
58
|
+
const result = new Uint8Array(totalLen);
|
|
59
|
+
let offset = 0;
|
|
60
|
+
for (const p of parts) {
|
|
61
|
+
result.set(p, offset);
|
|
62
|
+
offset += p.length;
|
|
63
|
+
}
|
|
64
|
+
return result;
|
|
65
|
+
};
|
|
66
|
+
/** Returns the full signed Cardano transaction as CBOR bytes. */
|
|
67
|
+
export const buildSignedCardanoTx = ({ txBodyCbor, publicKey, signature, }) => {
|
|
68
|
+
const witnessCbor = buildWitnessCbor(publicKey, signature);
|
|
69
|
+
// Signed tx: 0x84 [tx_body, witnesses, isValid, auxiliary_data]
|
|
70
|
+
return concat([
|
|
71
|
+
new Uint8Array([0x84]),
|
|
72
|
+
txBodyCbor,
|
|
73
|
+
witnessCbor,
|
|
74
|
+
new Uint8Array([0xf5]), // CBOR true (is_valid)
|
|
75
|
+
new Uint8Array([0xf6]), // CBOR null (no auxiliary data)
|
|
76
|
+
]);
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=buildSignedCardanoTx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildSignedCardanoTx.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/tx/compile/cardano/buildSignedCardanoTx.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { PublicKey } from '@trustwallet/wallet-core/dist/src/wallet-core';
|
|
2
|
+
import { KeysignSignature } from '../../keysign/KeysignSignature.js';
|
|
3
|
+
import { SignBitcoin } from '../../types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.js';
|
|
4
|
+
/**
|
|
5
|
+
* Build a raw signed Bitcoin transaction from SignBitcoin fields + MPC signatures.
|
|
6
|
+
* Uses bitcoinjs-lib's Transaction class for serialization (proper varint encoding,
|
|
7
|
+
* witness handling, segwit markers).
|
|
8
|
+
*
|
|
9
|
+
* Returns an encoded TW.Bitcoin.Proto.SigningOutput so callers can decode it
|
|
10
|
+
* the same way as WalletCore-compiled transactions.
|
|
11
|
+
*
|
|
12
|
+
* Currently only handles single-signer flows where ALL isOurs inputs belong to
|
|
13
|
+
* this vault. Non-ours inputs get empty witnesses, making the tx invalid on-chain
|
|
14
|
+
* if any exist. Multi-party PSBT support (where non-ours inputs have existing
|
|
15
|
+
* signatures from other parties) is a follow-up.
|
|
16
|
+
*
|
|
17
|
+
* @see https://www.npmjs.org/package/bitcoinjs-lib
|
|
18
|
+
*/
|
|
19
|
+
export declare const compileSignBitcoinTx: (signBitcoin: SignBitcoin, signatures: Record<string, KeysignSignature>, publicKey: PublicKey) => Uint8Array;
|
|
20
|
+
//# sourceMappingURL=compileSignBitcoinTx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compileSignBitcoinTx.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/compile/compileSignBitcoinTx.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,kEAAkE,CAAA;AAE9F;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,GAC/B,aAAa,WAAW,EACxB,YAAY,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC5C,WAAW,SAAS,KACnB,UAmGF,CAAA"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { Transaction } from 'bitcoinjs-lib';
|
|
2
|
+
import { TW } from '@trustwallet/wallet-core';
|
|
3
|
+
import { computePreSigningHashes } from '../../keysign/signingInputs/resolvers/bitcoin/sighash.js';
|
|
4
|
+
/**
|
|
5
|
+
* Build a raw signed Bitcoin transaction from SignBitcoin fields + MPC signatures.
|
|
6
|
+
* Uses bitcoinjs-lib's Transaction class for serialization (proper varint encoding,
|
|
7
|
+
* witness handling, segwit markers).
|
|
8
|
+
*
|
|
9
|
+
* Returns an encoded TW.Bitcoin.Proto.SigningOutput so callers can decode it
|
|
10
|
+
* the same way as WalletCore-compiled transactions.
|
|
11
|
+
*
|
|
12
|
+
* Currently only handles single-signer flows where ALL isOurs inputs belong to
|
|
13
|
+
* this vault. Non-ours inputs get empty witnesses, making the tx invalid on-chain
|
|
14
|
+
* if any exist. Multi-party PSBT support (where non-ours inputs have existing
|
|
15
|
+
* signatures from other parties) is a follow-up.
|
|
16
|
+
*
|
|
17
|
+
* @see https://www.npmjs.org/package/bitcoinjs-lib
|
|
18
|
+
*/
|
|
19
|
+
export const compileSignBitcoinTx = (signBitcoin, signatures, publicKey) => {
|
|
20
|
+
const hashes = computePreSigningHashes(signBitcoin);
|
|
21
|
+
const pubKeyBytes = Buffer.from(publicKey.data());
|
|
22
|
+
// Build the transaction using bitcoinjs-lib's Transaction class
|
|
23
|
+
// which handles varint encoding, segwit markers, and witness serialization.
|
|
24
|
+
const tx = new Transaction();
|
|
25
|
+
tx.version = signBitcoin.version;
|
|
26
|
+
tx.locktime = signBitcoin.locktime;
|
|
27
|
+
// Add inputs
|
|
28
|
+
for (const input of signBitcoin.inputs) {
|
|
29
|
+
const txid = Buffer.from(input.hash, 'hex').reverse(); // display -> internal byte order
|
|
30
|
+
tx.addInput(txid, input.index, input.sequence ?? 0xffffffff);
|
|
31
|
+
// P2SH-P2WPKH: set scriptSig to redeemScript push
|
|
32
|
+
if (input.scriptType === 'p2sh-p2wpkh' && input.redeemScript) {
|
|
33
|
+
const redeemScriptBuf = Buffer.from(input.redeemScript, 'hex');
|
|
34
|
+
const scriptSig = Buffer.concat([
|
|
35
|
+
Buffer.from([redeemScriptBuf.length]),
|
|
36
|
+
redeemScriptBuf,
|
|
37
|
+
]);
|
|
38
|
+
tx.setInputScript(tx.ins.length - 1, scriptSig);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// Add outputs
|
|
42
|
+
for (const output of signBitcoin.outputs) {
|
|
43
|
+
tx.addOutput(Buffer.from(output.scriptPubKey, 'hex'), output.amount);
|
|
44
|
+
}
|
|
45
|
+
// Set witness data for each input
|
|
46
|
+
let hashIndex = 0;
|
|
47
|
+
for (let i = 0; i < signBitcoin.inputs.length; i++) {
|
|
48
|
+
const input = signBitcoin.inputs[i];
|
|
49
|
+
if (!input.isOurs) {
|
|
50
|
+
// Non-ours inputs: empty witness stack.
|
|
51
|
+
// This makes the tx invalid if non-ours inputs exist.
|
|
52
|
+
// Multi-party PSBT support (preserving existing signatures) is a follow-up.
|
|
53
|
+
tx.setWitness(i, []);
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
const hash = hashes[hashIndex++];
|
|
57
|
+
const hashHex = Buffer.from(hash).toString('hex');
|
|
58
|
+
const sig = signatures[hashHex];
|
|
59
|
+
if (!sig) {
|
|
60
|
+
throw new Error(`Missing signature for sighash ${hashHex.slice(0, 16)}...`);
|
|
61
|
+
}
|
|
62
|
+
const derSig = Buffer.from(sig.der_signature, 'hex');
|
|
63
|
+
const sighashByte = input.sighashType ?? 1;
|
|
64
|
+
const sigWithHashType = Buffer.concat([derSig, Buffer.from([sighashByte])]);
|
|
65
|
+
// P2WPKH witness: [signature+hashtype, pubkey]
|
|
66
|
+
tx.setWitness(i, [sigWithHashType, pubKeyBytes]);
|
|
67
|
+
}
|
|
68
|
+
const serialized = tx.toBuffer();
|
|
69
|
+
// Build signingResultV2 so rebuildPsbtWithPartialSigsFromWC can extract
|
|
70
|
+
// per-input witness items (DER sig + pubkey) to inject into the PSBT.
|
|
71
|
+
// See: vultisig-windows/clients/extension/src/utils/functions.ts
|
|
72
|
+
hashIndex = 0;
|
|
73
|
+
const inputResults = signBitcoin.inputs.map(input => {
|
|
74
|
+
if (!input.isOurs) {
|
|
75
|
+
return { witnessItems: [] };
|
|
76
|
+
}
|
|
77
|
+
const hash = hashes[hashIndex++];
|
|
78
|
+
const hashHex = Buffer.from(hash).toString('hex');
|
|
79
|
+
const sig = signatures[hashHex];
|
|
80
|
+
const derSig = Buffer.from(sig.der_signature, 'hex');
|
|
81
|
+
const sighashByte = input.sighashType ?? 1;
|
|
82
|
+
const sigWithHashType = Buffer.concat([derSig, Buffer.from([sighashByte])]);
|
|
83
|
+
return {
|
|
84
|
+
witnessItems: [
|
|
85
|
+
new Uint8Array(sigWithHashType),
|
|
86
|
+
new Uint8Array(pubKeyBytes),
|
|
87
|
+
],
|
|
88
|
+
};
|
|
89
|
+
});
|
|
90
|
+
// Wrap in TW.Bitcoin.Proto.SigningOutput with signingResultV2
|
|
91
|
+
// so the extension can extract per-input sigs for PSBT reconstruction.
|
|
92
|
+
// signingResultV2 is a proper field on SigningOutput (see TW.BitcoinV2.Proto.ISigningOutput)
|
|
93
|
+
const output = TW.Bitcoin.Proto.SigningOutput.create({
|
|
94
|
+
encoded: serialized,
|
|
95
|
+
signingResultV2: {
|
|
96
|
+
bitcoin: { inputs: inputResults },
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
return TW.Bitcoin.Proto.SigningOutput.encode(output).finish();
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=compileSignBitcoinTx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compileSignBitcoinTx.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/compile/compileSignBitcoinTx.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,15 @@ import { WalletCore } from '@trustwallet/wallet-core';
|
|
|
2
2
|
import { PublicKey } from '@trustwallet/wallet-core/dist/src/wallet-core';
|
|
3
3
|
import { Chain } from '@vultisig/core-chain/Chain';
|
|
4
4
|
import { KeysignSignature } from '../../keysign/KeysignSignature.js';
|
|
5
|
+
import { KeysignPayload } from '../../types/vultisig/keysign/v1/keysign_message_pb.js';
|
|
5
6
|
type Input = {
|
|
6
|
-
publicKey
|
|
7
|
+
publicKey?: PublicKey;
|
|
7
8
|
txInputData: Uint8Array;
|
|
8
9
|
signatures: Record<string, KeysignSignature>;
|
|
9
10
|
chain: Chain;
|
|
10
11
|
walletCore: WalletCore;
|
|
12
|
+
keysignPayload?: KeysignPayload;
|
|
11
13
|
};
|
|
12
|
-
export declare const compileTx: ({ publicKey, txInputData, signatures: keysignSignatures, chain, walletCore, }: Input) => Uint8Array<ArrayBufferLike>;
|
|
14
|
+
export declare const compileTx: ({ publicKey, txInputData, signatures: keysignSignatures, chain, walletCore, keysignPayload, }: Input) => Uint8Array<ArrayBufferLike>;
|
|
13
15
|
export {};
|
|
14
16
|
//# sourceMappingURL=compileTx.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compileTx.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/compile/compileTx.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAEzE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"compileTx.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/compile/compileTx.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAEzE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAUlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEjE,OAAO,EACL,cAAc,EAEf,MAAM,oDAAoD,CAAA;AAK3D,KAAK,KAAK,GAAG;IACX,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,WAAW,EAAE,UAAU,CAAA;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC5C,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,UAAU,CAAA;IACtB,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,+FAOvB,KAAK,gCAkKP,CAAA"}
|