@shapeshiftoss/hdwallet-ledger 1.55.4-alpha.1 → 1.55.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/dist/cosmos.js CHANGED
@@ -1,22 +1,61 @@
1
- import { Secp256k1Signature } from "@cosmjs/crypto";
2
- import * as core from "@shapeshiftoss/hdwallet-core";
3
- import { fromByteArray } from "base64-js";
4
- import PLazy from "p-lazy";
5
- import { handleError, stringifyKeysInOrder } from "./utils";
6
- const protoTxBuilder = PLazy.from(() => import("@shapeshiftoss/proto-tx-builder"));
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.cosmosSignTx = exports.cosmosGetAddress = void 0;
39
+ const crypto_1 = require("@cosmjs/crypto");
40
+ const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
41
+ const base64_js_1 = require("base64-js");
42
+ const p_lazy_1 = __importDefault(require("p-lazy"));
43
+ const utils_1 = require("./utils");
44
+ const protoTxBuilder = p_lazy_1.default.from(() => Promise.resolve().then(() => __importStar(require("@shapeshiftoss/proto-tx-builder"))));
7
45
  const ATOM_CHAIN = "cosmoshub-4";
8
- export const cosmosGetAddress = async (transport, msg) => {
46
+ const cosmosGetAddress = (transport, msg) => __awaiter(void 0, void 0, void 0, function* () {
9
47
  const bip32path = core.addressNListToBIP32(msg.addressNList);
10
- const res = await transport.call("Cosmos", "getAddress", bip32path, "cosmos");
11
- handleError(res, transport, "Unable to obtain address from device.");
48
+ const res = yield transport.call("Cosmos", "getAddress", bip32path, "cosmos");
49
+ (0, utils_1.handleError)(res, transport, "Unable to obtain address from device.");
12
50
  return res.payload.address;
13
- };
14
- export const cosmosSignTx = async (transport, msg) => {
51
+ });
52
+ exports.cosmosGetAddress = cosmosGetAddress;
53
+ const cosmosSignTx = (transport, msg) => __awaiter(void 0, void 0, void 0, function* () {
15
54
  const bip32path = core.addressNListToBIP32(msg.addressNList);
16
- const getAddressResponse = await transport.call("Cosmos", "getAddress", bip32path, "cosmos");
17
- handleError(getAddressResponse, transport, "Unable to obtain address and public key from device.");
55
+ const getAddressResponse = yield transport.call("Cosmos", "getAddress", bip32path, "cosmos");
56
+ (0, utils_1.handleError)(getAddressResponse, transport, "Unable to obtain address and public key from device.");
18
57
  const { address, publicKey } = getAddressResponse.payload;
19
- const unsignedTx = stringifyKeysInOrder({
58
+ const unsignedTx = (0, utils_1.stringifyKeysInOrder)({
20
59
  account_number: msg.account_number,
21
60
  chain_id: ATOM_CHAIN,
22
61
  fee: { amount: msg.tx.fee.amount, gas: msg.tx.fee.gas },
@@ -24,34 +63,38 @@ export const cosmosSignTx = async (transport, msg) => {
24
63
  msgs: msg.tx.msg,
25
64
  sequence: msg.sequence,
26
65
  });
27
- const signResponse = await transport.call("Cosmos", "sign", bip32path, unsignedTx);
28
- handleError(signResponse, transport, "Unable to obtain signature from device.");
66
+ const signResponse = yield transport.call("Cosmos", "sign", bip32path, unsignedTx);
67
+ (0, utils_1.handleError)(signResponse, transport, "Unable to obtain signature from device.");
29
68
  const signature = signResponse.payload.signature;
30
69
  if (!signature)
31
70
  throw new Error("No signature returned from device");
32
71
  const offlineSigner = {
33
- async getAccounts() {
34
- return [
35
- {
36
- address,
37
- algo: "secp256k1",
38
- pubkey: Buffer.from(publicKey, "hex"),
39
- },
40
- ];
72
+ getAccounts() {
73
+ return __awaiter(this, void 0, void 0, function* () {
74
+ return [
75
+ {
76
+ address,
77
+ algo: "secp256k1",
78
+ pubkey: Buffer.from(publicKey, "hex"),
79
+ },
80
+ ];
81
+ });
41
82
  },
42
- async signAmino(signerAddress, signDoc) {
43
- if (signerAddress !== address)
44
- throw new Error("expected signerAddress to match address");
45
- return {
46
- signed: signDoc,
47
- signature: {
48
- pub_key: {
49
- type: "tendermint/PubKeySecp256k1",
50
- value: publicKey,
83
+ signAmino(signerAddress, signDoc) {
84
+ return __awaiter(this, void 0, void 0, function* () {
85
+ if (signerAddress !== address)
86
+ throw new Error("expected signerAddress to match address");
87
+ return {
88
+ signed: signDoc,
89
+ signature: {
90
+ pub_key: {
91
+ type: "tendermint/PubKeySecp256k1",
92
+ value: publicKey,
93
+ },
94
+ signature: (0, base64_js_1.fromByteArray)(crypto_1.Secp256k1Signature.fromDer(signature).toFixedLength()),
51
95
  },
52
- signature: fromByteArray(Secp256k1Signature.fromDer(signature).toFixedLength()),
53
- },
54
- };
96
+ };
97
+ });
55
98
  },
56
99
  };
57
100
  const signerData = {
@@ -59,6 +102,7 @@ export const cosmosSignTx = async (transport, msg) => {
59
102
  accountNumber: Number(msg.account_number),
60
103
  chainId: msg.chain_id,
61
104
  };
62
- return (await protoTxBuilder).sign(address, msg.tx, offlineSigner, signerData, "cosmos");
63
- };
105
+ return (yield protoTxBuilder).sign(address, msg.tx, offlineSigner, signerData, "cosmos");
106
+ });
107
+ exports.cosmosSignTx = cosmosSignTx;
64
108
  //# sourceMappingURL=cosmos.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../src/cosmos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../src/cosmos.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
+ "use strict";
1
2
  // Taken from https://github.com/LedgerHQ/ledgerjs/blob/master/packages/cryptoassets/src/currencies.ts#L299
2
- export const currencies = {
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.currencies = void 0;
5
+ exports.currencies = {
3
6
  Bitcoin: {
4
7
  name: "Bitcoin",
5
8
  xpubVersion: 0x0488b21e,
@@ -1 +1 @@
1
- {"version":3,"file":"currencies.js","sourceRoot":"","sources":["../src/currencies.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAI3G,MAAM,CAAC,MAAM,UAAU,GAA6B;IAClD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,UAAU;KACxB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,UAAU;KACxB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,UAAU;KACxB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,UAAU;KACxB;CACF,CAAC"}
1
+ {"version":3,"file":"currencies.js","sourceRoot":"","sources":["../src/currencies.ts"],"names":[],"mappings":";AAAA,2GAA2G;;;AAI9F,QAAA,UAAU,GAA6B;IAClD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,UAAU;KACxB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,UAAU;KACxB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,UAAU;KACxB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,UAAU;KACxB;CACF,CAAC"}
package/dist/ethereum.js CHANGED
@@ -1,104 +1,157 @@
1
- import Common from "@ethereumjs/common";
2
- import { Transaction } from "@ethereumjs/tx";
3
- import * as sigUtil from "@metamask/eth-sig-util";
4
- import * as core from "@shapeshiftoss/hdwallet-core";
5
- import EthereumTx from "ethereumjs-tx";
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.ethSupportsNetwork = ethSupportsNetwork;
39
+ exports.ethGetAddress = ethGetAddress;
40
+ exports.ethGetPublicKeys = ethGetPublicKeys;
41
+ exports.ethSignTx = ethSignTx;
42
+ exports.ethSupportsSecureTransfer = ethSupportsSecureTransfer;
43
+ exports.ethSupportsNativeShapeShift = ethSupportsNativeShapeShift;
44
+ exports.ethSupportsEIP1559 = ethSupportsEIP1559;
45
+ exports.ethGetAccountPaths = ethGetAccountPaths;
46
+ exports.ethSignMessage = ethSignMessage;
47
+ exports.ethSignTypedData = ethSignTypedData;
48
+ exports.ethVerifyMessage = ethVerifyMessage;
49
+ const common_1 = __importDefault(require("@ethereumjs/common"));
50
+ const tx_1 = require("@ethereumjs/tx");
51
+ const sigUtil = __importStar(require("@metamask/eth-sig-util"));
52
+ const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
53
+ const ethereumjs_tx_1 = __importDefault(require("ethereumjs-tx"));
6
54
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
7
55
  // @ts-ignore
8
56
  // TODO: fix ts-ignore
9
- import * as ethereumUtil from "ethereumjs-util";
10
- import { arrayify, isBytes, isHexString, joinSignature } from "ethers/lib/utils";
11
- import { compressPublicKey, createXpub, handleError, networksUtil } from "./utils";
12
- export async function ethSupportsNetwork(chain_id) {
13
- return chain_id === 1;
57
+ const ethereumUtil = __importStar(require("ethereumjs-util"));
58
+ const utils_1 = require("ethers/lib/utils");
59
+ const utils_2 = require("./utils");
60
+ function ethSupportsNetwork(chain_id) {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ return chain_id === 1;
63
+ });
14
64
  }
15
- export async function ethGetAddress(transport, msg) {
16
- const bip32path = core.addressNListToBIP32(msg.addressNList);
17
- const res = await transport.call("Eth", "getAddress", bip32path, !!msg.showDisplay);
18
- handleError(res, transport, "Unable to obtain ETH address from device.");
19
- return res.payload.address;
65
+ function ethGetAddress(transport, msg) {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ const bip32path = core.addressNListToBIP32(msg.addressNList);
68
+ const res = yield transport.call("Eth", "getAddress", bip32path, !!msg.showDisplay);
69
+ (0, utils_2.handleError)(res, transport, "Unable to obtain ETH address from device.");
70
+ return res.payload.address;
71
+ });
20
72
  }
21
73
  // Adapted from https://github.com/LedgerHQ/ledger-wallet-webtool
22
- export async function ethGetPublicKeys(transport, msg) {
23
- const xpubs = [];
24
- for (const getPublicKey of msg) {
25
- const { addressNList, coin } = getPublicKey;
26
- let { scriptType } = getPublicKey;
27
- if (!scriptType)
28
- scriptType = core.BTCInputScriptType.SpendAddress;
29
- // Only get public keys for ETH account paths
30
- if (!addressNList.includes(0x80000000 + 44, 0) || !addressNList.includes(0x80000000 + 60, 1)) {
31
- xpubs.push(null);
32
- continue;
74
+ function ethGetPublicKeys(transport, msg) {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ const xpubs = [];
77
+ for (const getPublicKey of msg) {
78
+ const { addressNList, coin } = getPublicKey;
79
+ let { scriptType } = getPublicKey;
80
+ if (!scriptType)
81
+ scriptType = core.BTCInputScriptType.SpendAddress;
82
+ // Only get public keys for ETH account paths
83
+ if (!addressNList.includes(0x80000000 + 44, 0) || !addressNList.includes(0x80000000 + 60, 1)) {
84
+ xpubs.push(null);
85
+ continue;
86
+ }
87
+ const parentBip32path = core.addressNListToBIP32(addressNList.slice(0, -1)).substring(2); // i.e. "44'/0'"
88
+ const bip32path = core.addressNListToBIP32(addressNList).substring(2); // i.e 44'/0'/0'
89
+ const res1 = yield transport.call("Eth", "getAddress", parentBip32path, /* display */ false, /* chain code */ true);
90
+ (0, utils_2.handleError)(res1, transport, "Unable to obtain public key from device.");
91
+ const { payload: { publicKey: parentPublicKeyHex }, } = res1;
92
+ const parentPublicKey = (0, utils_2.compressPublicKey)(Buffer.from(parentPublicKeyHex, "hex"));
93
+ const parentFingerprint = new DataView(ethereumUtil.ripemd160(ethereumUtil.sha256(parentPublicKey), false).buffer).getUint32(0);
94
+ const res2 = yield transport.call("Eth", "getAddress", bip32path, /* display */ false, /* chain code */ true);
95
+ (0, utils_2.handleError)(res2, transport, "Unable to obtain public key from device.");
96
+ const { payload: { publicKey: publicKeyHex, chainCode: chainCodeHex }, } = res2;
97
+ const publicKey = (0, utils_2.compressPublicKey)(Buffer.from(publicKeyHex, "hex"));
98
+ const chainCode = Buffer.from(core.mustBeDefined(chainCodeHex), "hex");
99
+ const coinDetails = utils_2.networksUtil[core.mustBeDefined(core.slip44ByCoin(coin))];
100
+ const childNum = addressNList[addressNList.length - 1];
101
+ const networkMagic = coinDetails.bitcoinjs.bip32.public[scriptType];
102
+ if (networkMagic === undefined)
103
+ throw new Error(`scriptType ${scriptType} not supported`);
104
+ xpubs.push({
105
+ xpub: (0, utils_2.createXpub)(addressNList.length, parentFingerprint, childNum, chainCode, publicKey, networkMagic),
106
+ });
33
107
  }
34
- const parentBip32path = core.addressNListToBIP32(addressNList.slice(0, -1)).substring(2); // i.e. "44'/0'"
35
- const bip32path = core.addressNListToBIP32(addressNList).substring(2); // i.e 44'/0'/0'
36
- const res1 = await transport.call("Eth", "getAddress", parentBip32path, /* display */ false, /* chain code */ true);
37
- handleError(res1, transport, "Unable to obtain public key from device.");
38
- const { payload: { publicKey: parentPublicKeyHex }, } = res1;
39
- const parentPublicKey = compressPublicKey(Buffer.from(parentPublicKeyHex, "hex"));
40
- const parentFingerprint = new DataView(ethereumUtil.ripemd160(ethereumUtil.sha256(parentPublicKey), false).buffer).getUint32(0);
41
- const res2 = await transport.call("Eth", "getAddress", bip32path, /* display */ false, /* chain code */ true);
42
- handleError(res2, transport, "Unable to obtain public key from device.");
43
- const { payload: { publicKey: publicKeyHex, chainCode: chainCodeHex }, } = res2;
44
- const publicKey = compressPublicKey(Buffer.from(publicKeyHex, "hex"));
45
- const chainCode = Buffer.from(core.mustBeDefined(chainCodeHex), "hex");
46
- const coinDetails = networksUtil[core.mustBeDefined(core.slip44ByCoin(coin))];
47
- const childNum = addressNList[addressNList.length - 1];
48
- const networkMagic = coinDetails.bitcoinjs.bip32.public[scriptType];
49
- if (networkMagic === undefined)
50
- throw new Error(`scriptType ${scriptType} not supported`);
51
- xpubs.push({
52
- xpub: createXpub(addressNList.length, parentFingerprint, childNum, chainCode, publicKey, networkMagic),
53
- });
54
- }
55
- return xpubs;
108
+ return xpubs;
109
+ });
56
110
  }
57
- export async function ethSignTx(transport, msg) {
58
- const bip32path = core.addressNListToBIP32(msg.addressNList);
59
- const common = Common.custom({ chainId: msg.chainId });
60
- const txParams = {
61
- to: msg.to,
62
- value: msg.value,
63
- data: msg.data,
64
- chainId: msg.chainId,
65
- nonce: msg.nonce,
66
- gasLimit: msg.gasLimit,
67
- gasPrice: msg.gasPrice,
68
- v: "0x" + msg.chainId.toString(16).padStart(2, "0"),
69
- r: "0x00",
70
- s: "0x00",
71
- };
72
- const utx = new EthereumTx(txParams);
73
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
74
- // @ts-ignore transport.call is drunk, there *is* a third argument to eth.signTransaction
75
- // see https://github.com/LedgerHQ/ledgerjs/blob/master/packages/hw-app-eth/README.md#parameters-2
76
- const res = await transport.call("Eth", "signTransaction", bip32path, utx.serialize().toString("hex"), null);
77
- handleError(res, transport, "Could not sign ETH tx with Ledger");
78
- const { v, r, s } = res.payload;
79
- const tx = Transaction.fromTxData({
80
- ...txParams,
81
- v: "0x" + v,
82
- r: "0x" + r,
83
- s: "0x" + s,
84
- }, { common });
85
- return {
86
- v: parseInt(v, 16),
87
- r: "0x" + r,
88
- s: "0x" + s,
89
- serialized: "0x" + core.toHexString(tx.serialize()),
90
- };
111
+ function ethSignTx(transport, msg) {
112
+ return __awaiter(this, void 0, void 0, function* () {
113
+ const bip32path = core.addressNListToBIP32(msg.addressNList);
114
+ const common = common_1.default.custom({ chainId: msg.chainId });
115
+ const txParams = {
116
+ to: msg.to,
117
+ value: msg.value,
118
+ data: msg.data,
119
+ chainId: msg.chainId,
120
+ nonce: msg.nonce,
121
+ gasLimit: msg.gasLimit,
122
+ gasPrice: msg.gasPrice,
123
+ v: "0x" + msg.chainId.toString(16).padStart(2, "0"),
124
+ r: "0x00",
125
+ s: "0x00",
126
+ };
127
+ const utx = new ethereumjs_tx_1.default(txParams);
128
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
129
+ // @ts-ignore transport.call is drunk, there *is* a third argument to eth.signTransaction
130
+ // see https://github.com/LedgerHQ/ledgerjs/blob/master/packages/hw-app-eth/README.md#parameters-2
131
+ const res = yield transport.call("Eth", "signTransaction", bip32path, utx.serialize().toString("hex"), null);
132
+ (0, utils_2.handleError)(res, transport, "Could not sign ETH tx with Ledger");
133
+ const { v, r, s } = res.payload;
134
+ const tx = tx_1.Transaction.fromTxData(Object.assign(Object.assign({}, txParams), { v: "0x" + v, r: "0x" + r, s: "0x" + s }), { common });
135
+ return {
136
+ v: parseInt(v, 16),
137
+ r: "0x" + r,
138
+ s: "0x" + s,
139
+ serialized: "0x" + core.toHexString(tx.serialize()),
140
+ };
141
+ });
91
142
  }
92
- export async function ethSupportsSecureTransfer() {
93
- return false;
143
+ function ethSupportsSecureTransfer() {
144
+ return __awaiter(this, void 0, void 0, function* () {
145
+ return false;
146
+ });
94
147
  }
95
- export function ethSupportsNativeShapeShift() {
148
+ function ethSupportsNativeShapeShift() {
96
149
  return false;
97
150
  }
98
- export function ethSupportsEIP1559() {
151
+ function ethSupportsEIP1559() {
99
152
  return false;
100
153
  }
101
- export function ethGetAccountPaths(msg) {
154
+ function ethGetAccountPaths(msg) {
102
155
  const slip44 = core.slip44ByCoin(msg.coin);
103
156
  if (slip44 === undefined)
104
157
  return [];
@@ -117,65 +170,73 @@ export function ethGetAccountPaths(msg) {
117
170
  },
118
171
  ];
119
172
  }
120
- export async function ethSignMessage(transport, msg) {
121
- const bip32path = core.addressNListToBIP32(msg.addressNList);
122
- if (!isHexString(msg.message))
123
- throw new Error("data is not an hex string");
124
- // Ledger's inner implementation does a Buffer.from(messageHex, "hex").length on our message
125
- // However, Buffer.from method with the "hex" encoding expects a valid hexadecimal string without the 0x prefix
126
- // so we need to strip it in case it's present
127
- const sanitizedMessageHex = msg.message.startsWith("0x") ? msg.message.slice(2) : msg.message;
128
- const res = await transport.call("Eth", "signPersonalMessage", bip32path, sanitizedMessageHex);
129
- handleError(res, transport, "Could not sign ETH message with Ledger");
130
- let { v } = res.payload;
131
- const { r, s } = res.payload;
132
- v = v - 27;
133
- const vStr = v.toString(16).padStart(2, "0");
134
- const addressRes = await transport.call("Eth", "getAddress", bip32path, false);
135
- handleError(addressRes, transport, "Unable to obtain ETH address from Ledger.");
136
- return {
137
- address: addressRes.payload.address,
138
- signature: "0x" + r + s + vStr,
139
- };
140
- }
141
- export async function ethSignTypedData(transport, msg) {
142
- const bip32path = core.addressNListToBIP32(msg.addressNList);
143
- if (!("EIP712Domain" in msg.typedData.types))
144
- throw new Error("msg.typedData missing EIP712Domain");
145
- const typedData = msg.typedData;
146
- const { types, primaryType, message } = sigUtil.TypedDataUtils.sanitizeData(typedData);
147
- const domainSeparatorHex = sigUtil.TypedDataUtils.eip712DomainHash(typedData, sigUtil.SignTypedDataVersion.V4).toString("hex");
148
- const hashStructMessageHex = sigUtil.TypedDataUtils.hashStruct(primaryType, message, types, sigUtil.SignTypedDataVersion.V4).toString("hex");
149
- // The old Ledger Nano S (not S+) doesn't support signEIP712Message, so we have to fallback to signEIP712HashedMessage only if it fails
150
- // https://github.com/LedgerHQ/ledger-live/blob/1de4de022b4e3abc02fcb823ae6ef1f9a64adba2/libs/ledgerjs/packages/hw-app-eth/README.md#signeip712message
151
- const res = await transport.call("Eth", "signEIP712Message", bip32path, msg.typedData).catch((e) => {
152
- console.error(e);
153
- return transport.call("Eth", "signEIP712HashedMessage", bip32path, domainSeparatorHex, hashStructMessageHex);
173
+ function ethSignMessage(transport, msg) {
174
+ return __awaiter(this, void 0, void 0, function* () {
175
+ const bip32path = core.addressNListToBIP32(msg.addressNList);
176
+ if (!(0, utils_1.isHexString)(msg.message))
177
+ throw new Error("data is not an hex string");
178
+ // Ledger's inner implementation does a Buffer.from(messageHex, "hex").length on our message
179
+ // However, Buffer.from method with the "hex" encoding expects a valid hexadecimal string without the 0x prefix
180
+ // so we need to strip it in case it's present
181
+ const sanitizedMessageHex = msg.message.startsWith("0x") ? msg.message.slice(2) : msg.message;
182
+ const res = yield transport.call("Eth", "signPersonalMessage", bip32path, sanitizedMessageHex);
183
+ (0, utils_2.handleError)(res, transport, "Could not sign ETH message with Ledger");
184
+ let { v } = res.payload;
185
+ const { r, s } = res.payload;
186
+ v = v - 27;
187
+ const vStr = v.toString(16).padStart(2, "0");
188
+ const addressRes = yield transport.call("Eth", "getAddress", bip32path, false);
189
+ (0, utils_2.handleError)(addressRes, transport, "Unable to obtain ETH address from Ledger.");
190
+ return {
191
+ address: addressRes.payload.address,
192
+ signature: "0x" + r + s + vStr,
193
+ };
154
194
  });
155
- handleError(res, transport, "Could not sign typed data with Ledger");
156
- const { r, s, v } = res.payload;
157
- const signature = joinSignature({
158
- r: `0x${r}`,
159
- s: `0x${s}`,
160
- v: typeof v === "string" ? parseInt(v, 16) : v,
195
+ }
196
+ function ethSignTypedData(transport, msg) {
197
+ return __awaiter(this, void 0, void 0, function* () {
198
+ const bip32path = core.addressNListToBIP32(msg.addressNList);
199
+ if (!("EIP712Domain" in msg.typedData.types))
200
+ throw new Error("msg.typedData missing EIP712Domain");
201
+ const res = yield (() => __awaiter(this, void 0, void 0, function* () {
202
+ const _res = yield transport.call("Eth", "signEIP712Message", bip32path, msg.typedData);
203
+ if (_res.success === true)
204
+ return _res;
205
+ const typedData = msg.typedData;
206
+ const { types, primaryType, message } = sigUtil.TypedDataUtils.sanitizeData(typedData);
207
+ const domainSeparatorHex = sigUtil.TypedDataUtils.eip712DomainHash(typedData, sigUtil.SignTypedDataVersion.V4).toString("hex");
208
+ const hashStructMessageHex = sigUtil.TypedDataUtils.hashStruct(primaryType, message, types, sigUtil.SignTypedDataVersion.V4).toString("hex");
209
+ // The old Ledger Nano S (not S+) doesn't support signEIP712Message, so we have to fallback to signEIP712HashedMessage
210
+ // https://github.com/LedgerHQ/ledger-live/blob/1de4de022b4e3abc02fcb823ae6ef1f9a64adba2/libs/ledgerjs/packages/hw-app-eth/README.md#signeip712message
211
+ return transport.call("Eth", "signEIP712HashedMessage", bip32path, domainSeparatorHex, hashStructMessageHex);
212
+ }))();
213
+ (0, utils_2.handleError)(res, transport, "Could not sign typed data with Ledger");
214
+ const { r, s, v } = res.payload;
215
+ const signature = (0, utils_1.joinSignature)({
216
+ r: `0x${r}`,
217
+ s: `0x${s}`,
218
+ v: typeof v === "string" ? parseInt(v, 16) : v,
219
+ });
220
+ const addressRes = yield transport.call("Eth", "getAddress", bip32path, false);
221
+ (0, utils_2.handleError)(addressRes, transport, "Unable to obtain ETH address from Ledger.");
222
+ return {
223
+ address: addressRes.payload.address,
224
+ signature,
225
+ };
161
226
  });
162
- const addressRes = await transport.call("Eth", "getAddress", bip32path, false);
163
- handleError(addressRes, transport, "Unable to obtain ETH address from Ledger.");
164
- return {
165
- address: addressRes.payload.address,
166
- signature,
167
- };
168
227
  }
169
228
  // Adapted from https://github.com/kvhnuke/etherwallet/blob/2a5bc0db1c65906b14d8c33ce9101788c70d3774/app/scripts/controllers/signMsgCtrl.js#L118
170
- export async function ethVerifyMessage(msg) {
171
- const sigb = Buffer.from(core.stripHexPrefixAndLower(msg.signature), "hex");
172
- if (sigb.length !== 65) {
173
- return false;
174
- }
175
- sigb[64] = sigb[64] === 0 || sigb[64] === 1 ? sigb[64] + 27 : sigb[64];
176
- const buffer = isBytes(msg.message) ? Buffer.from(arrayify(msg.message)) : Buffer.from(msg.message);
177
- const hash = ethereumUtil.hashPersonalMessage(buffer);
178
- const pubKey = ethereumUtil.ecrecover(hash, sigb[64], sigb.slice(0, 32), sigb.slice(32, 64));
179
- return core.stripHexPrefixAndLower(msg.address) === ethereumUtil.pubToAddress(pubKey).toString("hex");
229
+ function ethVerifyMessage(msg) {
230
+ return __awaiter(this, void 0, void 0, function* () {
231
+ const sigb = Buffer.from(core.stripHexPrefixAndLower(msg.signature), "hex");
232
+ if (sigb.length !== 65) {
233
+ return false;
234
+ }
235
+ sigb[64] = sigb[64] === 0 || sigb[64] === 1 ? sigb[64] + 27 : sigb[64];
236
+ const buffer = (0, utils_1.isBytes)(msg.message) ? Buffer.from((0, utils_1.arrayify)(msg.message)) : Buffer.from(msg.message);
237
+ const hash = ethereumUtil.hashPersonalMessage(buffer);
238
+ const pubKey = ethereumUtil.ecrecover(hash, sigb[64], sigb.slice(0, 32), sigb.slice(32, 64));
239
+ return core.stripHexPrefixAndLower(msg.address) === ethereumUtil.pubToAddress(pubKey).toString("hex");
240
+ });
180
241
  }
181
242
  //# sourceMappingURL=ethereum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ethereum.js","sourceRoot":"","sources":["../src/ethereum.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AACrD,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,6DAA6D;AAC7D,aAAa;AACb,sBAAsB;AACtB,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjF,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAgB;IACvD,OAAO,QAAQ,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAA0B,EAAE,GAAuB;IACrF,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7D,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACpF,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,2CAA2C,CAAC,CAAC;IAEzE,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;AAC7B,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,SAA0B,EAC1B,GAA6B;IAE7B,MAAM,KAAK,GAAG,EAAE,CAAC;IAEjB,KAAK,MAAM,YAAY,IAAI,GAAG,EAAE,CAAC;QAC/B,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC;QAC5C,IAAI,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;QAElC,IAAI,CAAC,UAAU;YAAE,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;QAEnE,6CAA6C;QAC7C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;YAC7F,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QAED,MAAM,eAAe,GAAW,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB;QAClH,MAAM,SAAS,GAAW,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB;QAE/F,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACpH,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,0CAA0C,CAAC,CAAC;QAEzE,MAAM,EACJ,OAAO,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAC3C,GAAG,IAAI,CAAC;QACT,MAAM,eAAe,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC;QAClF,MAAM,iBAAiB,GAAG,IAAI,QAAQ,CACpC,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAC3E,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACf,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9G,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,0CAA0C,CAAC,CAAC;QAEzE,MAAM,EACJ,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,GAC9D,GAAG,IAAI,CAAC;QACT,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;QAEvE,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,QAAQ,GAAW,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpE,IAAI,YAAY,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,UAAU,gBAAgB,CAAC,CAAC;QAE1F,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC;SACvG,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,SAA0B,EAAE,GAAmB;IAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG;QACf,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QACnD,CAAC,EAAE,MAAM;QACT,CAAC,EAAE,MAAM;KACV,CAAC;IAEF,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;IAErC,6DAA6D;IAC7D,yFAAyF;IACzF,kGAAkG;IAClG,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7G,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,mCAAmC,CAAC,CAAC;IAEjE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;IAEhC,MAAM,EAAE,GAAG,WAAW,CAAC,UAAU,CAC/B;QACE,GAAG,QAAQ;QACX,CAAC,EAAE,IAAI,GAAG,CAAC;QACX,CAAC,EAAE,IAAI,GAAG,CAAC;QACX,CAAC,EAAE,IAAI,GAAG,CAAC;KACZ,EACD,EAAE,MAAM,EAAE,CACX,CAAC;IAEF,OAAO;QACL,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC;QAClB,CAAC,EAAE,IAAI,GAAG,CAAC;QACX,CAAC,EAAE,IAAI,GAAG,CAAC;QACX,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB;IAC7C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAA2B;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACpC,OAAO;QACL;YACE,YAAY,EAAE,CAAC,UAAU,GAAG,EAAE,EAAE,UAAU,GAAG,MAAM,EAAE,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;YACvF,YAAY,EAAE,CAAC,UAAU,GAAG,EAAE,EAAE,UAAU,GAAG,MAAM,EAAE,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;YACjF,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACf,WAAW,EAAE,8BAA8B;SAC5C;QACD;YACE,YAAY,EAAE,CAAC,UAAU,GAAG,EAAE,EAAE,UAAU,GAAG,MAAM,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC;YACpF,YAAY,EAAE,CAAC,UAAU,GAAG,EAAE,EAAE,UAAU,GAAG,MAAM,EAAE,UAAU,GAAG,CAAC,CAAC;YACpE,OAAO,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;YACzB,WAAW,EAAE,gDAAgD;SAC9D;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAA0B,EAC1B,GAAwB;IAExB,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAE7D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAE5E,4FAA4F;IAC5F,+GAA+G;IAC/G,8CAA8C;IAC9C,MAAM,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;IAC9F,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAC/F,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,wCAAwC,CAAC,CAAC;IAEtE,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;IACxB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;IAE7B,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACX,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/E,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,2CAA2C,CAAC,CAAC;IAEhF,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO;QACnC,SAAS,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,SAA0B,EAC1B,GAA0B;IAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAE7D,IAAI,CAAC,CAAC,cAAc,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAEpG,MAAM,SAAS,GAAG,GAAG,CAAC,SAAuD,CAAC;IAE9E,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAEvF,MAAM,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAChE,SAAS,EACT,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAChC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElB,MAAM,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAC5D,WAAqB,EACrB,OAAO,EACP,KAAK,EACL,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAChC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElB,uIAAuI;IACvI,sJAAsJ;IAEtJ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,GAAG,CAAC,SAA0B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QAClH,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,yBAAyB,EAAE,SAAS,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;IAC/G,CAAC,CAAC,CAAC;IAEH,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,uCAAuC,CAAC,CAAC;IAErE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;IAEhC,MAAM,SAAS,GAAG,aAAa,CAAC;QAC9B,CAAC,EAAE,KAAK,CAAC,EAAE;QACX,CAAC,EAAE,KAAK,CAAC,EAAE;QACX,CAAC,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/C,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/E,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,2CAA2C,CAAC,CAAC;IAEhF,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO;QACnC,SAAS;KACV,CAAC;AACJ,CAAC;AAED,gJAAgJ;AAChJ,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAA0B;IAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5E,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpG,MAAM,IAAI,GAAG,YAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE7F,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxG,CAAC"}
1
+ {"version":3,"file":"ethereum.js","sourceRoot":"","sources":["../src/ethereum.ts"],"names":[],"mappings":"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"}