@shapeshiftoss/hdwallet-vultisig 1.62.5
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/LICENSE.md +21 -0
- package/dist/adapter.d.ts +22 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/adapter.js +84 -0
- package/dist/adapter.js.map +1 -0
- package/dist/bitcoin.d.ts +6 -0
- package/dist/bitcoin.d.ts.map +1 -0
- package/dist/bitcoin.js +184 -0
- package/dist/bitcoin.js.map +1 -0
- package/dist/cosmos.d.ts +6 -0
- package/dist/cosmos.d.ts.map +1 -0
- package/dist/cosmos.js +47 -0
- package/dist/cosmos.js.map +1 -0
- package/dist/ethereum.d.ts +12 -0
- package/dist/ethereum.d.ts.map +1 -0
- package/dist/ethereum.js +193 -0
- package/dist/ethereum.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/solana.d.ts +9 -0
- package/dist/solana.d.ts.map +1 -0
- package/dist/solana.js +55 -0
- package/dist/solana.js.map +1 -0
- package/dist/thorchain.d.ts +6 -0
- package/dist/thorchain.d.ts.map +1 -0
- package/dist/thorchain.js +46 -0
- package/dist/thorchain.js.map +1 -0
- package/dist/types.d.ts +50 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/vultisig.d.ts +123 -0
- package/dist/vultisig.d.ts.map +1 -0
- package/dist/vultisig.js +482 -0
- package/dist/vultisig.js.map +1 -0
- package/package.json +31 -0
- package/src/adapter.ts +72 -0
- package/src/bitcoin.ts +171 -0
- package/src/cosmos.ts +43 -0
- package/src/ethereum.ts +169 -0
- package/src/index.ts +2 -0
- package/src/solana.ts +31 -0
- package/src/thorchain.ts +43 -0
- package/src/types.ts +62 -0
- package/src/vultisig.test.ts +253 -0
- package/src/vultisig.ts +459 -0
- package/tsconfig.json +10 -0
- package/tsconfig.tsbuildinfo +1 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./adapter"), exports);
|
|
18
|
+
__exportStar(require("./vultisig"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,6CAA2B"}
|
package/dist/solana.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as core from "@shapeshiftoss/hdwallet-core";
|
|
2
|
+
import { PublicKey } from "@solana/web3.js";
|
|
3
|
+
import { VultisigSolanaProvider } from "./types";
|
|
4
|
+
export type SolanaAccount = {
|
|
5
|
+
publicKey: PublicKey;
|
|
6
|
+
};
|
|
7
|
+
export declare function solanaSignTx(msg: core.SolanaSignTx, provider: VultisigSolanaProvider, address: string): Promise<core.SolanaSignedTx | null>;
|
|
8
|
+
export declare function solanaSendTx(msg: core.SolanaSignTx, provider: VultisigSolanaProvider, address: string): Promise<core.SolanaTxSignature | null>;
|
|
9
|
+
//# sourceMappingURL=solana.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../src/solana.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,wBAAsB,YAAY,CAChC,GAAG,EAAE,IAAI,CAAC,YAAY,EACtB,QAAQ,EAAE,sBAAsB,EAChC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,CAOrC;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,IAAI,CAAC,YAAY,EACtB,QAAQ,EAAE,sBAAsB,EAChC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAIxC"}
|
package/dist/solana.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.solanaSignTx = solanaSignTx;
|
|
36
|
+
exports.solanaSendTx = solanaSendTx;
|
|
37
|
+
const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
|
|
38
|
+
function solanaSignTx(msg, provider, address) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
const transaction = core.solanaBuildTransaction(msg, address);
|
|
41
|
+
const signedTransaction = yield provider.signTransaction(transaction);
|
|
42
|
+
return {
|
|
43
|
+
serialized: Buffer.from(signedTransaction.serialize()).toString("base64"),
|
|
44
|
+
signatures: signedTransaction.signatures.map((signature) => Buffer.from(signature).toString("base64")),
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function solanaSendTx(msg, provider, address) {
|
|
49
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
const transaction = core.solanaBuildTransaction(msg, address);
|
|
51
|
+
const { signature } = yield provider.signAndSendTransaction(transaction);
|
|
52
|
+
return { signature };
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=solana.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solana.js","sourceRoot":"","sources":["../src/solana.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,oCAWC;AAED,oCAQC;AA9BD,mEAAqD;AASrD,SAAsB,YAAY,CAChC,GAAsB,EACtB,QAAgC,EAChC,OAAe;;QAEf,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9D,MAAM,iBAAiB,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACtE,OAAO;YACL,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACzE,UAAU,EAAE,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACvG,CAAC;IACJ,CAAC;CAAA;AAED,SAAsB,YAAY,CAChC,GAAsB,EACtB,QAAgC,EAChC,OAAe;;QAEf,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACzE,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC;CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { CosmosAccountPath, CosmosGetAccountPaths, CosmosSignedTx, CosmosSignTx } from "@shapeshiftoss/hdwallet-core";
|
|
2
|
+
import { VultisigOfflineProvider } from "./types";
|
|
3
|
+
export declare function thorchainGetAccountPaths(msg: CosmosGetAccountPaths): Array<CosmosAccountPath>;
|
|
4
|
+
export declare function thorchainGetAddress(provider: VultisigOfflineProvider): Promise<string | undefined>;
|
|
5
|
+
export declare function thorchainSignTx(provider: VultisigOfflineProvider, msg: CosmosSignTx): Promise<CosmosSignedTx>;
|
|
6
|
+
//# sourceMappingURL=thorchain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thorchain.d.ts","sourceRoot":"","sources":["../src/thorchain.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,YAAY,EAEb,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,qBAAqB,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAM7F;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAIxG;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,uBAAuB,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAenH"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.thorchainGetAccountPaths = thorchainGetAccountPaths;
|
|
13
|
+
exports.thorchainGetAddress = thorchainGetAddress;
|
|
14
|
+
exports.thorchainSignTx = thorchainSignTx;
|
|
15
|
+
const hdwallet_core_1 = require("@shapeshiftoss/hdwallet-core");
|
|
16
|
+
const proto_tx_builder_1 = require("@shapeshiftoss/proto-tx-builder");
|
|
17
|
+
function thorchainGetAccountPaths(msg) {
|
|
18
|
+
return [
|
|
19
|
+
{
|
|
20
|
+
addressNList: [0x80000000 + 44, 0x80000000 + (0, hdwallet_core_1.slip44ByCoin)("Thorchain"), 0x80000000 + msg.accountIdx, 0, 0],
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
}
|
|
24
|
+
function thorchainGetAddress(provider) {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
const offlineSigner = provider.getOfflineSigner("thorchain-1");
|
|
27
|
+
const accounts = yield offlineSigner.getAccounts();
|
|
28
|
+
return accounts[0].address;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
function thorchainSignTx(provider, msg) {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
const offlineSigner = provider.getOfflineSigner(msg.chain_id);
|
|
34
|
+
const address = yield thorchainGetAddress(provider);
|
|
35
|
+
if (!address)
|
|
36
|
+
throw new Error("failed to get address");
|
|
37
|
+
const signerData = {
|
|
38
|
+
sequence: Number(msg.sequence),
|
|
39
|
+
accountNumber: Number(msg.account_number),
|
|
40
|
+
chainId: msg.chain_id,
|
|
41
|
+
};
|
|
42
|
+
const result = yield (0, proto_tx_builder_1.sign)(address, msg.tx, offlineSigner, signerData, "thor");
|
|
43
|
+
return result;
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=thorchain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thorchain.js","sourceRoot":"","sources":["../src/thorchain.ts"],"names":[],"mappings":";;;;;;;;;;;AAaA,4DAMC;AAED,kDAIC;AAED,0CAeC;AAxCD,gEAMsC;AACtC,sEAAuD;AAIvD,SAAgB,wBAAwB,CAAC,GAA0B;IACjE,OAAO;QACL;YACE,YAAY,EAAE,CAAC,UAAU,GAAG,EAAE,EAAE,UAAU,GAAG,IAAA,4BAAY,EAAC,WAAW,CAAC,EAAE,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;SAC3G;KACF,CAAC;AACJ,CAAC;AAED,SAAsB,mBAAmB,CAAC,QAAiC;;QACzE,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;QACnD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7B,CAAC;CAAA;AAED,SAAsB,eAAe,CAAC,QAAiC,EAAE,GAAiB;;QACxF,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE9D,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAEvD,MAAM,UAAU,GAAe;YAC7B,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC9B,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;YACzC,OAAO,EAAE,GAAG,CAAC,QAAQ;SACtB,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAI,EAAC,OAAO,EAAE,GAAG,CAAC,EAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAEvF,OAAO,MAAM,CAAC;IAChB,CAAC;CAAA"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { OfflineSigner } from "@cosmjs/proto-signing";
|
|
2
|
+
import { PublicKey, VersionedTransaction } from "@solana/web3.js";
|
|
3
|
+
import { TransactionSignature } from "@solana/web3.js";
|
|
4
|
+
import { providers } from "ethers";
|
|
5
|
+
import { SolanaAccount } from "./solana";
|
|
6
|
+
export type VultisigRequestParams = {
|
|
7
|
+
get_accounts: [];
|
|
8
|
+
request_accounts: [];
|
|
9
|
+
};
|
|
10
|
+
type VultisigRequestReturn = {
|
|
11
|
+
get_accounts: Promise<string[]>;
|
|
12
|
+
request_accounts: Promise<string[]>;
|
|
13
|
+
};
|
|
14
|
+
type VultisigRequestMethod = keyof VultisigRequestParams;
|
|
15
|
+
export type VultisigRequestPayload<M extends VultisigRequestMethod> = {
|
|
16
|
+
method: M;
|
|
17
|
+
params: VultisigRequestParams[M];
|
|
18
|
+
};
|
|
19
|
+
export type VultisigEvmProvider = providers.ExternalProvider;
|
|
20
|
+
export type VultisigUtxoProvider = {
|
|
21
|
+
request<M extends VultisigRequestMethod>(payload: VultisigRequestPayload<M>): Promise<VultisigRequestReturn[M]>;
|
|
22
|
+
signPSBT(psbt: Uint8Array, { inputsToSign, }: {
|
|
23
|
+
inputsToSign: {
|
|
24
|
+
address: string;
|
|
25
|
+
signingIndexes: number[];
|
|
26
|
+
sigHash?: number;
|
|
27
|
+
}[];
|
|
28
|
+
}, broadcast: boolean): Promise<Uint8Array>;
|
|
29
|
+
};
|
|
30
|
+
export type VultisigSolanaProvider = providers.ExternalProvider & {
|
|
31
|
+
publicKey?: PublicKey;
|
|
32
|
+
connect(): Promise<SolanaAccount>;
|
|
33
|
+
signTransaction(transaction: VersionedTransaction): Promise<VersionedTransaction>;
|
|
34
|
+
signAndSendTransaction(transaction: VersionedTransaction): Promise<{
|
|
35
|
+
signature: TransactionSignature;
|
|
36
|
+
}>;
|
|
37
|
+
};
|
|
38
|
+
export type VultisigOfflineProvider = providers.ExternalProvider & {
|
|
39
|
+
getOfflineSigner(chainId: string): OfflineSigner;
|
|
40
|
+
};
|
|
41
|
+
export type VultisigGetVault = {
|
|
42
|
+
hexChainCode: string;
|
|
43
|
+
isFastVault: boolean;
|
|
44
|
+
name: string;
|
|
45
|
+
publicKeyEcdsa: string;
|
|
46
|
+
publicKeyEddsa: string;
|
|
47
|
+
uid: string;
|
|
48
|
+
};
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,MAAM,qBAAqB,GAAG;IAClC,YAAY,EAAE,EAAE,CAAC;IACjB,gBAAgB,EAAE,EAAE,CAAC;CACtB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAChC,gBAAgB,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACrC,CAAC;AAEF,KAAK,qBAAqB,GAAG,MAAM,qBAAqB,CAAC;AAEzD,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,qBAAqB,IAAI;IACpE,MAAM,EAAE,CAAC,CAAC;IACV,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,SAAS,CAAC,gBAAgB,CAAC;AAE7D,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,CAAC,CAAC,SAAS,qBAAqB,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;IAChH,QAAQ,CACN,IAAI,EAAE,UAAU,EAChB,EACE,YAAY,GACb,EAAE;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,MAAM,CAAC;YAChB,cAAc,EAAE,MAAM,EAAE,CAAC;YACzB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,EAAE,CAAC;KACL,EACD,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,UAAU,CAAC,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,SAAS,CAAC,gBAAgB,GAAG;IAChE,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAClC,eAAe,CAAC,WAAW,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAClF,sBAAsB,CAAC,WAAW,EAAE,oBAAoB,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,oBAAoB,CAAA;KAAE,CAAC,CAAC;CACzG,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,SAAS,CAAC,gBAAgB,GAAG;IACjE,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import * as core from "@shapeshiftoss/hdwallet-core";
|
|
2
|
+
import { Address } from "@shapeshiftoss/hdwallet-core";
|
|
3
|
+
import { VultisigEvmProvider, VultisigOfflineProvider, VultisigSolanaProvider, VultisigUtxoProvider } from "./types";
|
|
4
|
+
export declare function isVultisig(wallet: core.HDWallet): wallet is VultisigHDWallet;
|
|
5
|
+
export declare class VultisigHDWalletInfo implements core.HDWalletInfo, core.BTCWalletInfo, core.ETHWalletInfo, core.SolanaWalletInfo, core.ThorchainWalletInfo, core.CosmosWalletInfo {
|
|
6
|
+
readonly _supportsBTCInfo = false;
|
|
7
|
+
readonly _supportsETHInfo = true;
|
|
8
|
+
readonly _supportsSolanaInfo = true;
|
|
9
|
+
readonly _supportsThorchainInfo = true;
|
|
10
|
+
readonly _supportsCosmosInfo = true;
|
|
11
|
+
constructor();
|
|
12
|
+
getVendor(): string;
|
|
13
|
+
hasOnDevicePinEntry(): boolean;
|
|
14
|
+
hasOnDevicePassphrase(): boolean;
|
|
15
|
+
hasOnDeviceDisplay(): boolean;
|
|
16
|
+
hasOnDeviceRecovery(): boolean;
|
|
17
|
+
hasNativeShapeShift(srcCoin: core.Coin, dstCoin: core.Coin): boolean;
|
|
18
|
+
supportsBip44Accounts(): boolean;
|
|
19
|
+
supportsOfflineSigning(): boolean;
|
|
20
|
+
supportsBroadcast(): boolean;
|
|
21
|
+
describePath(msg: core.DescribePath): core.PathDescription;
|
|
22
|
+
/** Ethereum */
|
|
23
|
+
ethSupportsNetwork(chainId?: number): Promise<boolean>;
|
|
24
|
+
ethSupportsSecureTransfer(): Promise<boolean>;
|
|
25
|
+
ethSupportsNativeShapeShift(): boolean;
|
|
26
|
+
ethSupportsEIP1559(): Promise<boolean>;
|
|
27
|
+
ethGetAccountPaths(msg: core.ETHGetAccountPath): Array<core.ETHAccountPath>;
|
|
28
|
+
ethNextAccountPath(msg: core.ETHAccountPath): core.ETHAccountPath | undefined;
|
|
29
|
+
/** Bitcoin */
|
|
30
|
+
btcSupportsCoin(coin: core.Coin): Promise<boolean>;
|
|
31
|
+
btcSupportsScriptType(coin: string, scriptType?: core.BTCInputScriptType | undefined): Promise<boolean>;
|
|
32
|
+
btcSupportsSecureTransfer(): Promise<boolean>;
|
|
33
|
+
btcSupportsNativeShapeShift(): boolean;
|
|
34
|
+
btcGetAccountPaths(msg: core.BTCGetAccountPaths): Array<core.BTCAccountPath>;
|
|
35
|
+
btcNextAccountPath(msg: core.BTCAccountPath): core.BTCAccountPath | undefined;
|
|
36
|
+
/** Solana */
|
|
37
|
+
solanaGetAccountPaths(msg: core.SolanaGetAccountPaths): Array<core.SolanaAccountPath>;
|
|
38
|
+
solanaNextAccountPath(msg: core.SolanaAccountPath): core.SolanaAccountPath | undefined;
|
|
39
|
+
thorchainGetAccountPaths(msg: core.ThorchainGetAccountPaths): Array<core.ThorchainAccountPath>;
|
|
40
|
+
thorchainNextAccountPath(msg: core.ThorchainAccountPath): core.ThorchainAccountPath | undefined;
|
|
41
|
+
cosmosGetAccountPaths(msg: core.CosmosGetAccountPaths): Array<core.CosmosAccountPath>;
|
|
42
|
+
cosmosNextAccountPath(_msg: core.CosmosAccountPath): core.CosmosAccountPath | undefined;
|
|
43
|
+
}
|
|
44
|
+
export declare class VultisigHDWallet extends VultisigHDWalletInfo implements core.HDWallet, core.BTCWallet, core.ETHWallet, core.SolanaWallet, core.ThorchainWallet, core.CosmosWallet {
|
|
45
|
+
readonly _supportsBTC = false;
|
|
46
|
+
readonly _supportsETH = true;
|
|
47
|
+
readonly _supportsEthSwitchChain = true;
|
|
48
|
+
readonly _supportsAvalanche = true;
|
|
49
|
+
readonly _supportsOptimism = true;
|
|
50
|
+
readonly _supportsPolygon = true;
|
|
51
|
+
readonly _supportsGnosis = false;
|
|
52
|
+
readonly _supportsArbitrum = true;
|
|
53
|
+
readonly _supportsArbitrumNova = false;
|
|
54
|
+
readonly _supportsBase = true;
|
|
55
|
+
readonly _supportsBSC = true;
|
|
56
|
+
readonly _supportsSolana = true;
|
|
57
|
+
readonly _supportsThorchain = true;
|
|
58
|
+
readonly _supportsCosmos = true;
|
|
59
|
+
readonly _isVultisig = true;
|
|
60
|
+
evmProvider: VultisigEvmProvider;
|
|
61
|
+
bitcoinProvider: VultisigUtxoProvider;
|
|
62
|
+
solanaProvider: VultisigSolanaProvider;
|
|
63
|
+
thorchainProvider: VultisigOfflineProvider;
|
|
64
|
+
cosmosProvider: VultisigOfflineProvider;
|
|
65
|
+
ethAddress?: Address | null;
|
|
66
|
+
constructor(providers: {
|
|
67
|
+
evmProvider: VultisigEvmProvider;
|
|
68
|
+
bitcoinProvider: VultisigUtxoProvider;
|
|
69
|
+
solanaProvider: VultisigSolanaProvider;
|
|
70
|
+
thorchainProvider: VultisigOfflineProvider;
|
|
71
|
+
cosmosProvider: VultisigOfflineProvider;
|
|
72
|
+
});
|
|
73
|
+
transport?: core.Transport | undefined;
|
|
74
|
+
getDeviceID(): Promise<string>;
|
|
75
|
+
getFeatures(): Promise<Record<string, any>>;
|
|
76
|
+
getFirmwareVersion(): Promise<string>;
|
|
77
|
+
getModel(): Promise<string>;
|
|
78
|
+
getLabel(): Promise<string>;
|
|
79
|
+
isInitialized(): Promise<boolean>;
|
|
80
|
+
isLocked(): Promise<boolean>;
|
|
81
|
+
clearSession(): Promise<void>;
|
|
82
|
+
initialize(): Promise<void>;
|
|
83
|
+
ping(msg: core.Ping): Promise<core.Pong>;
|
|
84
|
+
sendPin(pin: string): Promise<void>;
|
|
85
|
+
sendPassphrase(passphrase: string): Promise<void>;
|
|
86
|
+
sendCharacter(charater: string): Promise<void>;
|
|
87
|
+
sendWord(word: string): Promise<void>;
|
|
88
|
+
cancel(): Promise<void>;
|
|
89
|
+
wipe(): Promise<void>;
|
|
90
|
+
reset(msg: core.ResetDevice): Promise<void>;
|
|
91
|
+
recover(msg: core.RecoverDevice): Promise<void>;
|
|
92
|
+
loadDevice(msg: core.LoadDevice): Promise<void>;
|
|
93
|
+
disconnect(): Promise<void>;
|
|
94
|
+
getPublicKeys(msg: Array<core.GetPublicKey>): Promise<Array<core.PublicKey | null>>;
|
|
95
|
+
/** Ethereum */
|
|
96
|
+
ethGetAddress(_msg: core.ETHGetAddress): Promise<core.Address | null>;
|
|
97
|
+
ethSignTx(msg: core.ETHSignTx): Promise<core.ETHSignedTx | null>;
|
|
98
|
+
ethSendTx(msg: core.ETHSignTx): Promise<core.ETHTxHash | null>;
|
|
99
|
+
ethSignMessage(msg: core.ETHSignMessage): Promise<core.ETHSignedMessage | null>;
|
|
100
|
+
ethSignTypedData(msg: core.ETHSignTypedData): Promise<core.ETHSignedTypedData | null>;
|
|
101
|
+
ethVerifyMessage(msg: core.ETHVerifyMessage): Promise<boolean | null>;
|
|
102
|
+
ethGetChainId(): Promise<number | null>;
|
|
103
|
+
ethAddChain(params: core.AddEthereumChainParameter): Promise<void>;
|
|
104
|
+
ethSwitchChain(params: core.AddEthereumChainParameter): Promise<void>;
|
|
105
|
+
/** Bitcoin */
|
|
106
|
+
btcGetAddress(msg: core.BTCGetAddress): Promise<string | null>;
|
|
107
|
+
btcSignTx(msg: core.BTCSignTx): Promise<core.BTCSignedTx | null>;
|
|
108
|
+
btcSignMessage(msg: core.BTCSignMessage): Promise<core.BTCSignedMessage | null>;
|
|
109
|
+
btcVerifyMessage(msg: core.BTCVerifyMessage): Promise<boolean | null>;
|
|
110
|
+
/** get vault */
|
|
111
|
+
getVault(): Promise<string | null>;
|
|
112
|
+
/** Solana */
|
|
113
|
+
solanaGetAddress(): Promise<string | null>;
|
|
114
|
+
solanaSignTx(msg: core.SolanaSignTx): Promise<core.SolanaSignedTx | null>;
|
|
115
|
+
solanaSendTx(msg: core.SolanaSignTx): Promise<core.SolanaTxSignature | null>;
|
|
116
|
+
/** THORChain */
|
|
117
|
+
thorchainGetAddress(): Promise<string | null>;
|
|
118
|
+
thorchainSignTx(msg: core.ThorchainSignTx): Promise<core.ThorchainSignedTx | null>;
|
|
119
|
+
/** Cosmos */
|
|
120
|
+
cosmosGetAddress(): Promise<string | null>;
|
|
121
|
+
cosmosSignTx(msg: core.CosmosSignTx): Promise<core.CosmosSignedTx | null>;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=vultisig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vultisig.d.ts","sourceRoot":"","sources":["../src/vultisig.ts"],"names":[],"mappings":"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"}
|