@shapeshiftoss/hdwallet-keepkey 1.55.3 → 1.55.4
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/dist/adapter.js +148 -93
- package/dist/adapter.js.map +1 -1
- package/dist/binance.js +135 -96
- package/dist/binance.js.map +1 -1
- package/dist/bitcoin.js +323 -257
- package/dist/bitcoin.js.map +1 -1
- package/dist/bnbencoding.js +40 -9
- package/dist/bnbencoding.js.map +1 -1
- package/dist/cosmos.js +206 -158
- package/dist/cosmos.js.map +1 -1
- package/dist/eos.js +152 -108
- package/dist/eos.js.map +1 -1
- package/dist/ethereum.js +242 -189
- package/dist/ethereum.js.map +1 -1
- package/dist/index.js +21 -5
- package/dist/index.js.map +1 -1
- package/dist/keepkey.js +582 -444
- package/dist/keepkey.js.map +1 -1
- package/dist/osmosis.js +259 -211
- package/dist/osmosis.js.map +1 -1
- package/dist/ripple.js +96 -52
- package/dist/ripple.js.map +1 -1
- package/dist/thorchain.js +162 -114
- package/dist/thorchain.js.map +1 -1
- package/dist/transport.js +278 -220
- package/dist/transport.js.map +1 -1
- package/dist/typeRegistry.js +41 -12
- package/dist/typeRegistry.js.map +1 -1
- package/dist/utils.js +37 -7
- package/dist/utils.js.map +1 -1
- package/package.json +3 -3
package/dist/ripple.js
CHANGED
|
@@ -1,67 +1,111 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.rippleGetAccountPaths = rippleGetAccountPaths;
|
|
39
|
+
exports.rippleSignTx = rippleSignTx;
|
|
40
|
+
exports.rippleGetAddress = rippleGetAddress;
|
|
41
|
+
const Messages = __importStar(require("@keepkey/device-protocol/lib/messages_pb"));
|
|
42
|
+
const RippleMessages = __importStar(require("@keepkey/device-protocol/lib/messages-ripple_pb"));
|
|
43
|
+
const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
|
|
44
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
45
|
+
function rippleGetAccountPaths(msg) {
|
|
6
46
|
return [
|
|
7
47
|
{
|
|
8
48
|
addressNList: [0x80000000 + 44, 0x80000000 + core.slip44ByCoin("Ripple"), 0x80000000 + msg.accountIdx, 0, 0],
|
|
9
49
|
},
|
|
10
50
|
];
|
|
11
51
|
}
|
|
12
|
-
|
|
13
|
-
return
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (m.
|
|
32
|
-
|
|
52
|
+
function rippleSignTx(transport, msg) {
|
|
53
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
+
return transport.lockDuring(() => __awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
const signTx = new RippleMessages.RippleSignTx();
|
|
56
|
+
signTx.setAddressNList(msg.addressNList);
|
|
57
|
+
signTx.setFee(parseInt(msg.tx.value.fee.amount[0].amount));
|
|
58
|
+
signTx.setSequence(parseInt(msg.sequence));
|
|
59
|
+
signTx.setLastLedgerSequence(parseInt(msg.lastLedgerSequence));
|
|
60
|
+
const payment = new RippleMessages.RipplePayment();
|
|
61
|
+
payment.setAmount(parseInt(msg.payment.amount));
|
|
62
|
+
payment.setDestination(msg.payment.destination);
|
|
63
|
+
if (msg.payment.destinationTag !== undefined)
|
|
64
|
+
payment.setDestinationTag(parseInt(msg.payment.destinationTag));
|
|
65
|
+
signTx.setPayment(payment);
|
|
66
|
+
const resp = yield transport.call(Messages.MessageType.MESSAGETYPE_RIPPLESIGNTX, signTx, {
|
|
67
|
+
msgTimeout: core.LONG_TIMEOUT,
|
|
68
|
+
omitLock: true,
|
|
69
|
+
});
|
|
70
|
+
for (const m of msg.tx.value.msg) {
|
|
71
|
+
if (m.type === "ripple-sdk/MsgSend") {
|
|
72
|
+
if (m.value.amount.length !== 1) {
|
|
73
|
+
throw new Error("ripple: Multiple amounts per msg not supported");
|
|
74
|
+
}
|
|
75
|
+
const denom = m.value.amount[0].denom;
|
|
76
|
+
if (denom !== "drop") {
|
|
77
|
+
throw new Error("ripple: Unsupported denomination: " + denom);
|
|
78
|
+
}
|
|
33
79
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
throw new Error("ripple: Unsupported denomination: " + denom);
|
|
80
|
+
else {
|
|
81
|
+
throw new Error(`ripple: Message ${m.type} is not yet supported`);
|
|
37
82
|
}
|
|
38
83
|
}
|
|
39
|
-
|
|
40
|
-
throw new Error(`ripple:
|
|
84
|
+
if (resp.message_enum !== Messages.MessageType.MESSAGETYPE_RIPPLESIGNEDTX) {
|
|
85
|
+
throw new Error(`ripple: unexpected response ${resp.message_type}`);
|
|
41
86
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
},
|
|
53
|
-
];
|
|
54
|
-
return signed;
|
|
87
|
+
const signedTx = resp.proto;
|
|
88
|
+
const signed = lodash_1.default.cloneDeep(msg.tx);
|
|
89
|
+
signed.value.signatures = [
|
|
90
|
+
{
|
|
91
|
+
serializedTx: signedTx.getSerializedTx_asB64(),
|
|
92
|
+
signature: signedTx.getSignature_asB64(),
|
|
93
|
+
},
|
|
94
|
+
];
|
|
95
|
+
return signed;
|
|
96
|
+
}));
|
|
55
97
|
});
|
|
56
98
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
99
|
+
function rippleGetAddress(transport, msg) {
|
|
100
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
+
const getAddr = new RippleMessages.RippleGetAddress();
|
|
102
|
+
getAddr.setAddressNList(msg.addressNList);
|
|
103
|
+
getAddr.setShowDisplay(msg.showDisplay !== false);
|
|
104
|
+
const response = yield transport.call(Messages.MessageType.MESSAGETYPE_RIPPLEGETADDRESS, getAddr, {
|
|
105
|
+
msgTimeout: core.LONG_TIMEOUT,
|
|
106
|
+
});
|
|
107
|
+
const rippleAddress = response.proto;
|
|
108
|
+
return core.mustBeDefined(rippleAddress.getAddress());
|
|
63
109
|
});
|
|
64
|
-
const rippleAddress = response.proto;
|
|
65
|
-
return core.mustBeDefined(rippleAddress.getAddress());
|
|
66
110
|
}
|
|
67
111
|
//# sourceMappingURL=ripple.js.map
|
package/dist/ripple.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ripple.js","sourceRoot":"","sources":["../src/ripple.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ripple.js","sourceRoot":"","sources":["../src/ripple.ts"],"names":[],"mappings":"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"}
|
package/dist/thorchain.js
CHANGED
|
@@ -1,132 +1,180 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.thorchainGetAccountPaths = thorchainGetAccountPaths;
|
|
39
|
+
exports.thorchainGetAddress = thorchainGetAddress;
|
|
40
|
+
exports.thorchainSignTx = thorchainSignTx;
|
|
41
|
+
const Messages = __importStar(require("@keepkey/device-protocol/lib/messages_pb"));
|
|
42
|
+
const ThorchainMessages = __importStar(require("@keepkey/device-protocol/lib/messages-thorchain_pb"));
|
|
43
|
+
const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
|
|
44
|
+
const bs58check_1 = __importDefault(require("bs58check"));
|
|
45
|
+
const p_lazy_1 = __importDefault(require("p-lazy"));
|
|
46
|
+
const protoTxBuilder = p_lazy_1.default.from(() => Promise.resolve().then(() => __importStar(require("@shapeshiftoss/proto-tx-builder"))));
|
|
47
|
+
function thorchainGetAccountPaths(msg) {
|
|
8
48
|
return [
|
|
9
49
|
{
|
|
10
50
|
addressNList: [0x80000000 + 44, 0x80000000 + core.slip44ByCoin("Thorchain"), 0x80000000 + msg.accountIdx, 0, 0],
|
|
11
51
|
},
|
|
12
52
|
];
|
|
13
53
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
54
|
+
function thorchainGetAddress(transport, msg) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
const getAddr = new ThorchainMessages.ThorchainGetAddress();
|
|
57
|
+
getAddr.setAddressNList(msg.addressNList);
|
|
58
|
+
getAddr.setShowDisplay(msg.showDisplay !== false);
|
|
59
|
+
if (msg.testnet !== undefined)
|
|
60
|
+
getAddr.setTestnet(msg.testnet);
|
|
61
|
+
const response = yield transport.call(Messages.MessageType.MESSAGETYPE_THORCHAINGETADDRESS, getAddr, {
|
|
62
|
+
msgTimeout: core.LONG_TIMEOUT,
|
|
63
|
+
});
|
|
64
|
+
const thorchainAddress = response.proto;
|
|
65
|
+
return core.mustBeDefined(thorchainAddress.getAddress());
|
|
22
66
|
});
|
|
23
|
-
const thorchainAddress = response.proto;
|
|
24
|
-
return core.mustBeDefined(thorchainAddress.getAddress());
|
|
25
67
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const pubkeyMsg = response.proto;
|
|
35
|
-
const pubkey = bs58check.decode(core.mustBeDefined(pubkeyMsg.getXpub())).slice(45);
|
|
36
|
-
return transport.lockDuring(async () => {
|
|
37
|
-
const signTx = new ThorchainMessages.ThorchainSignTx();
|
|
38
|
-
signTx.setAddressNList(msg.addressNList);
|
|
39
|
-
signTx.setAccountNumber(msg.account_number);
|
|
40
|
-
signTx.setChainId(msg.chain_id);
|
|
41
|
-
signTx.setFeeAmount(parseInt(msg.tx.fee.amount[0].amount));
|
|
42
|
-
signTx.setGas(parseInt(msg.tx.fee.gas));
|
|
43
|
-
signTx.setSequence(msg.sequence);
|
|
44
|
-
if (msg.tx.memo !== undefined)
|
|
45
|
-
signTx.setMemo(msg.tx.memo);
|
|
46
|
-
signTx.setMsgCount(1);
|
|
47
|
-
let resp = await transport.call(Messages.MessageType.MESSAGETYPE_THORCHAINSIGNTX, signTx, {
|
|
48
|
-
msgTimeout: core.LONG_TIMEOUT,
|
|
49
|
-
omitLock: true,
|
|
68
|
+
function thorchainSignTx(transport, msg) {
|
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
const address = yield thorchainGetAddress(transport, { addressNList: msg.addressNList });
|
|
71
|
+
const getPublicKeyMsg = new Messages.GetPublicKey();
|
|
72
|
+
getPublicKeyMsg.setAddressNList(msg.addressNList);
|
|
73
|
+
getPublicKeyMsg.setEcdsaCurveName("secp256k1");
|
|
74
|
+
const response = yield transport.call(Messages.MessageType.MESSAGETYPE_GETPUBLICKEY, getPublicKeyMsg, {
|
|
75
|
+
msgTimeout: core.DEFAULT_TIMEOUT,
|
|
50
76
|
});
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
77
|
+
const pubkeyMsg = response.proto;
|
|
78
|
+
const pubkey = bs58check_1.default.decode(core.mustBeDefined(pubkeyMsg.getXpub())).slice(45);
|
|
79
|
+
return transport.lockDuring(() => __awaiter(this, void 0, void 0, function* () {
|
|
80
|
+
const signTx = new ThorchainMessages.ThorchainSignTx();
|
|
81
|
+
signTx.setAddressNList(msg.addressNList);
|
|
82
|
+
signTx.setAccountNumber(msg.account_number);
|
|
83
|
+
signTx.setChainId(msg.chain_id);
|
|
84
|
+
signTx.setFeeAmount(parseInt(msg.tx.fee.amount[0].amount));
|
|
85
|
+
signTx.setGas(parseInt(msg.tx.fee.gas));
|
|
86
|
+
signTx.setSequence(msg.sequence);
|
|
87
|
+
if (msg.tx.memo !== undefined)
|
|
88
|
+
signTx.setMemo(msg.tx.memo);
|
|
89
|
+
signTx.setMsgCount(1);
|
|
90
|
+
let resp = yield transport.call(Messages.MessageType.MESSAGETYPE_THORCHAINSIGNTX, signTx, {
|
|
91
|
+
msgTimeout: core.LONG_TIMEOUT,
|
|
92
|
+
omitLock: true,
|
|
93
|
+
});
|
|
94
|
+
for (const m of msg.tx.msg) {
|
|
95
|
+
if (resp.message_enum !== Messages.MessageType.MESSAGETYPE_THORCHAINMSGREQUEST) {
|
|
96
|
+
throw new Error(`THORChain: unexpected response ${resp.message_type}`);
|
|
59
97
|
}
|
|
60
|
-
|
|
61
|
-
if (
|
|
62
|
-
|
|
98
|
+
let ack;
|
|
99
|
+
if (m.type === "thorchain/MsgSend") {
|
|
100
|
+
if (m.value.amount.length !== 1) {
|
|
101
|
+
throw new Error("THORChain: Multiple amounts per MsgSend not supported");
|
|
102
|
+
}
|
|
103
|
+
const denom = m.value.amount[0].denom;
|
|
104
|
+
if (denom !== "rune") {
|
|
105
|
+
throw new Error("THORChain: Unsupported denomination: " + denom);
|
|
106
|
+
}
|
|
107
|
+
const send = new ThorchainMessages.ThorchainMsgSend();
|
|
108
|
+
send.setFromAddress(m.value.from_address);
|
|
109
|
+
send.setToAddress(m.value.to_address);
|
|
110
|
+
send.setAmount(m.value.amount[0].amount);
|
|
111
|
+
ack = new ThorchainMessages.ThorchainMsgAck();
|
|
112
|
+
ack.setSend(send);
|
|
63
113
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
114
|
+
else if (m.type === "thorchain/MsgDeposit") {
|
|
115
|
+
if (m.value.coins.length !== 1) {
|
|
116
|
+
throw new Error("THORChain: Multiple amounts per MsgDeposit not supported");
|
|
117
|
+
}
|
|
118
|
+
const coinAsset = m.value.coins[0].asset;
|
|
119
|
+
if (coinAsset !== "THOR.RUNE") {
|
|
120
|
+
throw new Error("THORChain: Unsupported coin asset: " + coinAsset);
|
|
121
|
+
}
|
|
122
|
+
const deposit = new ThorchainMessages.ThorchainMsgDeposit();
|
|
123
|
+
deposit.setAsset(m.value.coins[0].asset);
|
|
124
|
+
deposit.setAmount(m.value.coins[0].amount);
|
|
125
|
+
deposit.setMemo(m.value.memo);
|
|
126
|
+
deposit.setSigner(m.value.signer);
|
|
127
|
+
ack = new ThorchainMessages.ThorchainMsgAck();
|
|
128
|
+
ack.setDeposit(deposit);
|
|
74
129
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
throw new Error("THORChain: Unsupported coin asset: " + coinAsset);
|
|
130
|
+
else {
|
|
131
|
+
throw new Error(`THORChain: Message ${m.type} is not yet supported`);
|
|
78
132
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
deposit.setSigner(m.value.signer);
|
|
84
|
-
ack = new ThorchainMessages.ThorchainMsgAck();
|
|
85
|
-
ack.setDeposit(deposit);
|
|
133
|
+
resp = yield transport.call(Messages.MessageType.MESSAGETYPE_THORCHAINMSGACK, ack, {
|
|
134
|
+
msgTimeout: core.LONG_TIMEOUT,
|
|
135
|
+
omitLock: true,
|
|
136
|
+
});
|
|
86
137
|
}
|
|
87
|
-
|
|
88
|
-
throw new Error(`THORChain:
|
|
138
|
+
if (resp.message_enum !== Messages.MessageType.MESSAGETYPE_THORCHAINSIGNEDTX) {
|
|
139
|
+
throw new Error(`THORChain: unexpected response ${resp.message_type}`);
|
|
89
140
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
chainId: msg.chain_id,
|
|
128
|
-
};
|
|
129
|
-
return (await protoTxBuilder).sign(address, msg.tx, offlineSigner, signerData, "thor");
|
|
141
|
+
const signedTx = resp.proto;
|
|
142
|
+
const offlineSigner = {
|
|
143
|
+
getAccounts() {
|
|
144
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
145
|
+
return [
|
|
146
|
+
{
|
|
147
|
+
address,
|
|
148
|
+
algo: "secp256k1",
|
|
149
|
+
pubkey,
|
|
150
|
+
},
|
|
151
|
+
];
|
|
152
|
+
});
|
|
153
|
+
},
|
|
154
|
+
signAmino(signerAddress, signDoc) {
|
|
155
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
156
|
+
if (signerAddress !== address)
|
|
157
|
+
throw new Error("expected signerAddress to match address");
|
|
158
|
+
return {
|
|
159
|
+
signed: signDoc,
|
|
160
|
+
signature: {
|
|
161
|
+
pub_key: {
|
|
162
|
+
type: "tendermint/PubKeySecp256k1",
|
|
163
|
+
value: signedTx.getPublicKey_asB64(),
|
|
164
|
+
},
|
|
165
|
+
signature: signedTx.getSignature_asB64(),
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
});
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
const signerData = {
|
|
172
|
+
sequence: Number(msg.sequence),
|
|
173
|
+
accountNumber: Number(msg.account_number),
|
|
174
|
+
chainId: msg.chain_id,
|
|
175
|
+
};
|
|
176
|
+
return (yield protoTxBuilder).sign(address, msg.tx, offlineSigner, signerData, "thor");
|
|
177
|
+
}));
|
|
130
178
|
});
|
|
131
179
|
}
|
|
132
180
|
//# sourceMappingURL=thorchain.js.map
|
package/dist/thorchain.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thorchain.js","sourceRoot":"","sources":["../src/thorchain.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"thorchain.js","sourceRoot":"","sources":["../src/thorchain.ts"],"names":[],"mappings":"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"}
|