@bitgo-beta/sdk-coin-ethw 20.0.76-beta.387 → 20.0.76-beta.389

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.
@@ -0,0 +1,53 @@
1
+ import { BN } from 'ethereumjs-util';
2
+ import { BaseCoin, BitGoBase, KeyPair, ParsedTransaction, ParseTransactionOptions, VerifyAddressOptions, VerifyTransactionOptions } from '@bitgo-beta/sdk-core';
3
+ import { BaseCoin as StaticsBaseCoin } from '@bitgo-beta/statics';
4
+ import { Eth, TransactionBuilder } from '@bitgo-beta/sdk-coin-eth';
5
+ type FullNodeResponseBody = {
6
+ jsonrpc: string;
7
+ id: string;
8
+ result?: string;
9
+ error?: {
10
+ code: string;
11
+ message: string;
12
+ };
13
+ };
14
+ export declare class Ethw extends Eth {
15
+ protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
16
+ static createInstance(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>): BaseCoin;
17
+ verifyTransaction(params: VerifyTransactionOptions): Promise<boolean>;
18
+ isWalletAddress(params: VerifyAddressOptions): Promise<boolean>;
19
+ parseTransaction(params: ParseTransactionOptions): Promise<ParsedTransaction>;
20
+ generateKeyPair(seed?: Buffer | undefined): KeyPair;
21
+ /**
22
+ * Query full node for the balance of an address
23
+ * @param {string} address the ETHw address
24
+ * @returns {Promise<BN>} address balance
25
+ */
26
+ queryAddressBalance(address: string): Promise<BN>;
27
+ /**
28
+ * Queries the contract (via RPC) for the next sequence ID
29
+ * @param {string} address address of the contract
30
+ * @returns {Promise<number>} sequence ID
31
+ */
32
+ querySequenceId(address: string): Promise<number>;
33
+ /**
34
+ * Queries public full node to get the next ETHw nonce that should be used for the given ETH address
35
+ * @param {string} address
36
+ * @returns {Promise<number>} next ETHw nonce
37
+ */
38
+ getAddressNonce(address: string): Promise<number>;
39
+ /**
40
+ * Make a RPC query to full node for information such as balance, token balance, solidity calls
41
+ * @param {string} method RPC method to execute
42
+ * @param {Array} params params to include in the RPC request
43
+ * @returns {Promise<FullNodeResponseBody>} response from full node
44
+ */
45
+ recoveryFullNodeRPCQuery(method: string, params: Array<unknown>): Promise<FullNodeResponseBody>;
46
+ /**
47
+ * Create a new transaction builder for the current chain
48
+ * @return a new transaction builder
49
+ */
50
+ protected getTransactionBuilder(): TransactionBuilder;
51
+ }
52
+ export {};
53
+ //# sourceMappingURL=ethw.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ethw.d.ts","sourceRoot":"","sources":["../../src/ethw.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,OAAO,EACL,QAAQ,EACR,SAAS,EAET,OAAO,EACP,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAS,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,GAAG,EAAgB,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEjF,KAAK,oBAAoB,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,qBAAa,IAAK,SAAQ,GAAG;IAC3B,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAI/E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;IAG/D,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAGrE,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAG7E,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAInD;;;;OAIG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;IASvD;;;;OAIG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBvD;;;;OAIG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQvD;;;;;OAKG;IACG,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAkBrG;;;OAGG;IACH,SAAS,CAAC,qBAAqB,IAAI,kBAAkB;CAGtD"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Ethw = void 0;
7
+ const superagent_1 = __importDefault(require("superagent"));
8
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ const statics_1 = require("@bitgo-beta/statics");
10
+ const sdk_coin_eth_1 = require("@bitgo-beta/sdk-coin-eth");
11
+ class Ethw extends sdk_coin_eth_1.Eth {
12
+ constructor(bitgo, staticsCoin) {
13
+ super(bitgo, staticsCoin);
14
+ }
15
+ static createInstance(bitgo, staticsCoin) {
16
+ return new Ethw(bitgo, staticsCoin);
17
+ }
18
+ verifyTransaction(params) {
19
+ throw new Error('Method not implemented.');
20
+ }
21
+ async isWalletAddress(params) {
22
+ throw new Error('Method not implemented.');
23
+ }
24
+ parseTransaction(params) {
25
+ throw new Error('Method not implemented.');
26
+ }
27
+ generateKeyPair(seed) {
28
+ throw new Error('Method not implemented.');
29
+ }
30
+ /**
31
+ * Query full node for the balance of an address
32
+ * @param {string} address the ETHw address
33
+ * @returns {Promise<BN>} address balance
34
+ */
35
+ async queryAddressBalance(address) {
36
+ const result = await this.recoveryFullNodeRPCQuery('eth_getBalance', [address, 'latest']);
37
+ // throw if the result does not exist or the result is not a valid number
38
+ if (!result || !result.result) {
39
+ throw new Error(`Could not obtain address balance for ${address} from full node, got: ${result.result}`);
40
+ }
41
+ return new sdk_coin_eth_1.optionalDeps.ethUtil.BN(result.result.slice(2), 16);
42
+ }
43
+ /**
44
+ * Queries the contract (via RPC) for the next sequence ID
45
+ * @param {string} address address of the contract
46
+ * @returns {Promise<number>} sequence ID
47
+ */
48
+ async querySequenceId(address) {
49
+ // Get sequence ID using contract call
50
+ const sequenceIdMethodSignature = sdk_coin_eth_1.optionalDeps.ethAbi.methodID('getNextSequenceId', []);
51
+ const sequenceIdArgs = sdk_coin_eth_1.optionalDeps.ethAbi.rawEncode([], []);
52
+ const sequenceIdData = Buffer.concat([sequenceIdMethodSignature, sequenceIdArgs]).toString('hex');
53
+ const sequenceIdDataHex = sdk_coin_eth_1.optionalDeps.ethUtil.addHexPrefix(sequenceIdData);
54
+ const result = await this.recoveryFullNodeRPCQuery('eth_call', [
55
+ { to: address, data: sequenceIdDataHex },
56
+ 'latest',
57
+ ]);
58
+ if (!result || !result.result) {
59
+ throw new Error('Could not obtain sequence ID from full node, got: ' + result.result);
60
+ }
61
+ const sequenceIdHex = result.result;
62
+ return new sdk_coin_eth_1.optionalDeps.ethUtil.BN(sequenceIdHex.slice(2), 16).toNumber();
63
+ }
64
+ /**
65
+ * Queries public full node to get the next ETHw nonce that should be used for the given ETH address
66
+ * @param {string} address
67
+ * @returns {Promise<number>} next ETHw nonce
68
+ */
69
+ async getAddressNonce(address) {
70
+ const result = await this.recoveryFullNodeRPCQuery('eth_getTransactionCount', [address, 'latest']);
71
+ if (!result || !result.result) {
72
+ throw new Error('Unable to find next nonce from full node, got: ' + JSON.stringify(result));
73
+ }
74
+ return new sdk_coin_eth_1.optionalDeps.ethUtil.BN(result.result.slice(2), 16).toNumber();
75
+ }
76
+ /**
77
+ * Make a RPC query to full node for information such as balance, token balance, solidity calls
78
+ * @param {string} method RPC method to execute
79
+ * @param {Array} params params to include in the RPC request
80
+ * @returns {Promise<FullNodeResponseBody>} response from full node
81
+ */
82
+ async recoveryFullNodeRPCQuery(method, params) {
83
+ const response = await superagent_1.default.post(sdk_core_1.common.Environments[this.bitgo.getEnv()].ethwFullNodeRPCBaseUrl).send({
84
+ method,
85
+ params,
86
+ id: 0,
87
+ jsonrpc: '2.0',
88
+ });
89
+ if (!response.ok) {
90
+ throw new Error('could not reach ETHW full node');
91
+ }
92
+ if (response.body.error) {
93
+ throw new Error(`ETHW full node error: ${response.body.error.code} - ${response.body.error.message}`);
94
+ }
95
+ return response.body;
96
+ }
97
+ /**
98
+ * Create a new transaction builder for the current chain
99
+ * @return a new transaction builder
100
+ */
101
+ getTransactionBuilder() {
102
+ return new sdk_coin_eth_1.TransactionBuilder(statics_1.coins.get(this.getChain()));
103
+ }
104
+ }
105
+ exports.Ethw = Ethw;
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRody5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ldGh3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDREQUFpQztBQUlqQyxtREFTOEI7QUFDOUIsaURBQXlFO0FBQ3pFLDJEQUFpRjtBQVlqRixNQUFhLElBQUssU0FBUSxrQkFBRztJQUMzQixZQUFzQixLQUFnQixFQUFFLFdBQXVDO1FBQzdFLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBZ0M7UUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQTRCO1FBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsTUFBK0I7UUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxlQUFlLENBQUMsSUFBeUI7UUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQWU7UUFDdkMsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsd0JBQXdCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMxRix5RUFBeUU7UUFDekUsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxPQUFPLHlCQUF5QixNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMzRyxDQUFDO1FBQ0QsT0FBTyxJQUFJLDJCQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBZTtRQUNuQyxzQ0FBc0M7UUFDdEMsTUFBTSx5QkFBeUIsR0FBRywyQkFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEYsTUFBTSxjQUFjLEdBQUcsMkJBQVksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3RCxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMseUJBQXlCLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEcsTUFBTSxpQkFBaUIsR0FBRywyQkFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUUsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxFQUFFO1lBQzdELEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDeEMsUUFBUTtTQUNULENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEYsQ0FBQztRQUNELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDcEMsT0FBTyxJQUFJLDJCQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFlO1FBQ25DLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLHlCQUF5QixFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbkcsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM5RixDQUFDO1FBQ0QsT0FBTyxJQUFJLDJCQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1RSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsd0JBQXdCLENBQUMsTUFBYyxFQUFFLE1BQXNCO1FBQ25FLE1BQU0sUUFBUSxHQUFHLE1BQU0sb0JBQU8sQ0FBQyxJQUFJLENBQUMsaUJBQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3hHLE1BQU07WUFDTixNQUFNO1lBQ04sRUFBRSxFQUFFLENBQUM7WUFDTCxPQUFPLEVBQUUsS0FBSztTQUNmLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDeEcsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQ7OztPQUdHO0lBQ08scUJBQXFCO1FBQzdCLE9BQU8sSUFBSSxpQ0FBa0IsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztDQUNGO0FBdEdELG9CQXNHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByZXF1ZXN0IGZyb20gJ3N1cGVyYWdlbnQnO1xuXG5pbXBvcnQgeyBCTiB9IGZyb20gJ2V0aGVyZXVtanMtdXRpbCc7XG5cbmltcG9ydCB7XG4gIEJhc2VDb2luLFxuICBCaXRHb0Jhc2UsXG4gIGNvbW1vbixcbiAgS2V5UGFpcixcbiAgUGFyc2VkVHJhbnNhY3Rpb24sXG4gIFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zLFxuICBWZXJpZnlBZGRyZXNzT3B0aW9ucyxcbiAgVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBTdGF0aWNzQmFzZUNvaW4sIGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBFdGgsIG9wdGlvbmFsRGVwcywgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvaW4tZXRoJztcblxudHlwZSBGdWxsTm9kZVJlc3BvbnNlQm9keSA9IHtcbiAganNvbnJwYzogc3RyaW5nO1xuICBpZDogc3RyaW5nO1xuICByZXN1bHQ/OiBzdHJpbmc7XG4gIGVycm9yPzoge1xuICAgIGNvZGU6IHN0cmluZztcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gIH07XG59O1xuXG5leHBvcnQgY2xhc3MgRXRodyBleHRlbmRzIEV0aCB7XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBzdGF0aWNzQ29pbj86IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4pIHtcbiAgICBzdXBlcihiaXRnbywgc3RhdGljc0NvaW4pO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPik6IEJhc2VDb2luIHtcbiAgICByZXR1cm4gbmV3IEV0aHcoYml0Z28sIHN0YXRpY3NDb2luKTtcbiAgfVxuXG4gIHZlcmlmeVRyYW5zYWN0aW9uKHBhcmFtczogVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG4gIGFzeW5jIGlzV2FsbGV0QWRkcmVzcyhwYXJhbXM6IFZlcmlmeUFkZHJlc3NPcHRpb25zKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG4gIHBhcnNlVHJhbnNhY3Rpb24ocGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8UGFyc2VkVHJhbnNhY3Rpb24+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cbiAgZ2VuZXJhdGVLZXlQYWlyKHNlZWQ/OiBCdWZmZXIgfCB1bmRlZmluZWQpOiBLZXlQYWlyIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKipcbiAgICogUXVlcnkgZnVsbCBub2RlIGZvciB0aGUgYmFsYW5jZSBvZiBhbiBhZGRyZXNzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIHRoZSBFVEh3IGFkZHJlc3NcbiAgICogQHJldHVybnMge1Byb21pc2U8Qk4+fSBhZGRyZXNzIGJhbGFuY2VcbiAgICovXG4gIGFzeW5jIHF1ZXJ5QWRkcmVzc0JhbGFuY2UoYWRkcmVzczogc3RyaW5nKTogUHJvbWlzZTxCTj4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucmVjb3ZlcnlGdWxsTm9kZVJQQ1F1ZXJ5KCdldGhfZ2V0QmFsYW5jZScsIFthZGRyZXNzLCAnbGF0ZXN0J10pO1xuICAgIC8vIHRocm93IGlmIHRoZSByZXN1bHQgZG9lcyBub3QgZXhpc3Qgb3IgdGhlIHJlc3VsdCBpcyBub3QgYSB2YWxpZCBudW1iZXJcbiAgICBpZiAoIXJlc3VsdCB8fCAhcmVzdWx0LnJlc3VsdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3Qgb2J0YWluIGFkZHJlc3MgYmFsYW5jZSBmb3IgJHthZGRyZXNzfSBmcm9tIGZ1bGwgbm9kZSwgZ290OiAke3Jlc3VsdC5yZXN1bHR9YCk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgb3B0aW9uYWxEZXBzLmV0aFV0aWwuQk4ocmVzdWx0LnJlc3VsdC5zbGljZSgyKSwgMTYpO1xuICB9XG5cbiAgLyoqXG4gICAqIFF1ZXJpZXMgdGhlIGNvbnRyYWN0ICh2aWEgUlBDKSBmb3IgdGhlIG5leHQgc2VxdWVuY2UgSURcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgYWRkcmVzcyBvZiB0aGUgY29udHJhY3RcbiAgICogQHJldHVybnMge1Byb21pc2U8bnVtYmVyPn0gc2VxdWVuY2UgSURcbiAgICovXG4gIGFzeW5jIHF1ZXJ5U2VxdWVuY2VJZChhZGRyZXNzOiBzdHJpbmcpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIC8vIEdldCBzZXF1ZW5jZSBJRCB1c2luZyBjb250cmFjdCBjYWxsXG4gICAgY29uc3Qgc2VxdWVuY2VJZE1ldGhvZFNpZ25hdHVyZSA9IG9wdGlvbmFsRGVwcy5ldGhBYmkubWV0aG9kSUQoJ2dldE5leHRTZXF1ZW5jZUlkJywgW10pO1xuICAgIGNvbnN0IHNlcXVlbmNlSWRBcmdzID0gb3B0aW9uYWxEZXBzLmV0aEFiaS5yYXdFbmNvZGUoW10sIFtdKTtcbiAgICBjb25zdCBzZXF1ZW5jZUlkRGF0YSA9IEJ1ZmZlci5jb25jYXQoW3NlcXVlbmNlSWRNZXRob2RTaWduYXR1cmUsIHNlcXVlbmNlSWRBcmdzXSkudG9TdHJpbmcoJ2hleCcpO1xuICAgIGNvbnN0IHNlcXVlbmNlSWREYXRhSGV4ID0gb3B0aW9uYWxEZXBzLmV0aFV0aWwuYWRkSGV4UHJlZml4KHNlcXVlbmNlSWREYXRhKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnJlY292ZXJ5RnVsbE5vZGVSUENRdWVyeSgnZXRoX2NhbGwnLCBbXG4gICAgICB7IHRvOiBhZGRyZXNzLCBkYXRhOiBzZXF1ZW5jZUlkRGF0YUhleCB9LFxuICAgICAgJ2xhdGVzdCcsXG4gICAgXSk7XG4gICAgaWYgKCFyZXN1bHQgfHwgIXJlc3VsdC5yZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IG9idGFpbiBzZXF1ZW5jZSBJRCBmcm9tIGZ1bGwgbm9kZSwgZ290OiAnICsgcmVzdWx0LnJlc3VsdCk7XG4gICAgfVxuICAgIGNvbnN0IHNlcXVlbmNlSWRIZXggPSByZXN1bHQucmVzdWx0O1xuICAgIHJldHVybiBuZXcgb3B0aW9uYWxEZXBzLmV0aFV0aWwuQk4oc2VxdWVuY2VJZEhleC5zbGljZSgyKSwgMTYpLnRvTnVtYmVyKCk7XG4gIH1cblxuICAvKipcbiAgICogUXVlcmllcyBwdWJsaWMgZnVsbCBub2RlIHRvIGdldCB0aGUgbmV4dCBFVEh3IG5vbmNlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBnaXZlbiBFVEggYWRkcmVzc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxudW1iZXI+fSBuZXh0IEVUSHcgbm9uY2VcbiAgICovXG4gIGFzeW5jIGdldEFkZHJlc3NOb25jZShhZGRyZXNzOiBzdHJpbmcpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucmVjb3ZlcnlGdWxsTm9kZVJQQ1F1ZXJ5KCdldGhfZ2V0VHJhbnNhY3Rpb25Db3VudCcsIFthZGRyZXNzLCAnbGF0ZXN0J10pO1xuICAgIGlmICghcmVzdWx0IHx8ICFyZXN1bHQucmVzdWx0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBmaW5kIG5leHQgbm9uY2UgZnJvbSBmdWxsIG5vZGUsIGdvdDogJyArIEpTT04uc3RyaW5naWZ5KHJlc3VsdCkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IG9wdGlvbmFsRGVwcy5ldGhVdGlsLkJOKHJlc3VsdC5yZXN1bHQuc2xpY2UoMiksIDE2KS50b051bWJlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgYSBSUEMgcXVlcnkgdG8gZnVsbCBub2RlIGZvciBpbmZvcm1hdGlvbiBzdWNoIGFzIGJhbGFuY2UsIHRva2VuIGJhbGFuY2UsIHNvbGlkaXR5IGNhbGxzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZXRob2QgUlBDIG1ldGhvZCB0byBleGVjdXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IHBhcmFtcyBwYXJhbXMgdG8gaW5jbHVkZSBpbiB0aGUgUlBDIHJlcXVlc3RcbiAgICogQHJldHVybnMge1Byb21pc2U8RnVsbE5vZGVSZXNwb25zZUJvZHk+fSByZXNwb25zZSBmcm9tIGZ1bGwgbm9kZVxuICAgKi9cbiAgYXN5bmMgcmVjb3ZlcnlGdWxsTm9kZVJQQ1F1ZXJ5KG1ldGhvZDogc3RyaW5nLCBwYXJhbXM6IEFycmF5PHVua25vd24+KTogUHJvbWlzZTxGdWxsTm9kZVJlc3BvbnNlQm9keT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxdWVzdC5wb3N0KGNvbW1vbi5FbnZpcm9ubWVudHNbdGhpcy5iaXRnby5nZXRFbnYoKV0uZXRod0Z1bGxOb2RlUlBDQmFzZVVybCkuc2VuZCh7XG4gICAgICBtZXRob2QsXG4gICAgICBwYXJhbXMsXG4gICAgICBpZDogMCxcbiAgICAgIGpzb25ycGM6ICcyLjAnLFxuICAgIH0pO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb3VsZCBub3QgcmVhY2ggRVRIVyBmdWxsIG5vZGUnKTtcbiAgICB9XG5cbiAgICBpZiAocmVzcG9uc2UuYm9keS5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFVEhXIGZ1bGwgbm9kZSBlcnJvcjogJHtyZXNwb25zZS5ib2R5LmVycm9yLmNvZGV9IC0gJHtyZXNwb25zZS5ib2R5LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZS5ib2R5O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyB0cmFuc2FjdGlvbiBidWlsZGVyIGZvciB0aGUgY3VycmVudCBjaGFpblxuICAgKiBAcmV0dXJuIGEgbmV3IHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHByb3RlY3RlZCBnZXRUcmFuc2FjdGlvbkJ1aWxkZXIoKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQodGhpcy5nZXRDaGFpbigpKSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './ethw';
2
+ export * from './register';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC"}
@@ -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("./ethw"), exports);
18
+ __exportStar(require("./register"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUF1QjtBQUN2Qiw2Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2V0aHcnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWdpc3Rlcic7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ import { BitGoBase } from '@bitgo-beta/sdk-core';
2
+ export declare const register: (sdk: BitGoBase) => void;
3
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IAEzC,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.register = void 0;
4
+ const ethw_1 = require("./ethw");
5
+ const register = (sdk) => {
6
+ sdk.register('ethw', ethw_1.Ethw.createInstance);
7
+ };
8
+ exports.register = register;
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUNBQThCO0FBRXZCLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBYyxFQUFRLEVBQUU7SUFDL0MsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsV0FBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQztBQUZXLFFBQUEsUUFBUSxZQUVuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEV0aHcgfSBmcm9tICcuL2V0aHcnO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXIgPSAoc2RrOiBCaXRHb0Jhc2UpOiB2b2lkID0+IHtcbiAgc2RrLnJlZ2lzdGVyKCdldGh3JywgRXRody5jcmVhdGVJbnN0YW5jZSk7XG59O1xuIl19
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../test/integration/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L2ludGVncmF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIiXX0=
@@ -0,0 +1,3 @@
1
+ import { TestBitGoAPI } from '@bitgo-beta/sdk-test';
2
+ export declare function nockEthwRecovery(bitgo: TestBitGoAPI, nockData?: any[]): void;
3
+ //# sourceMappingURL=recovery-nocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery-nocks.d.ts","sourceRoot":"","sources":["../../../test/lib/recovery-nocks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AA+JpD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,QAAc,GAAG,IAAI,CAUlF"}
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.nockEthwRecovery = nockEthwRecovery;
7
+ const nock_1 = __importDefault(require("nock"));
8
+ const nockEthData = [
9
+ {
10
+ params: {
11
+ method: 'eth_getTransactionCount',
12
+ params: ['0x74c2137d54b0fc9f907e13f14e0dd18485fee924', 'latest'],
13
+ },
14
+ response: {
15
+ result: '0x0',
16
+ id: 0,
17
+ jsonrpc: '2.0',
18
+ },
19
+ },
20
+ {
21
+ params: {
22
+ method: 'eth_getBalance',
23
+ params: ['0x74c2137d54b0fc9f907e13f14e0dd18485fee924', 'latest'],
24
+ },
25
+ response: {
26
+ result: '0x16345785d8a0000',
27
+ id: 0,
28
+ jsonrpc: '2.0',
29
+ },
30
+ },
31
+ {
32
+ params: {
33
+ method: 'eth_getBalance',
34
+ params: ['0x5df5a96b478bb1808140d87072143e60262e8670', 'latest'],
35
+ },
36
+ response: {
37
+ result: '0x1e87f85809dc0000',
38
+ id: 0,
39
+ jsonrpc: '2.0',
40
+ },
41
+ },
42
+ {
43
+ params: {
44
+ method: 'eth_getTransactionCount',
45
+ params: ['0xba6d9d82cf2920c544b834b72f4c6d11a3ef3de6', 'latest'],
46
+ },
47
+ response: {
48
+ result: '0x0',
49
+ id: 0,
50
+ jsonrpc: '2.0',
51
+ },
52
+ },
53
+ {
54
+ params: {
55
+ method: 'eth_getBalance',
56
+ params: ['0xba6d9d82cf2920c544b834b72f4c6d11a3ef3de6', 'latest'],
57
+ },
58
+ response: {
59
+ result: '0x0',
60
+ id: 0,
61
+ jsonrpc: '2.0',
62
+ },
63
+ },
64
+ {
65
+ params: {
66
+ method: 'eth_getTransactionCount',
67
+ params: ['0x74c2137d54b0fc9f907e13f14e0dd18485fee924', 'latest'],
68
+ },
69
+ response: {
70
+ result: '0x0',
71
+ id: 0,
72
+ jsonrpc: '2.0',
73
+ },
74
+ },
75
+ {
76
+ params: {
77
+ method: 'eth_getBalance',
78
+ params: ['0x74c2137d54b0fc9f907e13f14e0dd18485fee924', 'latest'],
79
+ },
80
+ response: {
81
+ result: '0x16345785d8a0000',
82
+ id: 0,
83
+ jsonrpc: '2.0',
84
+ },
85
+ },
86
+ {
87
+ params: {
88
+ method: 'eth_getBalance',
89
+ params: ['0x5df5a96b478bb1808140d87072143e60262e8670', 'latest'],
90
+ },
91
+ response: {
92
+ result: '0x1e87f85809dc0000',
93
+ id: 0,
94
+ jsonrpc: '2.0',
95
+ },
96
+ },
97
+ {
98
+ params: {
99
+ method: 'eth_call',
100
+ params: [{ to: '0x5df5a96b478bb1808140d87072143e60262e8670', data: '0xa0b7967b' }, 'latest'],
101
+ },
102
+ response: {
103
+ jsonrpc: '2.0',
104
+ result: '0x0000000000000000000000000000000000000000000000000000000000000001',
105
+ id: 0,
106
+ },
107
+ },
108
+ {
109
+ params: {
110
+ method: 'eth_getBalance',
111
+ params: ['0xa1a88a502274073b1bc4fe06ea0f5fe77e151b91', 'latest'],
112
+ },
113
+ response: {
114
+ result: '0x470de4df820000',
115
+ id: 0,
116
+ jsonrpc: '2.0',
117
+ },
118
+ },
119
+ {
120
+ params: {
121
+ method: 'eth_getTransactionCount',
122
+ params: ['0xa1a88a502274073b1bc4fe06ea0f5fe77e151b91', 'latest'],
123
+ },
124
+ response: {
125
+ result: '0x1',
126
+ id: 0,
127
+ jsonrpc: '2.0',
128
+ },
129
+ },
130
+ {
131
+ params: {
132
+ method: 'eth_getTransactionCount',
133
+ params: ['0xa1a88a502274073b1bc4fe06ea0f5fe77e151b91', 'latest'],
134
+ },
135
+ response: {
136
+ result: '0x1',
137
+ id: 0,
138
+ jsonrpc: '2.0',
139
+ },
140
+ },
141
+ {
142
+ params: {
143
+ method: 'eth_call',
144
+ params: [{ to: '0xdf07117705a9f8dc4c2a78de66b7f1797dba9d4e', data: '0xa0b7967b' }, 'latest'],
145
+ },
146
+ response: {
147
+ jsonrpc: '2.0',
148
+ result: '0x0000000000000000000000000000000000000000000000000000000000002a7f',
149
+ id: 0,
150
+ },
151
+ },
152
+ {
153
+ params: {
154
+ method: 'eth_getBalance',
155
+ params: ['0xdf07117705a9f8dc4c2a78de66b7f1797dba9d4e', 'latest'],
156
+ },
157
+ response: {
158
+ result: '0x8ac7230489e7ffb8',
159
+ id: 0,
160
+ jsonrpc: '2.0',
161
+ },
162
+ },
163
+ ];
164
+ function nockEthwRecovery(bitgo, nockData = nockEthData) {
165
+ nockData.forEach((data) => {
166
+ (0, nock_1.default)('https://mainnet.ethereumpow.org')
167
+ .post('/', {
168
+ jsonrpc: '2.0',
169
+ id: 0,
170
+ ...data.params,
171
+ })
172
+ .reply(200, data.response);
173
+ });
174
+ }
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3Zlcnktbm9ja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L2xpYi9yZWNvdmVyeS1ub2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWlLQSw0Q0FVQztBQTNLRCxnREFBd0I7QUFJeEIsTUFBTSxXQUFXLEdBQVU7SUFDekI7UUFDRSxNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUUseUJBQXlCO1lBQ2pDLE1BQU0sRUFBRSxDQUFDLDRDQUE0QyxFQUFFLFFBQVEsQ0FBQztTQUNqRTtRQUNELFFBQVEsRUFBRTtZQUNSLE1BQU0sRUFBRSxLQUFLO1lBQ2IsRUFBRSxFQUFFLENBQUM7WUFDTCxPQUFPLEVBQUUsS0FBSztTQUNmO0tBQ0Y7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsTUFBTSxFQUFFLENBQUMsNENBQTRDLEVBQUUsUUFBUSxDQUFDO1NBQ2pFO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsTUFBTSxFQUFFLG1CQUFtQjtZQUMzQixFQUFFLEVBQUUsQ0FBQztZQUNMLE9BQU8sRUFBRSxLQUFLO1NBQ2Y7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ04sTUFBTSxFQUFFLGdCQUFnQjtZQUN4QixNQUFNLEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxRQUFRLENBQUM7U0FDakU7UUFDRCxRQUFRLEVBQUU7WUFDUixNQUFNLEVBQUUsb0JBQW9CO1lBQzVCLEVBQUUsRUFBRSxDQUFDO1lBQ0wsT0FBTyxFQUFFLEtBQUs7U0FDZjtLQUNGO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUUseUJBQXlCO1lBQ2pDLE1BQU0sRUFBRSxDQUFDLDRDQUE0QyxFQUFFLFFBQVEsQ0FBQztTQUNqRTtRQUNELFFBQVEsRUFBRTtZQUNSLE1BQU0sRUFBRSxLQUFLO1lBQ2IsRUFBRSxFQUFFLENBQUM7WUFDTCxPQUFPLEVBQUUsS0FBSztTQUNmO0tBQ0Y7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsTUFBTSxFQUFFLENBQUMsNENBQTRDLEVBQUUsUUFBUSxDQUFDO1NBQ2pFO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsTUFBTSxFQUFFLEtBQUs7WUFDYixFQUFFLEVBQUUsQ0FBQztZQUNMLE9BQU8sRUFBRSxLQUFLO1NBQ2Y7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ04sTUFBTSxFQUFFLHlCQUF5QjtZQUNqQyxNQUFNLEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxRQUFRLENBQUM7U0FDakU7UUFDRCxRQUFRLEVBQUU7WUFDUixNQUFNLEVBQUUsS0FBSztZQUNiLEVBQUUsRUFBRSxDQUFDO1lBQ0wsT0FBTyxFQUFFLEtBQUs7U0FDZjtLQUNGO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUUsZ0JBQWdCO1lBQ3hCLE1BQU0sRUFBRSxDQUFDLDRDQUE0QyxFQUFFLFFBQVEsQ0FBQztTQUNqRTtRQUNELFFBQVEsRUFBRTtZQUNSLE1BQU0sRUFBRSxtQkFBbUI7WUFDM0IsRUFBRSxFQUFFLENBQUM7WUFDTCxPQUFPLEVBQUUsS0FBSztTQUNmO0tBQ0Y7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsTUFBTSxFQUFFLENBQUMsNENBQTRDLEVBQUUsUUFBUSxDQUFDO1NBQ2pFO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsTUFBTSxFQUFFLG9CQUFvQjtZQUM1QixFQUFFLEVBQUUsQ0FBQztZQUNMLE9BQU8sRUFBRSxLQUFLO1NBQ2Y7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ04sTUFBTSxFQUFFLFVBQVU7WUFDbEIsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsNENBQTRDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLFFBQVEsQ0FBQztTQUM3RjtRQUNELFFBQVEsRUFBRTtZQUNSLE9BQU8sRUFBRSxLQUFLO1lBQ2QsTUFBTSxFQUFFLG9FQUFvRTtZQUM1RSxFQUFFLEVBQUUsQ0FBQztTQUNOO0tBQ0Y7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsTUFBTSxFQUFFLENBQUMsNENBQTRDLEVBQUUsUUFBUSxDQUFDO1NBQ2pFO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsTUFBTSxFQUFFLGtCQUFrQjtZQUMxQixFQUFFLEVBQUUsQ0FBQztZQUNMLE9BQU8sRUFBRSxLQUFLO1NBQ2Y7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ04sTUFBTSxFQUFFLHlCQUF5QjtZQUNqQyxNQUFNLEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxRQUFRLENBQUM7U0FDakU7UUFDRCxRQUFRLEVBQUU7WUFDUixNQUFNLEVBQUUsS0FBSztZQUNiLEVBQUUsRUFBRSxDQUFDO1lBQ0wsT0FBTyxFQUFFLEtBQUs7U0FDZjtLQUNGO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUUseUJBQXlCO1lBQ2pDLE1BQU0sRUFBRSxDQUFDLDRDQUE0QyxFQUFFLFFBQVEsQ0FBQztTQUNqRTtRQUNELFFBQVEsRUFBRTtZQUNSLE1BQU0sRUFBRSxLQUFLO1lBQ2IsRUFBRSxFQUFFLENBQUM7WUFDTCxPQUFPLEVBQUUsS0FBSztTQUNmO0tBQ0Y7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLDRDQUE0QyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSxRQUFRLENBQUM7U0FDN0Y7UUFDRCxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsS0FBSztZQUNkLE1BQU0sRUFBRSxvRUFBb0U7WUFDNUUsRUFBRSxFQUFFLENBQUM7U0FDTjtLQUNGO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUUsZ0JBQWdCO1lBQ3hCLE1BQU0sRUFBRSxDQUFDLDRDQUE0QyxFQUFFLFFBQVEsQ0FBQztTQUNqRTtRQUNELFFBQVEsRUFBRTtZQUNSLE1BQU0sRUFBRSxvQkFBb0I7WUFDNUIsRUFBRSxFQUFFLENBQUM7WUFDTCxPQUFPLEVBQUUsS0FBSztTQUNmO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBbUIsRUFBRSxRQUFRLEdBQUcsV0FBVztJQUMxRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDeEIsSUFBQSxjQUFJLEVBQUMsaUNBQWlDLENBQUM7YUFDcEMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNULE9BQU8sRUFBRSxLQUFLO1lBQ2QsRUFBRSxFQUFFLENBQUM7WUFDTCxHQUFHLElBQUksQ0FBQyxNQUFNO1NBQ2YsQ0FBQzthQUNELEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBub2NrIGZyb20gJ25vY2snO1xuXG5pbXBvcnQgeyBUZXN0Qml0R29BUEkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstdGVzdCc7XG5cbmNvbnN0IG5vY2tFdGhEYXRhOiBhbnlbXSA9IFtcbiAge1xuICAgIHBhcmFtczoge1xuICAgICAgbWV0aG9kOiAnZXRoX2dldFRyYW5zYWN0aW9uQ291bnQnLFxuICAgICAgcGFyYW1zOiBbJzB4NzRjMjEzN2Q1NGIwZmM5ZjkwN2UxM2YxNGUwZGQxODQ4NWZlZTkyNCcsICdsYXRlc3QnXSxcbiAgICB9LFxuICAgIHJlc3BvbnNlOiB7XG4gICAgICByZXN1bHQ6ICcweDAnLFxuICAgICAgaWQ6IDAsXG4gICAgICBqc29ucnBjOiAnMi4wJyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBtZXRob2Q6ICdldGhfZ2V0QmFsYW5jZScsXG4gICAgICBwYXJhbXM6IFsnMHg3NGMyMTM3ZDU0YjBmYzlmOTA3ZTEzZjE0ZTBkZDE4NDg1ZmVlOTI0JywgJ2xhdGVzdCddLFxuICAgIH0sXG4gICAgcmVzcG9uc2U6IHtcbiAgICAgIHJlc3VsdDogJzB4MTYzNDU3ODVkOGEwMDAwJyxcbiAgICAgIGlkOiAwLFxuICAgICAganNvbnJwYzogJzIuMCcsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIHBhcmFtczoge1xuICAgICAgbWV0aG9kOiAnZXRoX2dldEJhbGFuY2UnLFxuICAgICAgcGFyYW1zOiBbJzB4NWRmNWE5NmI0NzhiYjE4MDgxNDBkODcwNzIxNDNlNjAyNjJlODY3MCcsICdsYXRlc3QnXSxcbiAgICB9LFxuICAgIHJlc3BvbnNlOiB7XG4gICAgICByZXN1bHQ6ICcweDFlODdmODU4MDlkYzAwMDAnLFxuICAgICAgaWQ6IDAsXG4gICAgICBqc29ucnBjOiAnMi4wJyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBtZXRob2Q6ICdldGhfZ2V0VHJhbnNhY3Rpb25Db3VudCcsXG4gICAgICBwYXJhbXM6IFsnMHhiYTZkOWQ4MmNmMjkyMGM1NDRiODM0YjcyZjRjNmQxMWEzZWYzZGU2JywgJ2xhdGVzdCddLFxuICAgIH0sXG4gICAgcmVzcG9uc2U6IHtcbiAgICAgIHJlc3VsdDogJzB4MCcsXG4gICAgICBpZDogMCxcbiAgICAgIGpzb25ycGM6ICcyLjAnLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBwYXJhbXM6IHtcbiAgICAgIG1ldGhvZDogJ2V0aF9nZXRCYWxhbmNlJyxcbiAgICAgIHBhcmFtczogWycweGJhNmQ5ZDgyY2YyOTIwYzU0NGI4MzRiNzJmNGM2ZDExYTNlZjNkZTYnLCAnbGF0ZXN0J10sXG4gICAgfSxcbiAgICByZXNwb25zZToge1xuICAgICAgcmVzdWx0OiAnMHgwJyxcbiAgICAgIGlkOiAwLFxuICAgICAganNvbnJwYzogJzIuMCcsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIHBhcmFtczoge1xuICAgICAgbWV0aG9kOiAnZXRoX2dldFRyYW5zYWN0aW9uQ291bnQnLFxuICAgICAgcGFyYW1zOiBbJzB4NzRjMjEzN2Q1NGIwZmM5ZjkwN2UxM2YxNGUwZGQxODQ4NWZlZTkyNCcsICdsYXRlc3QnXSxcbiAgICB9LFxuICAgIHJlc3BvbnNlOiB7XG4gICAgICByZXN1bHQ6ICcweDAnLFxuICAgICAgaWQ6IDAsXG4gICAgICBqc29ucnBjOiAnMi4wJyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBtZXRob2Q6ICdldGhfZ2V0QmFsYW5jZScsXG4gICAgICBwYXJhbXM6IFsnMHg3NGMyMTM3ZDU0YjBmYzlmOTA3ZTEzZjE0ZTBkZDE4NDg1ZmVlOTI0JywgJ2xhdGVzdCddLFxuICAgIH0sXG4gICAgcmVzcG9uc2U6IHtcbiAgICAgIHJlc3VsdDogJzB4MTYzNDU3ODVkOGEwMDAwJyxcbiAgICAgIGlkOiAwLFxuICAgICAganNvbnJwYzogJzIuMCcsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIHBhcmFtczoge1xuICAgICAgbWV0aG9kOiAnZXRoX2dldEJhbGFuY2UnLFxuICAgICAgcGFyYW1zOiBbJzB4NWRmNWE5NmI0NzhiYjE4MDgxNDBkODcwNzIxNDNlNjAyNjJlODY3MCcsICdsYXRlc3QnXSxcbiAgICB9LFxuICAgIHJlc3BvbnNlOiB7XG4gICAgICByZXN1bHQ6ICcweDFlODdmODU4MDlkYzAwMDAnLFxuICAgICAgaWQ6IDAsXG4gICAgICBqc29ucnBjOiAnMi4wJyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBtZXRob2Q6ICdldGhfY2FsbCcsXG4gICAgICBwYXJhbXM6IFt7IHRvOiAnMHg1ZGY1YTk2YjQ3OGJiMTgwODE0MGQ4NzA3MjE0M2U2MDI2MmU4NjcwJywgZGF0YTogJzB4YTBiNzk2N2InIH0sICdsYXRlc3QnXSxcbiAgICB9LFxuICAgIHJlc3BvbnNlOiB7XG4gICAgICBqc29ucnBjOiAnMi4wJyxcbiAgICAgIHJlc3VsdDogJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMScsXG4gICAgICBpZDogMCxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBtZXRob2Q6ICdldGhfZ2V0QmFsYW5jZScsXG4gICAgICBwYXJhbXM6IFsnMHhhMWE4OGE1MDIyNzQwNzNiMWJjNGZlMDZlYTBmNWZlNzdlMTUxYjkxJywgJ2xhdGVzdCddLFxuICAgIH0sXG4gICAgcmVzcG9uc2U6IHtcbiAgICAgIHJlc3VsdDogJzB4NDcwZGU0ZGY4MjAwMDAnLFxuICAgICAgaWQ6IDAsXG4gICAgICBqc29ucnBjOiAnMi4wJyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBtZXRob2Q6ICdldGhfZ2V0VHJhbnNhY3Rpb25Db3VudCcsXG4gICAgICBwYXJhbXM6IFsnMHhhMWE4OGE1MDIyNzQwNzNiMWJjNGZlMDZlYTBmNWZlNzdlMTUxYjkxJywgJ2xhdGVzdCddLFxuICAgIH0sXG4gICAgcmVzcG9uc2U6IHtcbiAgICAgIHJlc3VsdDogJzB4MScsXG4gICAgICBpZDogMCxcbiAgICAgIGpzb25ycGM6ICcyLjAnLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBwYXJhbXM6IHtcbiAgICAgIG1ldGhvZDogJ2V0aF9nZXRUcmFuc2FjdGlvbkNvdW50JyxcbiAgICAgIHBhcmFtczogWycweGExYTg4YTUwMjI3NDA3M2IxYmM0ZmUwNmVhMGY1ZmU3N2UxNTFiOTEnLCAnbGF0ZXN0J10sXG4gICAgfSxcbiAgICByZXNwb25zZToge1xuICAgICAgcmVzdWx0OiAnMHgxJyxcbiAgICAgIGlkOiAwLFxuICAgICAganNvbnJwYzogJzIuMCcsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIHBhcmFtczoge1xuICAgICAgbWV0aG9kOiAnZXRoX2NhbGwnLFxuICAgICAgcGFyYW1zOiBbeyB0bzogJzB4ZGYwNzExNzcwNWE5ZjhkYzRjMmE3OGRlNjZiN2YxNzk3ZGJhOWQ0ZScsIGRhdGE6ICcweGEwYjc5NjdiJyB9LCAnbGF0ZXN0J10sXG4gICAgfSxcbiAgICByZXNwb25zZToge1xuICAgICAganNvbnJwYzogJzIuMCcsXG4gICAgICByZXN1bHQ6ICcweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJhN2YnLFxuICAgICAgaWQ6IDAsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIHBhcmFtczoge1xuICAgICAgbWV0aG9kOiAnZXRoX2dldEJhbGFuY2UnLFxuICAgICAgcGFyYW1zOiBbJzB4ZGYwNzExNzcwNWE5ZjhkYzRjMmE3OGRlNjZiN2YxNzk3ZGJhOWQ0ZScsICdsYXRlc3QnXSxcbiAgICB9LFxuICAgIHJlc3BvbnNlOiB7XG4gICAgICByZXN1bHQ6ICcweDhhYzcyMzA0ODllN2ZmYjgnLFxuICAgICAgaWQ6IDAsXG4gICAgICBqc29ucnBjOiAnMi4wJyxcbiAgICB9LFxuICB9LFxuXTtcblxuZXhwb3J0IGZ1bmN0aW9uIG5vY2tFdGh3UmVjb3ZlcnkoYml0Z286IFRlc3RCaXRHb0FQSSwgbm9ja0RhdGEgPSBub2NrRXRoRGF0YSk6IHZvaWQge1xuICBub2NrRGF0YS5mb3JFYWNoKChkYXRhKSA9PiB7XG4gICAgbm9jaygnaHR0cHM6Ly9tYWlubmV0LmV0aGVyZXVtcG93Lm9yZycpXG4gICAgICAucG9zdCgnLycsIHtcbiAgICAgICAganNvbnJwYzogJzIuMCcsXG4gICAgICAgIGlkOiAwLFxuICAgICAgICAuLi5kYXRhLnBhcmFtcyxcbiAgICAgIH0pXG4gICAgICAucmVwbHkoMjAwLCBkYXRhLnJlc3BvbnNlKTtcbiAgfSk7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../test/unit/index.ts"],"names":[],"mappings":""}