@vultisig/core-mpc 0.10.0 → 1.0.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 +17 -0
- package/dist/chains/cosmos/qbtc/QBTCHelper.d.ts +25 -0
- package/dist/chains/cosmos/qbtc/QBTCHelper.d.ts.map +1 -0
- package/dist/chains/cosmos/qbtc/QBTCHelper.js +158 -0
- package/dist/chains/cosmos/qbtc/QBTCHelper.js.map +1 -0
- package/dist/keygen/KeygenStep.d.ts +1 -1
- package/dist/keygen/KeygenStep.d.ts.map +1 -1
- package/dist/keygen/KeygenStep.js +7 -1
- package/dist/keygen/KeygenStep.js.map +1 -1
- package/dist/keysign/chainSpecific/KeysignChainSpecific.d.ts +1 -0
- package/dist/keysign/chainSpecific/KeysignChainSpecific.d.ts.map +1 -1
- package/dist/keysign/chainSpecific/KeysignChainSpecific.js +1 -0
- package/dist/keysign/chainSpecific/KeysignChainSpecific.js.map +1 -1
- package/dist/keysign/chainSpecific/index.d.ts.map +1 -1
- package/dist/keysign/chainSpecific/index.js +2 -0
- package/dist/keysign/chainSpecific/index.js.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/qbtc.d.ts +3 -0
- package/dist/keysign/chainSpecific/resolvers/qbtc.d.ts.map +1 -0
- package/dist/keysign/chainSpecific/resolvers/qbtc.js +25 -0
- package/dist/keysign/chainSpecific/resolvers/qbtc.js.map +1 -0
- package/dist/keysign/chainSpecific/resolvers/solana/index.js +1 -1
- package/dist/keysign/chainSpecific/resolvers/solana/index.js.map +1 -1
- package/dist/keysign/cosigner.js +1 -1
- package/dist/keysign/cosigner.js.map +1 -1
- package/dist/keysign/fee/index.d.ts.map +1 -1
- package/dist/keysign/fee/index.js +2 -0
- package/dist/keysign/fee/index.js.map +1 -1
- package/dist/keysign/fee/resolvers/qbtc.d.ts +3 -0
- package/dist/keysign/fee/resolvers/qbtc.d.ts.map +1 -0
- package/dist/keysign/fee/resolvers/qbtc.js +6 -0
- package/dist/keysign/fee/resolvers/qbtc.js.map +1 -0
- package/dist/keysign/index.d.ts.map +1 -1
- package/dist/keysign/index.js +28 -19
- package/dist/keysign/index.js.map +1 -1
- package/dist/keysign/preSigningOutput/index.d.ts +1 -0
- package/dist/keysign/preSigningOutput/index.d.ts.map +1 -1
- package/dist/keysign/preSigningOutput/index.js +1 -0
- package/dist/keysign/preSigningOutput/index.js.map +1 -1
- package/dist/keysign/send/build.d.ts +4 -2
- package/dist/keysign/send/build.d.ts.map +1 -1
- package/dist/keysign/send/build.js +19 -10
- package/dist/keysign/send/build.js.map +1 -1
- package/dist/keysign/send/getSendFeeEstimate.d.ts.map +1 -1
- package/dist/keysign/send/getSendFeeEstimate.js +9 -1
- package/dist/keysign/send/getSendFeeEstimate.js.map +1 -1
- package/dist/keysign/setupMessage/make.d.ts.map +1 -1
- package/dist/keysign/setupMessage/make.js +12 -2
- package/dist/keysign/setupMessage/make.js.map +1 -1
- package/dist/keysign/signingInputs/core.d.ts +1 -0
- package/dist/keysign/signingInputs/core.d.ts.map +1 -1
- package/dist/keysign/signingInputs/core.js +1 -0
- package/dist/keysign/signingInputs/core.js.map +1 -1
- package/dist/keysign/signingInputs/index.d.ts.map +1 -1
- package/dist/keysign/signingInputs/index.js +3 -1
- package/dist/keysign/signingInputs/index.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/evm/incrementKeysignPayloadNonce.d.ts +3 -0
- package/dist/keysign/signingInputs/resolvers/evm/incrementKeysignPayloadNonce.d.ts.map +1 -0
- package/dist/keysign/signingInputs/resolvers/evm/incrementKeysignPayloadNonce.js +17 -0
- package/dist/keysign/signingInputs/resolvers/evm/incrementKeysignPayloadNonce.js.map +1 -0
- package/dist/keysign/signingInputs/resolvers/evm/index.js +1 -1
- package/dist/keysign/signingInputs/resolvers/evm/index.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/qbtc.d.ts +5 -0
- package/dist/keysign/signingInputs/resolvers/qbtc.d.ts.map +1 -0
- package/dist/keysign/signingInputs/resolvers/qbtc.js +4 -0
- package/dist/keysign/signingInputs/resolvers/qbtc.js.map +1 -0
- package/dist/keysign/signingInputs/resolvers/ton/index.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/ton/index.js +25 -13
- package/dist/keysign/signingInputs/resolvers/ton/index.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/ton/jetton.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/ton/jetton.js +2 -1
- package/dist/keysign/signingInputs/resolvers/ton/jetton.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/ton/native.d.ts +9 -0
- package/dist/keysign/signingInputs/resolvers/ton/native.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/ton/native.js +31 -3
- package/dist/keysign/signingInputs/resolvers/ton/native.js.map +1 -1
- package/dist/keysign/swap/build.js +1 -1
- package/dist/keysign/swap/build.js.map +1 -1
- package/dist/keysign/utxo/getKeysignUtxoInfo.d.ts.map +1 -1
- package/dist/keysign/utxo/getKeysignUtxoInfo.js +11 -2
- package/dist/keysign/utxo/getKeysignUtxoInfo.js.map +1 -1
- package/dist/lib/initialize.d.ts.map +1 -1
- package/dist/lib/initialize.js +2 -0
- package/dist/lib/initialize.js.map +1 -1
- package/dist/lib/keyshare.d.ts +2 -1
- package/dist/lib/keyshare.d.ts.map +1 -1
- package/dist/lib/keyshare.js +2 -0
- package/dist/lib/keyshare.js.map +1 -1
- package/dist/lib/signSession.d.ts +3 -2
- package/dist/lib/signSession.d.ts.map +1 -1
- package/dist/lib/signSession.js +4 -1
- package/dist/lib/signSession.js.map +1 -1
- package/dist/mpcLib.d.ts +3 -3
- package/dist/mpcLib.d.ts.map +1 -1
- package/dist/security/blockaid/tx/simulation/input/index.d.ts +4 -0
- package/dist/security/blockaid/tx/simulation/input/index.d.ts.map +1 -0
- package/dist/security/blockaid/tx/simulation/input/index.js +26 -0
- package/dist/security/blockaid/tx/simulation/input/index.js.map +1 -0
- package/dist/security/blockaid/tx/simulation/input/resolver.d.ts +18 -0
- package/dist/security/blockaid/tx/simulation/input/resolver.d.ts.map +1 -0
- package/dist/security/blockaid/tx/simulation/input/resolver.js +2 -0
- package/dist/security/blockaid/tx/simulation/input/resolver.js.map +1 -0
- package/dist/security/blockaid/tx/simulation/input/resolvers/evm.d.ts +4 -0
- package/dist/security/blockaid/tx/simulation/input/resolvers/evm.d.ts.map +1 -0
- package/dist/security/blockaid/tx/simulation/input/resolvers/evm.js +67 -0
- package/dist/security/blockaid/tx/simulation/input/resolvers/evm.js.map +1 -0
- package/dist/security/blockaid/tx/simulation/input/resolvers/solana.d.ts +4 -0
- package/dist/security/blockaid/tx/simulation/input/resolvers/solana.d.ts.map +1 -0
- package/dist/security/blockaid/tx/simulation/input/resolvers/solana.js +31 -0
- package/dist/security/blockaid/tx/simulation/input/resolvers/solana.js.map +1 -0
- package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.d.ts +9 -0
- package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.d.ts.map +1 -0
- package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.js +50 -0
- package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.js.map +1 -0
- package/dist/security/blockaid/tx/validation/input/index.d.ts +4 -0
- package/dist/security/blockaid/tx/validation/input/index.d.ts.map +1 -0
- package/dist/security/blockaid/tx/validation/input/index.js +30 -0
- package/dist/security/blockaid/tx/validation/input/index.js.map +1 -0
- package/dist/security/blockaid/tx/validation/input/resolver.d.ts +16 -0
- package/dist/security/blockaid/tx/validation/input/resolver.d.ts.map +1 -0
- package/dist/security/blockaid/tx/validation/input/resolver.js +2 -0
- package/dist/security/blockaid/tx/validation/input/resolver.js.map +1 -0
- package/dist/security/blockaid/tx/validation/input/resolvers/evm.d.ts +4 -0
- package/dist/security/blockaid/tx/validation/input/resolvers/evm.d.ts.map +1 -0
- package/dist/security/blockaid/tx/validation/input/resolvers/evm.js +58 -0
- package/dist/security/blockaid/tx/validation/input/resolvers/evm.js.map +1 -0
- package/dist/security/blockaid/tx/validation/input/resolvers/solana.d.ts +4 -0
- package/dist/security/blockaid/tx/validation/input/resolvers/solana.d.ts.map +1 -0
- package/dist/security/blockaid/tx/validation/input/resolvers/solana.js +20 -0
- package/dist/security/blockaid/tx/validation/input/resolvers/solana.js.map +1 -0
- package/dist/security/blockaid/tx/validation/input/resolvers/sui.d.ts +4 -0
- package/dist/security/blockaid/tx/validation/input/resolvers/sui.d.ts.map +1 -0
- package/dist/security/blockaid/tx/validation/input/resolvers/sui.js +20 -0
- package/dist/security/blockaid/tx/validation/input/resolvers/sui.js.map +1 -0
- package/dist/security/blockaid/tx/validation/input/resolvers/utxo.d.ts +4 -0
- package/dist/security/blockaid/tx/validation/input/resolvers/utxo.d.ts.map +1 -0
- package/dist/security/blockaid/tx/validation/input/resolvers/utxo.js +19 -0
- package/dist/security/blockaid/tx/validation/input/resolvers/utxo.js.map +1 -0
- package/dist/swap/native/utils/nativeSwapQuoteToSwapPayload.d.ts +16 -0
- package/dist/swap/native/utils/nativeSwapQuoteToSwapPayload.d.ts.map +1 -0
- package/dist/swap/native/utils/nativeSwapQuoteToSwapPayload.js +31 -0
- package/dist/swap/native/utils/nativeSwapQuoteToSwapPayload.js.map +1 -0
- package/dist/swap/utils/getSwapTrackingUrl.d.ts +10 -0
- package/dist/swap/utils/getSwapTrackingUrl.d.ts.map +1 -0
- package/dist/swap/utils/getSwapTrackingUrl.js +29 -0
- package/dist/swap/utils/getSwapTrackingUrl.js.map +1 -0
- package/dist/tx/compile/compileTx.d.ts +14 -0
- package/dist/tx/compile/compileTx.d.ts.map +1 -0
- package/dist/tx/compile/compileTx.js +85 -0
- package/dist/tx/compile/compileTx.js.map +1 -0
- package/dist/tx/preSigningHashes/index.d.ts +10 -0
- package/dist/tx/preSigningHashes/index.d.ts.map +1 -0
- package/dist/tx/preSigningHashes/index.js +41 -0
- package/dist/tx/preSigningHashes/index.js.map +1 -0
- package/dist/tx/signature/generateSignature.d.ts +11 -0
- package/dist/tx/signature/generateSignature.d.ts.map +1 -0
- package/dist/tx/signature/generateSignature.js +20 -0
- package/dist/tx/signature/generateSignature.js.map +1 -0
- package/dist/types/utils/libType.d.ts +1 -2
- package/dist/types/utils/libType.d.ts.map +1 -1
- package/dist/types/utils/libType.js +2 -6
- package/dist/types/utils/libType.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 +36 -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 +12 -2
- package/dist/types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.js.map +1 -1
- package/dist/vault/Vault.d.ts +4 -2
- package/dist/vault/Vault.d.ts.map +1 -1
- package/dist/vault/Vault.js.map +1 -1
- package/package.json +929 -8
|
@@ -1,13 +1,22 @@
|
|
|
1
|
+
import { create } from '@bufbuild/protobuf';
|
|
1
2
|
import { Chain } from '@vultisig/core-chain/Chain';
|
|
2
3
|
import { isChainOfKind } from '@vultisig/core-chain/ChainKind';
|
|
3
4
|
import { getCardanoUtxos } from '@vultisig/core-chain/chains/cardano/utxo/getCardanoUtxos';
|
|
4
5
|
import { getUtxos } from '@vultisig/core-chain/chains/utxo/tx/getUtxos';
|
|
6
|
+
import { UtxoInfoSchema } from '../../types/vultisig/keysign/v1/utxo_info_pb.js';
|
|
7
|
+
const toUtxoInfo = (plain) => create(UtxoInfoSchema, {
|
|
8
|
+
hash: plain.hash,
|
|
9
|
+
amount: plain.amount,
|
|
10
|
+
index: plain.index,
|
|
11
|
+
});
|
|
5
12
|
export const getKeysignUtxoInfo = async ({ chain, address }) => {
|
|
6
13
|
if (isChainOfKind(chain, 'utxo')) {
|
|
7
|
-
|
|
14
|
+
const plain = await getUtxos({ chain, address });
|
|
15
|
+
return plain.map(toUtxoInfo);
|
|
8
16
|
}
|
|
9
17
|
if (chain === Chain.Cardano) {
|
|
10
|
-
|
|
18
|
+
const plain = await getCardanoUtxos(address);
|
|
19
|
+
return plain.map(toUtxoInfo);
|
|
11
20
|
}
|
|
12
21
|
};
|
|
13
22
|
//# sourceMappingURL=getKeysignUtxoInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getKeysignUtxoInfo.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/utxo/getKeysignUtxoInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAA;AAC1F,OAAO,EAAE,QAAQ,EAAE,MAAM,8CAA8C,CAAA;AAEvE,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAgB,EAAE,EAAE;IAC3E,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACjC,
|
|
1
|
+
{"version":3,"file":"getKeysignUtxoInfo.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/utxo/getKeysignUtxoInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAA;AAC1F,OAAO,EAAE,QAAQ,EAAE,MAAM,8CAA8C,CAAA;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAA;AAE7E,MAAM,UAAU,GAAG,CAAC,KAInB,EAAE,EAAE,CACH,MAAM,CAAC,cAAc,EAAE;IACrB,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,KAAK,EAAE,KAAK,CAAC,KAAK;CACnB,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAgB,EAAE,EAAE;IAC3E,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;QAChD,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAC9B,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAA;QAC5C,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAC9B,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../../../../packages/core/mpc/lib/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAA;
|
|
1
|
+
{"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../../../../packages/core/mpc/lib/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAA;AAcpF,eAAO,MAAM,gBAAgB,SAAuB,kBAAkB,qBAKrE,CAAA"}
|
package/dist/lib/initialize.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import initializeDkls from '@vultisig/lib-dkls/vs_wasm';
|
|
2
|
+
import initializeMldsa from '@vultisig/lib-mldsa';
|
|
2
3
|
import initializeSchnorr from '@vultisig/lib-schnorr/vs_schnorr_wasm';
|
|
3
4
|
import { prefixErrorWith } from '@vultisig/lib-utils/error/prefixErrorWith';
|
|
4
5
|
import { transformError } from '@vultisig/lib-utils/error/transformError';
|
|
@@ -6,6 +7,7 @@ import { memoizeAsync } from '@vultisig/lib-utils/memoizeAsync';
|
|
|
6
7
|
const initialize = {
|
|
7
8
|
ecdsa: initializeDkls,
|
|
8
9
|
eddsa: initializeSchnorr,
|
|
10
|
+
mldsa: initializeMldsa,
|
|
9
11
|
};
|
|
10
12
|
export const initializeMpcLib = memoizeAsync((algo) => transformError(initialize[algo](), prefixErrorWith('Failed to initialize MPC lib')));
|
|
11
13
|
//# sourceMappingURL=initialize.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/lib/initialize.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,4BAA4B,CAAA;AACvD,OAAO,iBAAiB,MAAM,uCAAuC,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAE/D,MAAM,UAAU,GAAuD;IACrE,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,iBAAiB;
|
|
1
|
+
{"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/lib/initialize.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,4BAA4B,CAAA;AACvD,OAAO,eAAe,MAAM,qBAAqB,CAAA;AACjD,OAAO,iBAAiB,MAAM,uCAAuC,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAE/D,MAAM,UAAU,GAAuD;IACrE,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,iBAAiB;IACxB,KAAK,EAAE,eAAe;CACvB,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,IAAwB,EAAE,EAAE,CACxE,cAAc,CACZ,UAAU,CAAC,IAAI,CAAC,EAAE,EAClB,eAAe,CAAC,8BAA8B,CAAC,CAChD,CACF,CAAA"}
|
package/dist/lib/keyshare.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { SignatureAlgorithm } from '@vultisig/core-chain/signing/SignatureAlgorithm';
|
|
2
2
|
import { Keyshare as DklsKeyshare } from '@vultisig/lib-dkls/vs_wasm';
|
|
3
|
+
import { Keyshare as MldsaKeyshare } from '@vultisig/lib-mldsa';
|
|
3
4
|
import { Keyshare as SchnorrKeyshare } from '@vultisig/lib-schnorr/vs_schnorr_wasm';
|
|
4
5
|
type ToMpcLibKeyshareInput = {
|
|
5
6
|
keyShare: string;
|
|
6
7
|
signatureAlgorithm: SignatureAlgorithm;
|
|
7
8
|
};
|
|
8
|
-
export declare const toMpcLibKeyshare: ({ keyShare, signatureAlgorithm, }: ToMpcLibKeyshareInput) => DklsKeyshare | SchnorrKeyshare;
|
|
9
|
+
export declare const toMpcLibKeyshare: ({ keyShare, signatureAlgorithm, }: ToMpcLibKeyshareInput) => DklsKeyshare | SchnorrKeyshare | MldsaKeyshare;
|
|
9
10
|
export {};
|
|
10
11
|
//# sourceMappingURL=keyshare.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyshare.d.ts","sourceRoot":"","sources":["../../../../../packages/core/mpc/lib/keyshare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAA;AACpF,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,uCAAuC,CAAA;
|
|
1
|
+
{"version":3,"file":"keyshare.d.ts","sourceRoot":"","sources":["../../../../../packages/core/mpc/lib/keyshare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAA;AACpF,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,uCAAuC,CAAA;AAWnF,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,kBAAkB,CAAA;CACvC,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,mCAG9B,qBAAqB,mDACiD,CAAA"}
|
package/dist/lib/keyshare.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { Keyshare as DklsKeyshare } from '@vultisig/lib-dkls/vs_wasm';
|
|
2
|
+
import { Keyshare as MldsaKeyshare } from '@vultisig/lib-mldsa';
|
|
2
3
|
import { Keyshare as SchnorrKeyshare } from '@vultisig/lib-schnorr/vs_schnorr_wasm';
|
|
3
4
|
const Keyshare = {
|
|
4
5
|
ecdsa: DklsKeyshare,
|
|
5
6
|
eddsa: SchnorrKeyshare,
|
|
7
|
+
mldsa: MldsaKeyshare,
|
|
6
8
|
};
|
|
7
9
|
export const toMpcLibKeyshare = ({ keyShare, signatureAlgorithm, }) => Keyshare[signatureAlgorithm].fromBytes(Buffer.from(keyShare, 'base64'));
|
|
8
10
|
//# sourceMappingURL=keyshare.js.map
|
package/dist/lib/keyshare.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyshare.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/lib/keyshare.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,uCAAuC,CAAA;AAEnF,MAAM,QAAQ,GAGV;IACF,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,eAAe;
|
|
1
|
+
{"version":3,"file":"keyshare.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/lib/keyshare.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,uCAAuC,CAAA;AAEnF,MAAM,QAAQ,GAGV;IACF,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,aAAa;CACrB,CAAA;AAOD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,QAAQ,EACR,kBAAkB,GACI,EAAE,EAAE,CAC1B,QAAQ,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { SignatureAlgorithm } from '@vultisig/core-chain/signing/SignatureAlgorithm';
|
|
2
2
|
import { SignSession as DklsSignSession } from '@vultisig/lib-dkls/vs_wasm';
|
|
3
|
+
import { SignSession as MldsaSignSession } from '@vultisig/lib-mldsa';
|
|
3
4
|
import { SignSession as SchnorrSignSession } from '@vultisig/lib-schnorr/vs_schnorr_wasm';
|
|
4
|
-
export declare const SignSession: Record<SignatureAlgorithm, typeof DklsSignSession | typeof SchnorrSignSession>;
|
|
5
|
+
export declare const SignSession: Record<SignatureAlgorithm, typeof DklsSignSession | typeof SchnorrSignSession | typeof MldsaSignSession>;
|
|
5
6
|
type MakeSignSessionInput = {
|
|
6
7
|
setupMessage: Uint8Array;
|
|
7
8
|
localPartyId: string;
|
|
8
9
|
keyShare: string;
|
|
9
10
|
signatureAlgorithm: SignatureAlgorithm;
|
|
10
11
|
};
|
|
11
|
-
export declare const makeSignSession: ({ setupMessage, localPartyId, keyShare, signatureAlgorithm, }: MakeSignSessionInput) => DklsSignSession | SchnorrSignSession;
|
|
12
|
+
export declare const makeSignSession: ({ setupMessage, localPartyId, keyShare, signatureAlgorithm, }: MakeSignSessionInput) => DklsSignSession | SchnorrSignSession | MldsaSignSession;
|
|
12
13
|
export {};
|
|
13
14
|
//# sourceMappingURL=signSession.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signSession.d.ts","sourceRoot":"","sources":["../../../../../packages/core/mpc/lib/signSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAA;AACpF,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAIzF,eAAO,MAAM,WAAW,EAAE,MAAM,CAC9B,kBAAkB,EAClB,OAAO,eAAe,GAAG,OAAO,kBAAkB,
|
|
1
|
+
{"version":3,"file":"signSession.d.ts","sourceRoot":"","sources":["../../../../../packages/core/mpc/lib/signSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAA;AACpF,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAIzF,eAAO,MAAM,WAAW,EAAE,MAAM,CAC9B,kBAAkB,EAClB,OAAO,eAAe,GAAG,OAAO,kBAAkB,GAAG,OAAO,gBAAgB,CAK7E,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,YAAY,EAAE,UAAU,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,kBAAkB,CAAA;CACvC,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,+DAK7B,oBAAoB,4DAItB,CAAA"}
|
package/dist/lib/signSession.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { SignSession as DklsSignSession } from '@vultisig/lib-dkls/vs_wasm';
|
|
2
|
+
import { SignSession as MldsaSignSession } from '@vultisig/lib-mldsa';
|
|
2
3
|
import { SignSession as SchnorrSignSession } from '@vultisig/lib-schnorr/vs_schnorr_wasm';
|
|
3
4
|
import { toMpcLibKeyshare } from './keyshare.js';
|
|
4
5
|
export const SignSession = {
|
|
5
6
|
ecdsa: DklsSignSession,
|
|
6
7
|
eddsa: SchnorrSignSession,
|
|
8
|
+
mldsa: MldsaSignSession,
|
|
7
9
|
};
|
|
8
10
|
export const makeSignSession = ({ setupMessage, localPartyId, keyShare, signatureAlgorithm, }) => {
|
|
9
11
|
const ks = toMpcLibKeyshare({ keyShare, signatureAlgorithm });
|
|
10
|
-
|
|
12
|
+
const Session = SignSession[signatureAlgorithm];
|
|
13
|
+
return new Session(setupMessage, localPartyId, ks);
|
|
11
14
|
};
|
|
12
15
|
//# 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,WAAW,IAAI,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAEzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C,MAAM,CAAC,MAAM,WAAW,GAGpB;IACF,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,kBAAkB;
|
|
1
|
+
{"version":3,"file":"signSession.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/lib/signSession.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAEzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C,MAAM,CAAC,MAAM,WAAW,GAGpB;IACF,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,kBAAkB;IACzB,KAAK,EAAE,gBAAgB;CACxB,CAAA;AASD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,kBAAkB,GACG,EAAE,EAAE;IACzB,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAA;IAC7D,MAAM,OAAO,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAA;IAC/C,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,YAAY,EAAE,EAAW,CAAC,CAAA;AAC7D,CAAC,CAAA"}
|
package/dist/mpcLib.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export type MpcLib = 'GG20' | 'DKLS';
|
|
2
|
-
/**
|
|
3
|
-
export type KeysignLibType = MpcLib
|
|
1
|
+
export type MpcLib = 'GG20' | 'DKLS' | 'KeyImport';
|
|
2
|
+
/** Keysign / vault lib type on the wire (includes key-import mode). */
|
|
3
|
+
export type KeysignLibType = MpcLib;
|
|
4
4
|
export declare const mpcLibOptions: readonly ["GG20", "DKLS"];
|
|
5
5
|
export declare const defaultMpcLib: MpcLib;
|
|
6
6
|
//# sourceMappingURL=mpcLib.d.ts.map
|
package/dist/mpcLib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mpcLib.d.ts","sourceRoot":"","sources":["../../../../packages/core/mpc/mpcLib.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"mpcLib.d.ts","sourceRoot":"","sources":["../../../../packages/core/mpc/mpcLib.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAA;AAElD,uEAAuE;AACvE,MAAM,MAAM,cAAc,GAAG,MAAM,CAAA;AAEnC,eAAO,MAAM,aAAa,2BAA4B,CAAA;AAEtD,eAAO,MAAM,aAAa,EAAE,MAAe,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BlockaidTxSimulationInput } from '@vultisig/core-chain/security/blockaid/tx/simulation/resolver';
|
|
2
|
+
import { BlockaidTxSimulationInputResolverInput } from './resolver.js';
|
|
3
|
+
export declare const getBlockaidTxSimulationInput: (input: Omit<BlockaidTxSimulationInputResolverInput, "chain">) => BlockaidTxSimulationInput | null;
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/mpc/security/blockaid/tx/simulation/input/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,EAAE,MAAM,+DAA+D,CAAA;AAIzG,OAAO,EAEL,sCAAsC,EACvC,MAAM,YAAY,CAAA;AAYnB,eAAO,MAAM,4BAA4B,GACvC,OAAO,IAAI,CAAC,sCAAsC,EAAE,OAAO,CAAC,KAC3D,yBAAyB,GAAG,IAkB9B,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { getChainKind } from '@vultisig/core-chain/ChainKind';
|
|
2
|
+
import { blockaidSimulationSupportedChains, } from '@vultisig/core-chain/security/blockaid/simulationChains';
|
|
3
|
+
import { getKeysignChain } from '@vultisig/core-mpc/keysign/utils/getKeysignChain';
|
|
4
|
+
import { isOneOf } from '@vultisig/lib-utils/array/isOneOf';
|
|
5
|
+
import { getEvmBlockaidTxSimulationInput } from './resolvers/evm.js';
|
|
6
|
+
import { getSolanaBlockaidTxSimulationInput } from './resolvers/solana.js';
|
|
7
|
+
const resolvers = {
|
|
8
|
+
solana: getSolanaBlockaidTxSimulationInput,
|
|
9
|
+
evm: getEvmBlockaidTxSimulationInput,
|
|
10
|
+
};
|
|
11
|
+
export const getBlockaidTxSimulationInput = (input) => {
|
|
12
|
+
const chain = getKeysignChain(input.payload);
|
|
13
|
+
if (!isOneOf(chain, blockaidSimulationSupportedChains)) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
const chainKind = getChainKind(chain);
|
|
17
|
+
const data = resolvers[chainKind]({
|
|
18
|
+
...input,
|
|
19
|
+
chain,
|
|
20
|
+
});
|
|
21
|
+
if (!data) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
return { chain, data };
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../packages/core/mpc/security/blockaid/tx/simulation/input/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAEL,iCAAiC,GAClC,MAAM,yDAAyD,CAAA;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAA;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAM3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,kCAAkC,EAAE,MAAM,oBAAoB,CAAA;AAEvE,MAAM,SAAS,GAGX;IACF,MAAM,EAAE,kCAAkC;IAC1C,GAAG,EAAE,+BAA+B;CACrC,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,KAA4D,EAC1B,EAAE;IACpC,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC5C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,iCAAiC,CAAC,EAAE,CAAC;QACvD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAErC,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAChC,GAAG,KAAK;QACR,KAAK;KACN,CAAC,CAAA;IAEF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AACxB,CAAC,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { KeysignPayload } from '@vultisig/core-mpc/types/vultisig/keysign/v1/keysign_message_pb';
|
|
2
|
+
import { Resolver } from '@vultisig/lib-utils/types/Resolver';
|
|
3
|
+
import { WalletCore } from '@trustwallet/wallet-core';
|
|
4
|
+
import { BlockaidSimulationSupportedChain } from '@vultisig/core-chain/security/blockaid/simulationChains';
|
|
5
|
+
import { BlockaidTxSimulationInput } from '@vultisig/core-chain/security/blockaid/tx/simulation/resolver';
|
|
6
|
+
export type BlockaidTxSimulationInputResolverInput<T extends BlockaidSimulationSupportedChain = BlockaidSimulationSupportedChain> = {
|
|
7
|
+
payload: KeysignPayload;
|
|
8
|
+
walletCore: WalletCore;
|
|
9
|
+
chain: T;
|
|
10
|
+
raw?: string[];
|
|
11
|
+
};
|
|
12
|
+
export type BlockaidTxSimulationInputResolver<T extends BlockaidSimulationSupportedChain = BlockaidSimulationSupportedChain> = Resolver<{
|
|
13
|
+
payload: KeysignPayload;
|
|
14
|
+
walletCore: WalletCore;
|
|
15
|
+
chain: T;
|
|
16
|
+
raw?: string[];
|
|
17
|
+
}, BlockaidTxSimulationInput['data'] | null>;
|
|
18
|
+
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/mpc/security/blockaid/tx/simulation/input/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iEAAiE,CAAA;AAChG,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,gCAAgC,EAAE,MAAM,yDAAyD,CAAA;AAC1G,OAAO,EAAE,yBAAyB,EAAE,MAAM,+DAA+D,CAAA;AAEzG,MAAM,MAAM,sCAAsC,CAChD,CAAC,SAAS,gCAAgC,GAAG,gCAAgC,IAC3E;IACF,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,CAAC,CAAA;IACR,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;CACf,CAAA;AAED,MAAM,MAAM,iCAAiC,CAC3C,CAAC,SAAS,gCAAgC,GAAG,gCAAgC,IAC3E,QAAQ,CACV;IACE,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,CAAC,CAAA;IACR,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;CACf,EACD,yBAAyB,CAAC,MAAM,CAAC,GAAG,IAAI,CACzC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../../../../../../../packages/core/mpc/security/blockaid/tx/simulation/input/resolver.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BlockaidSupportedEvmChain } from '@vultisig/core-chain/security/blockaid/evmChains';
|
|
2
|
+
import { BlockaidTxSimulationInputResolver } from '../resolver.js';
|
|
3
|
+
export declare const getEvmBlockaidTxSimulationInput: BlockaidTxSimulationInputResolver<BlockaidSupportedEvmChain>;
|
|
4
|
+
//# sourceMappingURL=evm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/simulation/input/resolvers/evm.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,yBAAyB,EAC1B,MAAM,kDAAkD,CAAA;AASzD,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAA;AAE/D,eAAO,MAAM,+BAA+B,EAAE,iCAAiC,CAC7E,yBAAyB,CA4E1B,CAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { productRootDomain } from '@vultisig/core-config';
|
|
2
|
+
import { blockaidEvmChain, } from '@vultisig/core-chain/security/blockaid/evmChains';
|
|
3
|
+
import { getKeysignSwapPayload } from '@vultisig/core-mpc/keysign/swap/getKeysignSwapPayload';
|
|
4
|
+
import { getKeysignCoin } from '@vultisig/core-mpc/keysign/utils/getKeysignCoin';
|
|
5
|
+
import { bigIntToHex } from '@vultisig/lib-utils/bigint/bigIntToHex';
|
|
6
|
+
import { matchRecordUnion } from '@vultisig/lib-utils/matchRecordUnion';
|
|
7
|
+
import { encodeFunctionData, erc20Abi } from 'viem';
|
|
8
|
+
export const getEvmBlockaidTxSimulationInput = ({ payload, chain }) => {
|
|
9
|
+
const coin = getKeysignCoin(payload);
|
|
10
|
+
const toEvmBlockaidTxScanInput = ({ to, value, data, }) => {
|
|
11
|
+
const params = {
|
|
12
|
+
from: coin.address,
|
|
13
|
+
to,
|
|
14
|
+
value,
|
|
15
|
+
data,
|
|
16
|
+
};
|
|
17
|
+
return {
|
|
18
|
+
data: {
|
|
19
|
+
method: 'eth_sendTransaction',
|
|
20
|
+
params: [params],
|
|
21
|
+
},
|
|
22
|
+
chain: blockaidEvmChain[chain],
|
|
23
|
+
metadata: {
|
|
24
|
+
domain: productRootDomain,
|
|
25
|
+
},
|
|
26
|
+
options: ['simulation'],
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
const swapPayload = getKeysignSwapPayload(payload);
|
|
30
|
+
if (swapPayload) {
|
|
31
|
+
return matchRecordUnion(swapPayload, {
|
|
32
|
+
native: () => null,
|
|
33
|
+
general: generalSwapPayload => {
|
|
34
|
+
const { quote } = generalSwapPayload;
|
|
35
|
+
if (!quote?.tx) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
return toEvmBlockaidTxScanInput({
|
|
39
|
+
to: quote.tx.to,
|
|
40
|
+
value: quote.tx.value.startsWith('0x')
|
|
41
|
+
? quote.tx.value
|
|
42
|
+
: `0x${bigIntToHex(BigInt(quote.tx.value))}`,
|
|
43
|
+
data: quote.tx.data,
|
|
44
|
+
});
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
const amount = BigInt(payload.toAmount);
|
|
49
|
+
const receiver = payload.toAddress;
|
|
50
|
+
if (!coin.id) {
|
|
51
|
+
return toEvmBlockaidTxScanInput({
|
|
52
|
+
to: receiver,
|
|
53
|
+
value: `0x${bigIntToHex(amount)}`,
|
|
54
|
+
data: payload.memo || '0x',
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
return toEvmBlockaidTxScanInput({
|
|
58
|
+
to: coin.id,
|
|
59
|
+
value: `0x${bigIntToHex(amount)}`,
|
|
60
|
+
data: encodeFunctionData({
|
|
61
|
+
abi: erc20Abi,
|
|
62
|
+
functionName: 'transfer',
|
|
63
|
+
args: [receiver, amount],
|
|
64
|
+
}),
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=evm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/simulation/input/resolvers/evm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EACL,gBAAgB,GAEjB,MAAM,kDAAkD,CAAA;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAA;AAE7F,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAA;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAInD,MAAM,CAAC,MAAM,+BAA+B,GAExC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;IACzB,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAEpC,MAAM,wBAAwB,GAAG,CAAC,EAChC,EAAE,EACF,KAAK,EACL,IAAI,GAKL,EAAE,EAAE;QACH,MAAM,MAAM,GAA2B;YACrC,IAAI,EAAE,IAAI,CAAC,OAAO;YAClB,EAAE;YACF,KAAK;YACL,IAAI;SACL,CAAA;QACD,OAAO;YACL,IAAI,EAAE;gBACJ,MAAM,EAAE,qBAAqB;gBAC7B,MAAM,EAAE,CAAC,MAAM,CAAC;aACjB;YACD,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC;YAC9B,QAAQ,EAAE;gBACR,MAAM,EAAE,iBAAiB;aAC1B;YACD,OAAO,EAAE,CAAC,YAAY,CAAC;SACxB,CAAA;IACH,CAAC,CAAA;IACD,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAElD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,gBAAgB,CAGrB,WAAW,EAAE;YACb,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI;YAClB,OAAO,EAAE,kBAAkB,CAAC,EAAE;gBAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAA;gBACpC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC;oBACf,OAAO,IAAI,CAAA;gBACb,CAAC;gBAED,OAAO,wBAAwB,CAAC;oBAC9B,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;oBACf,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;wBACpC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK;wBAChB,CAAC,CAAC,KAAK,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;oBAC9C,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI;iBACpB,CAAC,CAAA;YACJ,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAA0B,CAAA;IAEnD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,OAAO,wBAAwB,CAAC;YAC9B,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,KAAK,WAAW,CAAC,MAAM,CAAC,EAAE;YACjC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;SAC3B,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,wBAAwB,CAAC;QAC9B,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,KAAK,WAAW,CAAC,MAAM,CAAC,EAAE;QACjC,IAAI,EAAE,kBAAkB,CAAC;YACvB,GAAG,EAAE,QAAQ;YACb,YAAY,EAAE,UAAU;YACxB,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;SACzB,CAAC;KACH,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { OtherChain } from '@vultisig/core-chain/Chain';
|
|
2
|
+
import { BlockaidTxSimulationInputResolver } from '../resolver.js';
|
|
3
|
+
export declare const getSolanaBlockaidTxSimulationInput: BlockaidTxSimulationInputResolver<OtherChain.Solana>;
|
|
4
|
+
//# sourceMappingURL=solana.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/simulation/input/resolvers/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAKvD,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAA;AAE/D,eAAO,MAAM,kCAAkC,EAAE,iCAAiC,CAChF,UAAU,CAAC,MAAM,CA4BlB,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { decodeSigningOutput } from '@vultisig/core-chain/tw/signingOutput';
|
|
2
|
+
import { assertField } from '@vultisig/lib-utils/record/assertField';
|
|
3
|
+
import { getCompiledTxsForBlockaidInput } from '../../../utils/getCompiledTxsForBlockaidInput.js';
|
|
4
|
+
export const getSolanaBlockaidTxSimulationInput = ({ payload, walletCore, chain, raw }) => {
|
|
5
|
+
const coin = assertField(payload, 'coin');
|
|
6
|
+
if (raw && raw.length > 0) {
|
|
7
|
+
return {
|
|
8
|
+
chain: 'mainnet',
|
|
9
|
+
options: ['simulation'],
|
|
10
|
+
account_address: coin.address,
|
|
11
|
+
encoding: 'base58',
|
|
12
|
+
transactions: raw,
|
|
13
|
+
method: 'signAndSendTransaction',
|
|
14
|
+
metadata: {},
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
const transactions = getCompiledTxsForBlockaidInput({
|
|
18
|
+
payload,
|
|
19
|
+
walletCore,
|
|
20
|
+
}).map(tx => decodeSigningOutput(chain, tx).encoded);
|
|
21
|
+
return {
|
|
22
|
+
chain: 'mainnet',
|
|
23
|
+
options: ['simulation'],
|
|
24
|
+
account_address: coin.address,
|
|
25
|
+
encoding: 'base58',
|
|
26
|
+
transactions,
|
|
27
|
+
method: 'signAndSendTransaction',
|
|
28
|
+
metadata: {},
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=solana.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solana.js","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/simulation/input/resolvers/solana.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AAEpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAA;AAG9F,MAAM,CAAC,MAAM,kCAAkC,GAE3C,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;IAC1C,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACzC,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,CAAC,YAAY,CAAC;YACvB,eAAe,EAAE,IAAI,CAAC,OAAO;YAC7B,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,GAAG;YACjB,MAAM,EAAE,wBAAwB;YAChC,QAAQ,EAAE,EAAE;SACb,CAAA;IACH,CAAC;IACD,MAAM,YAAY,GAAG,8BAA8B,CAAC;QAClD,OAAO;QACP,UAAU;KACX,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;IAEpD,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,eAAe,EAAE,IAAI,CAAC,OAAO;QAC7B,QAAQ,EAAE,QAAQ;QAClB,YAAY;QACZ,MAAM,EAAE,wBAAwB;QAChC,QAAQ,EAAE,EAAE;KACb,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { WalletCore } from '@trustwallet/wallet-core';
|
|
2
|
+
import { KeysignPayload } from '../../../../types/vultisig/keysign/v1/keysign_message_pb.js';
|
|
3
|
+
type Input = {
|
|
4
|
+
payload: KeysignPayload;
|
|
5
|
+
walletCore: WalletCore;
|
|
6
|
+
};
|
|
7
|
+
export declare const getCompiledTxsForBlockaidInput: ({ payload, walletCore, }: Input) => Uint8Array<ArrayBufferLike>[];
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=getCompiledTxsForBlockaidInput.d.ts.map
|
|
@@ -0,0 +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,kCAyDP,CAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { getChainKind } from '@vultisig/core-chain/ChainKind';
|
|
2
|
+
import { getCoinType } from '@vultisig/core-chain/coin/coinType';
|
|
3
|
+
import { signatureFormats } from '@vultisig/core-chain/signing/SignatureFormat';
|
|
4
|
+
import { getTwPublicKeyType } from '@vultisig/core-chain/publicKey/tw/getTwPublicKeyType';
|
|
5
|
+
import { match } from '@vultisig/lib-utils/match';
|
|
6
|
+
import { getEncodedSigningInputs } from '../../../../keysign/signingInputs.js';
|
|
7
|
+
import { getKeysignTwPublicKey } from '../../../../keysign/tw/getKeysignTwPublicKey.js';
|
|
8
|
+
import { getKeysignChain } from '../../../../keysign/utils/getKeysignChain.js';
|
|
9
|
+
import { getPreSigningHashes } from '../../../../tx/preSigningHashes.js';
|
|
10
|
+
export const getCompiledTxsForBlockaidInput = ({ payload, walletCore, }) => {
|
|
11
|
+
const chain = getKeysignChain(payload);
|
|
12
|
+
const chainKind = getChainKind(chain);
|
|
13
|
+
const publicKeyData = getKeysignTwPublicKey(payload);
|
|
14
|
+
const publicKey = walletCore.PublicKey.createWithData(publicKeyData, getTwPublicKeyType({ walletCore, chain }));
|
|
15
|
+
const coinType = getCoinType({
|
|
16
|
+
chain,
|
|
17
|
+
walletCore,
|
|
18
|
+
});
|
|
19
|
+
const inputs = getEncodedSigningInputs({
|
|
20
|
+
keysignPayload: payload,
|
|
21
|
+
walletCore,
|
|
22
|
+
publicKey,
|
|
23
|
+
});
|
|
24
|
+
return inputs.map(txInputData => {
|
|
25
|
+
const preHashes = getPreSigningHashes({
|
|
26
|
+
walletCore,
|
|
27
|
+
txInputData,
|
|
28
|
+
chain,
|
|
29
|
+
});
|
|
30
|
+
const signatures = walletCore.DataVector.create();
|
|
31
|
+
const publicKeys = walletCore.DataVector.create();
|
|
32
|
+
preHashes.forEach(msg => match(signatureFormats[chainKind], {
|
|
33
|
+
raw: () => {
|
|
34
|
+
signatures.add(Buffer.alloc(64, 0));
|
|
35
|
+
publicKeys.add(publicKey.data());
|
|
36
|
+
},
|
|
37
|
+
rawWithRecoveryId: () => {
|
|
38
|
+
signatures.add(Buffer.alloc(65, 0));
|
|
39
|
+
publicKeys.add(publicKey.data());
|
|
40
|
+
},
|
|
41
|
+
der: () => {
|
|
42
|
+
const privateKey = walletCore.PrivateKey.create();
|
|
43
|
+
signatures.add(Buffer.from(privateKey.signAsDER(msg)));
|
|
44
|
+
publicKeys.add(privateKey.getPublicKeySecp256k1(true).data());
|
|
45
|
+
},
|
|
46
|
+
}));
|
|
47
|
+
return walletCore.TransactionCompiler.compileWithSignatures(coinType, txInputData, signatures, publicKeys);
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=getCompiledTxsForBlockaidInput.js.map
|
|
@@ -0,0 +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;SACN,CAAC,CAAA;QAEF,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;QACjD,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;QAEjD,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CACtB,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE;YACjC,GAAG,EAAE,GAAG,EAAE;gBACR,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;gBACnC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;YAClC,CAAC;YACD,iBAAiB,EAAE,GAAG,EAAE;gBACtB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;gBACnC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;YAClC,CAAC;YACD,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;gBAEjD,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBACtD,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;YAC/D,CAAC;SACF,CAAC,CACH,CAAA;QAED,OAAO,UAAU,CAAC,mBAAmB,CAAC,qBAAqB,CACzD,QAAQ,EACR,WAAW,EACX,UAAU,EACV,UAAU,CACX,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BlockaidTxValidationInput } from '@vultisig/core-chain/security/blockaid/tx/validation/resolver';
|
|
2
|
+
import { BlockaidTxValidationInputResolverInput } from './resolver.js';
|
|
3
|
+
export declare const getBlockaidTxValidationInput: (input: Omit<BlockaidTxValidationInputResolverInput, "chain">) => BlockaidTxValidationInput | null;
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/mpc/security/blockaid/tx/validation/input/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,EAAE,MAAM,+DAA+D,CAAA;AAIzG,OAAO,EAEL,sCAAsC,EACvC,MAAM,YAAY,CAAA;AAgBnB,eAAO,MAAM,4BAA4B,GACvC,OAAO,IAAI,CAAC,sCAAsC,EAAE,OAAO,CAAC,KAC3D,yBAAyB,GAAG,IAkB9B,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { getChainKind } from '@vultisig/core-chain/ChainKind';
|
|
2
|
+
import { blockaidValidationSupportedChains, } from '@vultisig/core-chain/security/blockaid/validationChains';
|
|
3
|
+
import { getKeysignChain } from '@vultisig/core-mpc/keysign/utils/getKeysignChain';
|
|
4
|
+
import { isOneOf } from '@vultisig/lib-utils/array/isOneOf';
|
|
5
|
+
import { getEvmBlockaidTxValidationInput } from './resolvers/evm.js';
|
|
6
|
+
import { getSolanaBlockaidTxValidationInput } from './resolvers/solana.js';
|
|
7
|
+
import { getSuiBlockaidTxValidationInput } from './resolvers/sui.js';
|
|
8
|
+
import { getUtxoBlockaidTxValidationInput } from './resolvers/utxo.js';
|
|
9
|
+
const resolvers = {
|
|
10
|
+
evm: getEvmBlockaidTxValidationInput,
|
|
11
|
+
utxo: getUtxoBlockaidTxValidationInput,
|
|
12
|
+
solana: getSolanaBlockaidTxValidationInput,
|
|
13
|
+
sui: getSuiBlockaidTxValidationInput,
|
|
14
|
+
};
|
|
15
|
+
export const getBlockaidTxValidationInput = (input) => {
|
|
16
|
+
const chain = getKeysignChain(input.payload);
|
|
17
|
+
if (!isOneOf(chain, blockaidValidationSupportedChains)) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
const chainKind = getChainKind(chain);
|
|
21
|
+
const data = resolvers[chainKind]({
|
|
22
|
+
...input,
|
|
23
|
+
chain,
|
|
24
|
+
});
|
|
25
|
+
if (!data) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
return { chain, data };
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../packages/core/mpc/security/blockaid/tx/validation/input/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAEL,iCAAiC,GAClC,MAAM,yDAAyD,CAAA;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAA;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAM3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,kCAAkC,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAO,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAA;AAEnE,MAAM,SAAS,GAGX;IACF,GAAG,EAAE,+BAA+B;IACpC,IAAI,EAAE,gCAAgC;IACtC,MAAM,EAAE,kCAAkC;IAC1C,GAAG,EAAE,+BAA+B;CACrC,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,KAA4D,EAC1B,EAAE;IACpC,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC5C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,iCAAiC,CAAC,EAAE,CAAC;QACvD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAErC,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAChC,GAAG,KAAK;QACR,KAAK;KACN,CAAC,CAAA;IAEF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AACxB,CAAC,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { KeysignPayload } from '@vultisig/core-mpc/types/vultisig/keysign/v1/keysign_message_pb';
|
|
2
|
+
import { Resolver } from '@vultisig/lib-utils/types/Resolver';
|
|
3
|
+
import { WalletCore } from '@trustwallet/wallet-core';
|
|
4
|
+
import { BlockaidValidationSupportedChain } from '@vultisig/core-chain/security/blockaid/validationChains';
|
|
5
|
+
import { BlockaidTxValidationInput } from '@vultisig/core-chain/security/blockaid/tx/validation/resolver';
|
|
6
|
+
export type BlockaidTxValidationInputResolverInput<T extends BlockaidValidationSupportedChain = BlockaidValidationSupportedChain> = {
|
|
7
|
+
payload: KeysignPayload;
|
|
8
|
+
walletCore: WalletCore;
|
|
9
|
+
chain: T;
|
|
10
|
+
};
|
|
11
|
+
export type BlockaidTxValidationInputResolver<T extends BlockaidValidationSupportedChain = BlockaidValidationSupportedChain> = Resolver<{
|
|
12
|
+
payload: KeysignPayload;
|
|
13
|
+
walletCore: WalletCore;
|
|
14
|
+
chain: T;
|
|
15
|
+
}, BlockaidTxValidationInput['data'] | null>;
|
|
16
|
+
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/mpc/security/blockaid/tx/validation/input/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iEAAiE,CAAA;AAChG,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,gCAAgC,EAAE,MAAM,yDAAyD,CAAA;AAC1G,OAAO,EAAE,yBAAyB,EAAE,MAAM,+DAA+D,CAAA;AAEzG,MAAM,MAAM,sCAAsC,CAChD,CAAC,SAAS,gCAAgC,GAAG,gCAAgC,IAC3E;IACF,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,CAAC,CAAA;CACT,CAAA;AAED,MAAM,MAAM,iCAAiC,CAC3C,CAAC,SAAS,gCAAgC,GAAG,gCAAgC,IAC3E,QAAQ,CACV;IACE,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,CAAC,CAAA;CACT,EACD,yBAAyB,CAAC,MAAM,CAAC,GAAG,IAAI,CACzC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../../../../../../../packages/core/mpc/security/blockaid/tx/validation/input/resolver.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BlockaidSupportedEvmChain } from '@vultisig/core-chain/security/blockaid/evmChains';
|
|
2
|
+
import { BlockaidTxValidationInputResolver } from '../resolver.js';
|
|
3
|
+
export declare const getEvmBlockaidTxValidationInput: BlockaidTxValidationInputResolver<BlockaidSupportedEvmChain>;
|
|
4
|
+
//# sourceMappingURL=evm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/validation/input/resolvers/evm.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,yBAAyB,EAC1B,MAAM,kDAAkD,CAAA;AASzD,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAA;AAE/D,eAAO,MAAM,+BAA+B,EAAE,iCAAiC,CAC7E,yBAAyB,CAoE1B,CAAA"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { productRootDomain } from '@vultisig/core-config';
|
|
2
|
+
import { blockaidEvmChain, } from '@vultisig/core-chain/security/blockaid/evmChains';
|
|
3
|
+
import { getKeysignSwapPayload } from '@vultisig/core-mpc/keysign/swap/getKeysignSwapPayload';
|
|
4
|
+
import { getKeysignCoin } from '@vultisig/core-mpc/keysign/utils/getKeysignCoin';
|
|
5
|
+
import { bigIntToHex } from '@vultisig/lib-utils/bigint/bigIntToHex';
|
|
6
|
+
import { matchRecordUnion } from '@vultisig/lib-utils/matchRecordUnion';
|
|
7
|
+
import { encodeFunctionData, erc20Abi } from 'viem';
|
|
8
|
+
export const getEvmBlockaidTxValidationInput = ({ payload, chain }) => {
|
|
9
|
+
const coin = getKeysignCoin(payload);
|
|
10
|
+
const toEvmBlockaidTxScanInput = ({ to, value, data, }) => ({
|
|
11
|
+
data: {
|
|
12
|
+
method: 'eth_sendTransaction',
|
|
13
|
+
params: [{ from: coin.address, to, value, data }],
|
|
14
|
+
},
|
|
15
|
+
chain: blockaidEvmChain[chain],
|
|
16
|
+
metadata: {
|
|
17
|
+
domain: productRootDomain,
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
const swapPayload = getKeysignSwapPayload(payload);
|
|
21
|
+
if (swapPayload) {
|
|
22
|
+
return matchRecordUnion(swapPayload, {
|
|
23
|
+
native: () => null,
|
|
24
|
+
general: generalSwapPayload => {
|
|
25
|
+
const { quote } = generalSwapPayload;
|
|
26
|
+
if (!quote?.tx) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
return toEvmBlockaidTxScanInput({
|
|
30
|
+
to: quote.tx.to,
|
|
31
|
+
value: quote.tx.value.startsWith('0x')
|
|
32
|
+
? quote.tx.value
|
|
33
|
+
: `0x${bigIntToHex(BigInt(quote.tx.value))}`,
|
|
34
|
+
data: quote.tx.data,
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
const amount = BigInt(payload.toAmount);
|
|
40
|
+
const receiver = payload.toAddress;
|
|
41
|
+
if (!coin.id) {
|
|
42
|
+
return toEvmBlockaidTxScanInput({
|
|
43
|
+
to: receiver,
|
|
44
|
+
value: `0x${bigIntToHex(amount)}`,
|
|
45
|
+
data: payload.memo || '0x',
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return toEvmBlockaidTxScanInput({
|
|
49
|
+
to: coin.id,
|
|
50
|
+
value: `0x${bigIntToHex(amount)}`,
|
|
51
|
+
data: encodeFunctionData({
|
|
52
|
+
abi: erc20Abi,
|
|
53
|
+
functionName: 'transfer',
|
|
54
|
+
args: [receiver, amount],
|
|
55
|
+
}),
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=evm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/validation/input/resolvers/evm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EACL,gBAAgB,GAEjB,MAAM,kDAAkD,CAAA;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAA;AAE7F,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAA;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAInD,MAAM,CAAC,MAAM,+BAA+B,GAExC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;IACzB,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAEpC,MAAM,wBAAwB,GAAG,CAAC,EAChC,EAAE,EACF,KAAK,EACL,IAAI,GAKL,EAAE,EAAE,CAAC,CAAC;QACL,IAAI,EAAE;YACJ,MAAM,EAAE,qBAAqB;YAC7B,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAClD;QACD,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC;QAC9B,QAAQ,EAAE;YACR,MAAM,EAAE,iBAAiB;SAC1B;KACF,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAElD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,gBAAgB,CAGrB,WAAW,EAAE;YACb,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI;YAClB,OAAO,EAAE,kBAAkB,CAAC,EAAE;gBAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAA;gBACpC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC;oBACf,OAAO,IAAI,CAAA;gBACb,CAAC;gBAED,OAAO,wBAAwB,CAAC;oBAC9B,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;oBACf,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;wBACpC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK;wBAChB,CAAC,CAAC,KAAK,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;oBAC9C,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI;iBACpB,CAAC,CAAA;YACJ,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAA0B,CAAA;IAEnD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,OAAO,wBAAwB,CAAC;YAC9B,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,KAAK,WAAW,CAAC,MAAM,CAAC,EAAE;YACjC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;SAC3B,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,wBAAwB,CAAC;QAC9B,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,KAAK,WAAW,CAAC,MAAM,CAAC,EAAE;QACjC,IAAI,EAAE,kBAAkB,CAAC;YACvB,GAAG,EAAE,QAAQ;YACb,YAAY,EAAE,UAAU;YACxB,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;SACzB,CAAC;KACH,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { OtherChain } from '@vultisig/core-chain/Chain';
|
|
2
|
+
import { BlockaidTxValidationInputResolver } from '../resolver.js';
|
|
3
|
+
export declare const getSolanaBlockaidTxValidationInput: BlockaidTxValidationInputResolver<OtherChain.Solana>;
|
|
4
|
+
//# sourceMappingURL=solana.d.ts.map
|