@vultisig/core-mpc 0.9.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 +28 -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/dkls/dkls.d.ts +6 -3
- package/dist/dkls/dkls.d.ts.map +1 -1
- package/dist/dkls/dkls.js +102 -57
- package/dist/dkls/dkls.js.map +1 -1
- package/dist/fast/api/batchReshareWithServer.d.ts +19 -0
- package/dist/fast/api/batchReshareWithServer.d.ts.map +1 -0
- package/dist/fast/api/batchReshareWithServer.js +7 -0
- package/dist/fast/api/batchReshareWithServer.js.map +1 -0
- package/dist/fast/api/createVaultWithServer.d.ts +14 -0
- package/dist/fast/api/createVaultWithServer.d.ts.map +1 -0
- package/dist/fast/api/createVaultWithServer.js +7 -0
- package/dist/fast/api/createVaultWithServer.js.map +1 -0
- package/dist/fast/api/keyImportWithServer.d.ts +3 -2
- package/dist/fast/api/keyImportWithServer.d.ts.map +1 -1
- package/dist/fast/api/keyImportWithServer.js +2 -2
- package/dist/fast/api/keyImportWithServer.js.map +1 -1
- package/dist/fast/api/reshareWithServer.d.ts +3 -1
- package/dist/fast/api/reshareWithServer.d.ts.map +1 -1
- package/dist/fast/api/reshareWithServer.js +2 -2
- package/dist/fast/api/reshareWithServer.js.map +1 -1
- package/dist/fast/api/sequentialKeyImportWithServer.d.ts +15 -0
- package/dist/fast/api/sequentialKeyImportWithServer.d.ts.map +1 -0
- package/dist/fast/api/sequentialKeyImportWithServer.js +7 -0
- package/dist/fast/api/sequentialKeyImportWithServer.js.map +1 -0
- package/dist/fast/api/setupVaultWithServer.d.ts +2 -1
- package/dist/fast/api/setupVaultWithServer.d.ts.map +1 -1
- package/dist/fast/api/setupVaultWithServer.js +1 -1
- package/dist/fast/api/setupVaultWithServer.js.map +1 -1
- 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/mldsa/mldsaKeygen.d.ts +4 -0
- package/dist/mldsa/mldsaKeygen.d.ts.map +1 -1
- package/dist/mldsa/mldsaKeygen.js +9 -5
- package/dist/mldsa/mldsaKeygen.js.map +1 -1
- package/dist/mpcLib.d.ts +3 -3
- package/dist/mpcLib.d.ts.map +1 -1
- package/dist/schnorr/schnorrKeygen.d.ts +5 -3
- package/dist/schnorr/schnorrKeygen.d.ts.map +1 -1
- package/dist/schnorr/schnorrKeygen.js +72 -40
- package/dist/schnorr/schnorrKeygen.js.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
|
@@ -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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/validation/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,CAkBlB,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
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 getSolanaBlockaidTxValidationInput = ({ payload, walletCore, chain }) => {
|
|
5
|
+
const coin = assertField(payload, 'coin');
|
|
6
|
+
const transactions = getCompiledTxsForBlockaidInput({
|
|
7
|
+
payload,
|
|
8
|
+
walletCore,
|
|
9
|
+
}).map(tx => decodeSigningOutput(chain, tx).encoded);
|
|
10
|
+
return {
|
|
11
|
+
chain: 'mainnet',
|
|
12
|
+
options: ['validation'],
|
|
13
|
+
account_address: coin.address,
|
|
14
|
+
encoding: 'base58',
|
|
15
|
+
transactions,
|
|
16
|
+
method: 'signAndSendTransaction',
|
|
17
|
+
metadata: {},
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=solana.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solana.js","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/validation/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,EAAE,EAAE;IACrC,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAEzC,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 @@
|
|
|
1
|
+
{"version":3,"file":"sui.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/validation/input/resolvers/sui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAKvD,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAA;AAE/D,eAAO,MAAM,+BAA+B,EAAE,iCAAiC,CAC7E,UAAU,CAAC,GAAG,CAoBf,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { OtherChain } from '@vultisig/core-chain/Chain';
|
|
2
|
+
import { decodeSigningOutput } from '@vultisig/core-chain/tw/signingOutput';
|
|
3
|
+
import { assertField } from '@vultisig/lib-utils/record/assertField';
|
|
4
|
+
import { getCompiledTxsForBlockaidInput } from '../../../utils/getCompiledTxsForBlockaidInput.js';
|
|
5
|
+
export const getSuiBlockaidTxValidationInput = ({ payload, walletCore }) => {
|
|
6
|
+
const coin = assertField(payload, 'coin');
|
|
7
|
+
const compiledTxs = getCompiledTxsForBlockaidInput({
|
|
8
|
+
payload,
|
|
9
|
+
walletCore,
|
|
10
|
+
});
|
|
11
|
+
const [transaction] = compiledTxs.map(compiledTx => decodeSigningOutput(OtherChain.Sui, compiledTx).unsignedTx);
|
|
12
|
+
return {
|
|
13
|
+
chain: 'mainnet',
|
|
14
|
+
options: ['validation'],
|
|
15
|
+
account_address: coin.address,
|
|
16
|
+
transaction,
|
|
17
|
+
metadata: {},
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=sui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sui.js","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/validation/input/resolvers/sui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,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,+BAA+B,GAExC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;IAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAEzC,MAAM,WAAW,GAAG,8BAA8B,CAAC;QACjD,OAAO;QACP,UAAU;KACX,CAAC,CAAA;IAEF,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,GAAG,CACnC,UAAU,CAAC,EAAE,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,UAAU,CACzE,CAAA;IAED,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,eAAe,EAAE,IAAI,CAAC,OAAO;QAC7B,WAAW;QACX,QAAQ,EAAE,EAAE;KACb,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utxo.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/validation/input/resolvers/utxo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAKtD,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAA;AAE/D,eAAO,MAAM,gCAAgC,EAAE,iCAAiC,CAC9E,SAAS,CAAC,OAAO,CAoBlB,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { decodeSigningOutput } from '@vultisig/core-chain/tw/signingOutput';
|
|
2
|
+
import { getKeysignCoin } from '@vultisig/core-mpc/keysign/utils/getKeysignCoin';
|
|
3
|
+
import { getCompiledTxsForBlockaidInput } from '../../../utils/getCompiledTxsForBlockaidInput.js';
|
|
4
|
+
export const getUtxoBlockaidTxValidationInput = ({ payload, walletCore, chain }) => {
|
|
5
|
+
const { address } = getKeysignCoin(payload);
|
|
6
|
+
const compiledTxs = getCompiledTxsForBlockaidInput({
|
|
7
|
+
payload,
|
|
8
|
+
walletCore,
|
|
9
|
+
});
|
|
10
|
+
const [transaction] = compiledTxs.map(compiledTx => decodeSigningOutput(chain, compiledTx).encoded);
|
|
11
|
+
return {
|
|
12
|
+
chain: chain.toLowerCase(),
|
|
13
|
+
options: ['validation'],
|
|
14
|
+
account_address: address,
|
|
15
|
+
transaction: Buffer.from(transaction).toString('hex'),
|
|
16
|
+
metadata: {},
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=utxo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utxo.js","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/validation/input/resolvers/utxo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAA;AAEhF,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAA;AAG9F,MAAM,CAAC,MAAM,gCAAgC,GAEzC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;IACrC,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAE3C,MAAM,WAAW,GAAG,8BAA8B,CAAC;QACjD,OAAO;QACP,UAAU;KACX,CAAC,CAAA;IAEF,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,GAAG,CACnC,UAAU,CAAC,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,OAAO,CAC7D,CAAA;IAED,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE;QAC1B,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,eAAe,EAAE,OAAO;QACxB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACrD,QAAQ,EAAE,EAAE;KACb,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AccountCoin } from '@vultisig/core-chain/coin/AccountCoin';
|
|
2
|
+
import { NativeSwapQuote } from '@vultisig/core-chain/swap/native/NativeSwapQuote';
|
|
3
|
+
import { CommKeysignSwapPayload } from '../../../keysign/swap/KeysignSwapPayload.js';
|
|
4
|
+
type Input = {
|
|
5
|
+
quote: NativeSwapQuote;
|
|
6
|
+
fromCoin: AccountCoin & {
|
|
7
|
+
hexPublicKey: string;
|
|
8
|
+
};
|
|
9
|
+
toCoin: AccountCoin & {
|
|
10
|
+
hexPublicKey: string;
|
|
11
|
+
};
|
|
12
|
+
amount: bigint;
|
|
13
|
+
};
|
|
14
|
+
export declare const nativeSwapQuoteToSwapPayload: ({ quote, fromCoin, amount, toCoin, }: Input) => CommKeysignSwapPayload;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=nativeSwapQuoteToSwapPayload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeSwapQuoteToSwapPayload.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/swap/native/utils/nativeSwapQuoteToSwapPayload.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAKnE,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAA;AAKlF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAA;AAIjF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,eAAe,CAAA;IACtB,QAAQ,EAAE,WAAW,GAAG;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;IAChD,MAAM,EAAE,WAAW,GAAG;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9C,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,4BAA4B,GAAI,sCAK1C,KAAK,KAAG,sBA+BV,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { create } from '@bufbuild/protobuf';
|
|
2
|
+
import { fromChainAmount } from '@vultisig/core-chain/amount/fromChainAmount';
|
|
3
|
+
import { nativeSwapPayloadCase, nativeSwapStreamingInterval, } from '@vultisig/core-chain/swap/native/NativeSwapChain';
|
|
4
|
+
import { getNativeSwapDecimals } from '@vultisig/core-chain/swap/native/utils/getNativeSwapDecimals';
|
|
5
|
+
import { convertDuration } from '@vultisig/lib-utils/time/convertDuration';
|
|
6
|
+
import { addMinutes } from 'date-fns';
|
|
7
|
+
import { toCommCoin } from '../../../types/utils/commCoin.js';
|
|
8
|
+
import { THORChainSwapPayloadSchema } from '../../../types/vultisig/keysign/v1/thorchain_swap_payload_pb.js';
|
|
9
|
+
export const nativeSwapQuoteToSwapPayload = ({ quote, fromCoin, amount, toCoin, }) => {
|
|
10
|
+
const isAffiliate = !!quote.fees.affiliate && Number(quote.fees.affiliate) > 0;
|
|
11
|
+
const streamingInterval = nativeSwapStreamingInterval[quote.swapChain];
|
|
12
|
+
const toDecimals = getNativeSwapDecimals(toCoin);
|
|
13
|
+
return {
|
|
14
|
+
case: nativeSwapPayloadCase[quote.swapChain],
|
|
15
|
+
value: create(THORChainSwapPayloadSchema, {
|
|
16
|
+
fromAddress: fromCoin.address,
|
|
17
|
+
fromCoin: toCommCoin(fromCoin),
|
|
18
|
+
toCoin: toCommCoin(toCoin),
|
|
19
|
+
vaultAddress: quote.inbound_address ?? fromCoin.address,
|
|
20
|
+
routerAddress: quote.router,
|
|
21
|
+
fromAmount: amount.toString(),
|
|
22
|
+
toAmountDecimal: fromChainAmount(quote.expected_amount_out, toDecimals).toFixed(toDecimals),
|
|
23
|
+
expirationTime: BigInt(Math.round(convertDuration(addMinutes(Date.now(), 15).getTime(), 'ms', 's'))),
|
|
24
|
+
streamingInterval: streamingInterval.toString(),
|
|
25
|
+
streamingQuantity: '0',
|
|
26
|
+
toAmountLimit: '0',
|
|
27
|
+
isAffiliate,
|
|
28
|
+
}),
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=nativeSwapQuoteToSwapPayload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeSwapQuoteToSwapPayload.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/swap/native/utils/nativeSwapQuoteToSwapPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAA;AAE7E,OAAO,EACL,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,kDAAkD,CAAA;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAA;AACpG,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAGrC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8DAA8D,CAAA;AASzG,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,EAC3C,KAAK,EACL,QAAQ,EACR,MAAM,EACN,MAAM,GACA,EAA0B,EAAE;IAClC,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAE9E,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAEtE,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAEhD,OAAO;QACL,IAAI,EAAE,qBAAqB,CAAC,KAAK,CAAC,SAAS,CAAC;QAC5C,KAAK,EAAE,MAAM,CAAC,0BAA0B,EAAE;YACxC,WAAW,EAAE,QAAQ,CAAC,OAAO;YAC7B,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC;YAC9B,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC;YAC1B,YAAY,EAAE,KAAK,CAAC,eAAe,IAAI,QAAQ,CAAC,OAAO;YACvD,aAAa,EAAE,KAAK,CAAC,MAAM;YAC3B,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE;YAC7B,eAAe,EAAE,eAAe,CAC9B,KAAK,CAAC,mBAAmB,EACzB,UAAU,CACX,CAAC,OAAO,CAAC,UAAU,CAAC;YACrB,cAAc,EAAE,MAAM,CACpB,IAAI,CAAC,KAAK,CACR,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CACjE,CACF;YACD,iBAAiB,EAAE,iBAAiB,CAAC,QAAQ,EAAE;YAC/C,iBAAiB,EAAE,GAAG;YACtB,aAAa,EAAE,GAAG;YAClB,WAAW;SACZ,CAAC;KACH,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Chain } from '@vultisig/core-chain/Chain';
|
|
2
|
+
import { KeysignSwapPayload } from '../../keysign/swap/KeysignSwapPayload.js';
|
|
3
|
+
type GetSwapTrackingUrlInput = {
|
|
4
|
+
swapPayload: KeysignSwapPayload;
|
|
5
|
+
txHash: string;
|
|
6
|
+
sourceChain: Chain;
|
|
7
|
+
};
|
|
8
|
+
export declare const getSwapTrackingUrl: ({ swapPayload, txHash, sourceChain, }: GetSwapTrackingUrlInput) => string;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=getSwapTrackingUrl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSwapTrackingUrl.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/swap/utils/getSwapTrackingUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAKlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAE1E,KAAK,uBAAuB,GAAG;IAC7B,WAAW,EAAE,kBAAkB,CAAA;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,KAAK,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,uCAIhC,uBAAuB,KAAG,MAuB5B,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Chain } from '@vultisig/core-chain/Chain';
|
|
2
|
+
import { getBlockExplorerUrl } from '@vultisig/core-chain/utils/getBlockExplorerUrl';
|
|
3
|
+
import { stripHexPrefix } from '@vultisig/lib-utils/hex/stripHexPrefix';
|
|
4
|
+
import { matchRecordUnion } from '@vultisig/lib-utils/matchRecordUnion';
|
|
5
|
+
export const getSwapTrackingUrl = ({ swapPayload, txHash, sourceChain, }) => {
|
|
6
|
+
return matchRecordUnion(swapPayload, {
|
|
7
|
+
native: ({ chain }) => {
|
|
8
|
+
if (chain === Chain.THORChain) {
|
|
9
|
+
return `https://runescan.io/tx/${stripHexPrefix(txHash)}`;
|
|
10
|
+
}
|
|
11
|
+
return getBlockExplorerUrl({
|
|
12
|
+
chain,
|
|
13
|
+
entity: 'tx',
|
|
14
|
+
value: txHash,
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
general: ({ provider }) => {
|
|
18
|
+
if (provider === 'li.fi') {
|
|
19
|
+
return `https://scan.li.fi/tx/${txHash}`;
|
|
20
|
+
}
|
|
21
|
+
return getBlockExplorerUrl({
|
|
22
|
+
chain: sourceChain,
|
|
23
|
+
entity: 'tx',
|
|
24
|
+
value: txHash,
|
|
25
|
+
});
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=getSwapTrackingUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSwapTrackingUrl.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/swap/utils/getSwapTrackingUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAA;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAUvE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EACjC,WAAW,EACX,MAAM,EACN,WAAW,GACa,EAAU,EAAE;IACpC,OAAO,gBAAgB,CAA6B,WAAW,EAAE;QAC/D,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YACpB,IAAI,KAAK,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC9B,OAAO,0BAA0B,cAAc,CAAC,MAAM,CAAC,EAAE,CAAA;YAC3D,CAAC;YACD,OAAO,mBAAmB,CAAC;gBACzB,KAAK;gBACL,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,MAAM;aACd,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YACxB,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACzB,OAAO,yBAAyB,MAAM,EAAE,CAAA;YAC1C,CAAC;YACD,OAAO,mBAAmB,CAAC;gBACzB,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,MAAM;aACd,CAAC,CAAA;QACJ,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { WalletCore } from '@trustwallet/wallet-core';
|
|
2
|
+
import { PublicKey } from '@trustwallet/wallet-core/dist/src/wallet-core';
|
|
3
|
+
import { Chain } from '@vultisig/core-chain/Chain';
|
|
4
|
+
import { KeysignSignature } from '../../keysign/KeysignSignature.js';
|
|
5
|
+
type Input = {
|
|
6
|
+
publicKey: PublicKey;
|
|
7
|
+
txInputData: Uint8Array;
|
|
8
|
+
signatures: Record<string, KeysignSignature>;
|
|
9
|
+
chain: Chain;
|
|
10
|
+
walletCore: WalletCore;
|
|
11
|
+
};
|
|
12
|
+
export declare const compileTx: ({ publicKey, txInputData, signatures: keysignSignatures, chain, walletCore, }: Input) => Uint8Array<ArrayBufferLike>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=compileTx.d.ts.map
|
|
@@ -0,0 +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;AASlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAMjE,KAAK,KAAK,GAAG;IACX,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,UAAU,CAAA;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC5C,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,+EAMvB,KAAK,gCAuGP,CAAA"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { fromBinary } from '@bufbuild/protobuf';
|
|
2
|
+
import { TW } from '@trustwallet/wallet-core';
|
|
3
|
+
import { Chain } from '@vultisig/core-chain/Chain';
|
|
4
|
+
import { getChainKind } from '@vultisig/core-chain/ChainKind';
|
|
5
|
+
import { assembleBittensorExtrinsic } from '@vultisig/core-chain/chains/bittensor/signing/buildExtrinsic';
|
|
6
|
+
import { getCoinType } from '@vultisig/core-chain/coin/coinType';
|
|
7
|
+
import { signatureFormats } from '@vultisig/core-chain/signing/SignatureFormat';
|
|
8
|
+
import { assertSignature } from '@vultisig/core-chain/utils/assertSignature';
|
|
9
|
+
import { getQBTCSignedTransaction } from '../../chains/cosmos/qbtc/QBTCHelper.js';
|
|
10
|
+
import { getBlockchainSpecificValue } from '../../keysign/chainSpecific/KeysignChainSpecific.js';
|
|
11
|
+
import { decodeBittensorTxInput } from '../../keysign/signingInputs/resolvers/bittensor.js';
|
|
12
|
+
import { KeysignPayloadSchema } from '../../types/vultisig/keysign/v1/keysign_message_pb.js';
|
|
13
|
+
import { getPreSigningHashes } from '../preSigningHashes.js';
|
|
14
|
+
import { generateSignature } from '../signature/generateSignature.js';
|
|
15
|
+
export const compileTx = ({ publicKey, txInputData, signatures: keysignSignatures, chain, walletCore, }) => {
|
|
16
|
+
if (chain === Chain.QBTC) {
|
|
17
|
+
const keysignPayload = fromBinary(KeysignPayloadSchema, txInputData);
|
|
18
|
+
const cosmosSpecific = getBlockchainSpecificValue(keysignPayload.blockchainSpecific, 'cosmosSpecific');
|
|
19
|
+
const hashHexes = getPreSigningHashes({
|
|
20
|
+
walletCore,
|
|
21
|
+
txInputData,
|
|
22
|
+
chain,
|
|
23
|
+
}).map(h => Buffer.from(h).toString('hex'));
|
|
24
|
+
const qbtcSignatures = Object.fromEntries(hashHexes.map(hex => [hex, keysignSignatures[hex]]));
|
|
25
|
+
const { serialized } = getQBTCSignedTransaction({
|
|
26
|
+
keysignPayload,
|
|
27
|
+
cosmosSpecific,
|
|
28
|
+
signatures: qbtcSignatures,
|
|
29
|
+
});
|
|
30
|
+
return TW.Cosmos.Proto.SigningOutput.encode(TW.Cosmos.Proto.SigningOutput.create({ serialized })).finish();
|
|
31
|
+
}
|
|
32
|
+
const hashes = getPreSigningHashes({
|
|
33
|
+
walletCore,
|
|
34
|
+
txInputData,
|
|
35
|
+
chain,
|
|
36
|
+
});
|
|
37
|
+
const chainKind = getChainKind(chain);
|
|
38
|
+
const signatureFormat = signatureFormats[chainKind];
|
|
39
|
+
if (chain === Chain.Bittensor) {
|
|
40
|
+
const hash = hashes[0];
|
|
41
|
+
const hashHex = Buffer.from(hash).toString('hex');
|
|
42
|
+
const sig = generateSignature({
|
|
43
|
+
walletCore,
|
|
44
|
+
signature: keysignSignatures[hashHex],
|
|
45
|
+
signatureFormat,
|
|
46
|
+
});
|
|
47
|
+
assertSignature({
|
|
48
|
+
publicKey,
|
|
49
|
+
message: hash,
|
|
50
|
+
signature: sig,
|
|
51
|
+
signatureFormat,
|
|
52
|
+
});
|
|
53
|
+
const { callData, signedExtra } = decodeBittensorTxInput(txInputData);
|
|
54
|
+
const signerPubkey = new Uint8Array(publicKey.data());
|
|
55
|
+
const extrinsic = assembleBittensorExtrinsic(signerPubkey, new Uint8Array(sig), callData, signedExtra);
|
|
56
|
+
return TW.Polkadot.Proto.SigningOutput.encode(TW.Polkadot.Proto.SigningOutput.create({
|
|
57
|
+
encoded: extrinsic,
|
|
58
|
+
})).finish();
|
|
59
|
+
}
|
|
60
|
+
const allSignatures = walletCore.DataVector.create();
|
|
61
|
+
const publicKeys = walletCore.DataVector.create();
|
|
62
|
+
hashes.forEach(hash => {
|
|
63
|
+
const signature = generateSignature({
|
|
64
|
+
walletCore,
|
|
65
|
+
signature: keysignSignatures[Buffer.from(hash).toString('hex')],
|
|
66
|
+
signatureFormat,
|
|
67
|
+
});
|
|
68
|
+
assertSignature({
|
|
69
|
+
publicKey,
|
|
70
|
+
message: hash,
|
|
71
|
+
signature,
|
|
72
|
+
signatureFormat,
|
|
73
|
+
});
|
|
74
|
+
allSignatures.add(signature);
|
|
75
|
+
if (chainKind !== 'evm') {
|
|
76
|
+
publicKeys.add(publicKey.data());
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
const coinType = getCoinType({
|
|
80
|
+
chain,
|
|
81
|
+
walletCore,
|
|
82
|
+
});
|
|
83
|
+
return walletCore.TransactionCompiler.compileWithSignatures(coinType, txInputData, allSignatures, publicKeys);
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=compileTx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compileTx.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/compile/compileTx.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Chain } from '@vultisig/core-chain/Chain';
|
|
2
|
+
import { WalletCore } from '@trustwallet/wallet-core';
|
|
3
|
+
type Input = {
|
|
4
|
+
walletCore: WalletCore;
|
|
5
|
+
chain: Chain;
|
|
6
|
+
txInputData: Uint8Array;
|
|
7
|
+
};
|
|
8
|
+
export declare const getPreSigningHashes: ({ walletCore, txInputData, chain, }: Input) => Uint8Array<ArrayBufferLike>[];
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/preSigningHashes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAOlD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAKrD,KAAK,KAAK,GAAG;IACX,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,KAAK,CAAA;IACZ,WAAW,EAAE,UAAU,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,qCAIjC,KAAK,kCA+CP,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Chain } from '@vultisig/core-chain/Chain';
|
|
2
|
+
import { fromBinary } from '@bufbuild/protobuf';
|
|
3
|
+
import { decodeBittensorTxInput } from '../../keysign/signingInputs/resolvers/bittensor.js';
|
|
4
|
+
import { getQBTCPreSignedImageHash } from '../../chains/cosmos/qbtc/QBTCHelper.js';
|
|
5
|
+
import { without } from '@vultisig/lib-utils/array/without';
|
|
6
|
+
import { shouldBePresent } from '@vultisig/lib-utils/assert/shouldBePresent';
|
|
7
|
+
import { blake2AsU8a } from '@polkadot/util-crypto';
|
|
8
|
+
import { getBlockchainSpecificValue } from '../../keysign/chainSpecific/KeysignChainSpecific.js';
|
|
9
|
+
import { getPreSigningOutput } from '../../keysign/preSigningOutput.js';
|
|
10
|
+
import { KeysignPayloadSchema } from '../../types/vultisig/keysign/v1/keysign_message_pb.js';
|
|
11
|
+
export const getPreSigningHashes = ({ walletCore, txInputData, chain, }) => {
|
|
12
|
+
if (chain === Chain.QBTC) {
|
|
13
|
+
const keysignPayload = fromBinary(KeysignPayloadSchema, txInputData);
|
|
14
|
+
const cosmosSpecific = getBlockchainSpecificValue(keysignPayload.blockchainSpecific, 'cosmosSpecific');
|
|
15
|
+
return getQBTCPreSignedImageHash({ keysignPayload, cosmosSpecific });
|
|
16
|
+
}
|
|
17
|
+
if (chain === Chain.Bittensor) {
|
|
18
|
+
const { payload } = decodeBittensorTxInput(txInputData);
|
|
19
|
+
const toSign = payload.length > 256 ? blake2AsU8a(payload, 256) : payload;
|
|
20
|
+
return [toSign];
|
|
21
|
+
}
|
|
22
|
+
const output = getPreSigningOutput({
|
|
23
|
+
walletCore,
|
|
24
|
+
txInputData,
|
|
25
|
+
chain,
|
|
26
|
+
});
|
|
27
|
+
if ('preSigningResultV2' in output && output.preSigningResultV2 !== null) {
|
|
28
|
+
const preSigningResultV2 = shouldBePresent(output.preSigningResultV2);
|
|
29
|
+
const sighashes = shouldBePresent(preSigningResultV2.sighashes);
|
|
30
|
+
return without(sighashes.map(hash => hash?.sighash), null, undefined);
|
|
31
|
+
}
|
|
32
|
+
if ('hashPublicKeys' in output) {
|
|
33
|
+
return without(output.hashPublicKeys.map(hash => hash?.dataHash), null, undefined);
|
|
34
|
+
}
|
|
35
|
+
const { data } = output;
|
|
36
|
+
if ('dataHash' in output && output.dataHash.length > 0) {
|
|
37
|
+
return [output.dataHash];
|
|
38
|
+
}
|
|
39
|
+
return [data];
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/preSigningHashes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAA;AACxF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAA;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAA;AAQzF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,UAAU,EACV,WAAW,EACX,KAAK,GACC,EAAE,EAAE;IACV,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,cAAc,GAAG,UAAU,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAA;QACpE,MAAM,cAAc,GAAG,0BAA0B,CAC/C,cAAc,CAAC,kBAAkB,EACjC,gBAAgB,CACjB,CAAA;QACD,OAAO,yBAAyB,CAAC,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAA;IACtE,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;QAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QACzE,OAAO,CAAC,MAAM,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC;QACjC,UAAU;QACV,WAAW;QACX,KAAK;KACN,CAAC,CAAA;IAEF,IAAI,oBAAoB,IAAI,MAAM,IAAI,MAAM,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;QACzE,MAAM,kBAAkB,GAAG,eAAe,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;QACrE,MAAM,SAAS,GAAG,eAAe,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;QAC/D,OAAO,OAAO,CACZ,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EACpC,IAAI,EACJ,SAAS,CACV,CAAA;IACH,CAAC;IAED,IAAI,gBAAgB,IAAI,MAAM,EAAE,CAAC;QAC/B,OAAO,OAAO,CACZ,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EACjD,IAAI,EACJ,SAAS,CACV,CAAA;IACH,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;IAEvB,IAAI,UAAU,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,CAAC,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SignatureFormat } from '@vultisig/core-chain/signing/SignatureFormat';
|
|
2
|
+
import { WalletCore } from '@trustwallet/wallet-core';
|
|
3
|
+
import { KeysignSignature } from '../../keysign/KeysignSignature.js';
|
|
4
|
+
type Input = {
|
|
5
|
+
walletCore: WalletCore;
|
|
6
|
+
signature: KeysignSignature;
|
|
7
|
+
signatureFormat: SignatureFormat;
|
|
8
|
+
};
|
|
9
|
+
export declare const generateSignature: ({ walletCore, signature, signatureFormat, }: Input) => Uint8Array<ArrayBufferLike>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=generateSignature.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateSignature.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/signature/generateSignature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAA;AAK9E,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEjE,KAAK,KAAK,GAAG;IACX,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,gBAAgB,CAAA;IAC3B,eAAe,EAAE,eAAe,CAAA;CACjC,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,6CAI/B,KAAK,gCAqBP,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { without } from '@vultisig/lib-utils/array/without';
|
|
2
|
+
import { match } from '@vultisig/lib-utils/match';
|
|
3
|
+
import { pick } from '@vultisig/lib-utils/record/pick';
|
|
4
|
+
import { recordMap } from '@vultisig/lib-utils/record/recordMap';
|
|
5
|
+
export const generateSignature = ({ walletCore, signature, signatureFormat, }) => {
|
|
6
|
+
return match(signatureFormat, {
|
|
7
|
+
rawWithRecoveryId: () => {
|
|
8
|
+
const [r, s, recovery_id] = without([signature.r, signature.s, signature.recovery_id], undefined).map(value => walletCore.HexCoding.decode(value));
|
|
9
|
+
return new Uint8Array([...r, ...s, ...recovery_id]);
|
|
10
|
+
},
|
|
11
|
+
raw: () => {
|
|
12
|
+
const { r, s } = recordMap(pick(signature, ['r', 's']), value => walletCore.HexCoding.decode(value).reverse());
|
|
13
|
+
return new Uint8Array([...r, ...s]);
|
|
14
|
+
},
|
|
15
|
+
der: () => {
|
|
16
|
+
return walletCore.HexCoding.decode(signature.der_signature);
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=generateSignature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateSignature.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/signature/generateSignature.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AAWhE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,UAAU,EACV,SAAS,EACT,eAAe,GACT,EAAE,EAAE;IACV,OAAO,KAAK,CAAC,eAAe,EAAE;QAC5B,iBAAiB,EAAE,GAAG,EAAE;YACtB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,GAAG,OAAO,CACjC,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,EACjD,SAAS,CACV,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;YAElD,OAAO,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC,CAAA;QACrD,CAAC;QACD,GAAG,EAAE,GAAG,EAAE;YACR,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAC9D,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAC7C,CAAA;YAED,OAAO,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;QACrC,CAAC;QACD,GAAG,EAAE,GAAG,EAAE;YACR,OAAO,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;QAC7D,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -2,11 +2,10 @@ import { KeysignLibType, MpcLib } from '@vultisig/core-mpc/mpcLib';
|
|
|
2
2
|
import { LibType } from '@vultisig/core-mpc/types/vultisig/keygen/v1/lib_type_message_pb';
|
|
3
3
|
import { Vault } from '@vultisig/core-mpc/vault/Vault';
|
|
4
4
|
export declare const fromLibType: (libType: LibType) => MpcLib;
|
|
5
|
-
type ToLibTypeInput = {
|
|
5
|
+
export type ToLibTypeInput = {
|
|
6
6
|
libType: MpcLib;
|
|
7
7
|
isKeyImport?: boolean;
|
|
8
8
|
};
|
|
9
9
|
export declare const toLibType: ({ libType, isKeyImport, }: ToLibTypeInput) => LibType;
|
|
10
10
|
export declare const toKeysignLibType: (vault: Vault) => KeysignLibType;
|
|
11
|
-
export {};
|
|
12
11
|
//# sourceMappingURL=libType.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libType.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/types/utils/libType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,iEAAiE,CAAA;AACzF,OAAO,EAAoB,KAAK,EAAE,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"libType.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/types/utils/libType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,iEAAiE,CAAA;AACzF,OAAO,EAAoB,KAAK,EAAE,MAAM,gCAAgC,CAAA;AAexE,eAAO,MAAM,WAAW,GAAI,SAAS,OAAO,KAAG,MACP,CAAA;AAExC,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,2BAGvB,cAAc,KAAG,OAKnB,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,OAAO,KAAK,KAAG,cAM/C,CAAA"}
|