@shapeshiftoss/unchained-client 5.3.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -4
- package/dist/bitcoin/index.d.ts +3 -2
- package/dist/bitcoin/index.d.ts.map +1 -1
- package/dist/bitcoin/index.js +5 -14
- package/dist/bitcoin/index.js.map +1 -1
- package/dist/bitcoin/parser/index.d.ts +13 -0
- package/dist/bitcoin/parser/index.d.ts.map +1 -0
- package/dist/bitcoin/parser/index.js +74 -0
- package/dist/bitcoin/parser/index.js.map +1 -0
- package/dist/bitcoin/parser/utils.d.ts +4 -0
- package/dist/bitcoin/parser/utils.d.ts.map +1 -0
- package/dist/bitcoin/parser/utils.js +16 -0
- package/dist/bitcoin/parser/utils.js.map +1 -0
- package/dist/bitcoin/types.d.ts +2 -0
- package/dist/bitcoin/types.d.ts.map +1 -0
- package/dist/bitcoin/types.js +3 -0
- package/dist/bitcoin/types.js.map +1 -0
- package/dist/cosmos/index.d.ts +2 -1
- package/dist/cosmos/index.d.ts.map +1 -1
- package/dist/cosmos/index.js +4 -13
- package/dist/cosmos/index.js.map +1 -1
- package/dist/cosmos/parser/index.d.ts +13 -0
- package/dist/cosmos/parser/index.d.ts.map +1 -0
- package/dist/cosmos/parser/index.js +67 -0
- package/dist/cosmos/parser/index.js.map +1 -0
- package/dist/ethereum/index.d.ts +3 -2
- package/dist/ethereum/index.d.ts.map +1 -1
- package/dist/ethereum/index.js +5 -14
- package/dist/ethereum/index.js.map +1 -1
- package/dist/ethereum/parser/abi/erc20.d.ts +4 -0
- package/dist/ethereum/parser/abi/erc20.d.ts.map +1 -0
- package/dist/ethereum/parser/abi/erc20.js +292 -0
- package/dist/ethereum/parser/abi/erc20.js.map +1 -0
- package/dist/ethereum/parser/abi/multiSig.d.ts +4 -0
- package/dist/ethereum/parser/abi/multiSig.d.ts.map +1 -0
- package/dist/ethereum/parser/abi/multiSig.js +369 -0
- package/dist/ethereum/parser/abi/multiSig.js.map +1 -0
- package/dist/ethereum/parser/abi/shapeShiftRouter.d.ts +4 -0
- package/dist/ethereum/parser/abi/shapeShiftRouter.d.ts.map +1 -0
- package/dist/ethereum/parser/abi/shapeShiftRouter.js +495 -0
- package/dist/ethereum/parser/abi/shapeShiftRouter.js.map +1 -0
- package/dist/ethereum/parser/abi/thor.d.ts +4 -0
- package/dist/ethereum/parser/abi/thor.d.ts.map +1 -0
- package/dist/ethereum/parser/abi/thor.js +155 -0
- package/dist/ethereum/parser/abi/thor.js.map +1 -0
- package/dist/ethereum/parser/abi/uniV2.d.ts +4 -0
- package/dist/ethereum/parser/abi/uniV2.d.ts.map +1 -0
- package/dist/ethereum/parser/abi/uniV2.js +344 -0
- package/dist/ethereum/parser/abi/uniV2.js.map +1 -0
- package/dist/ethereum/parser/abi/yearnVault.d.ts +4 -0
- package/dist/ethereum/parser/abi/yearnVault.d.ts.map +1 -0
- package/dist/ethereum/parser/abi/yearnVault.js +648 -0
- package/dist/ethereum/parser/abi/yearnVault.js.map +1 -0
- package/dist/ethereum/parser/constants.d.ts +6 -0
- package/dist/ethereum/parser/constants.d.ts.map +1 -0
- package/dist/ethereum/parser/constants.js +9 -0
- package/dist/ethereum/parser/constants.js.map +1 -0
- package/dist/ethereum/parser/index.d.ts +21 -0
- package/dist/ethereum/parser/index.d.ts.map +1 -0
- package/dist/ethereum/parser/index.js +185 -0
- package/dist/ethereum/parser/index.js.map +1 -0
- package/dist/ethereum/parser/thor.d.ts +18 -0
- package/dist/ethereum/parser/thor.d.ts.map +1 -0
- package/dist/ethereum/parser/thor.js +81 -0
- package/dist/ethereum/parser/thor.js.map +1 -0
- package/dist/ethereum/parser/uniV2.d.ts +21 -0
- package/dist/ethereum/parser/uniV2.d.ts.map +1 -0
- package/dist/ethereum/parser/uniV2.js +130 -0
- package/dist/ethereum/parser/uniV2.js.map +1 -0
- package/dist/ethereum/parser/utils.d.ts +9 -0
- package/dist/ethereum/parser/utils.d.ts.map +1 -0
- package/dist/ethereum/parser/utils.js +47 -0
- package/dist/ethereum/parser/utils.js.map +1 -0
- package/dist/ethereum/parser/yearn.d.ts +24 -0
- package/dist/ethereum/parser/yearn.d.ts.map +1 -0
- package/dist/ethereum/parser/yearn.js +84 -0
- package/dist/ethereum/parser/yearn.js.map +1 -0
- package/dist/ethereum/parser/zrx.d.ts +7 -0
- package/dist/ethereum/parser/zrx.d.ts.map +1 -0
- package/dist/ethereum/parser/zrx.js +39 -0
- package/dist/ethereum/parser/zrx.js.map +1 -0
- package/dist/ethereum/types.d.ts +31 -0
- package/dist/ethereum/types.d.ts.map +1 -0
- package/dist/ethereum/types.js +3 -0
- package/dist/ethereum/types.js.map +1 -0
- package/dist/generated/bitcoin/api.d.ts +1 -1
- package/dist/generated/bitcoin/api.js +1 -1
- package/dist/generated/bitcoin/base.d.ts +1 -1
- package/dist/generated/bitcoin/base.js +1 -1
- package/dist/generated/bitcoin/common.d.ts +1 -1
- package/dist/generated/bitcoin/common.js +1 -1
- package/dist/generated/bitcoin/configuration.d.ts +1 -1
- package/dist/generated/bitcoin/configuration.js +1 -1
- package/dist/generated/bitcoin/index.d.ts +1 -1
- package/dist/generated/bitcoin/index.js +1 -1
- package/dist/generated/cosmos/api.d.ts +73 -18
- package/dist/generated/cosmos/api.d.ts.map +1 -1
- package/dist/generated/cosmos/api.js +64 -6
- package/dist/generated/cosmos/api.js.map +1 -1
- package/dist/generated/ethereum/api.d.ts +1 -1
- package/dist/generated/ethereum/api.js +1 -1
- package/dist/generated/ethereum/base.d.ts +1 -1
- package/dist/generated/ethereum/base.js +1 -1
- package/dist/generated/ethereum/common.d.ts +1 -1
- package/dist/generated/ethereum/common.js +1 -1
- package/dist/generated/ethereum/configuration.d.ts +1 -1
- package/dist/generated/ethereum/configuration.js +1 -1
- package/dist/generated/ethereum/index.d.ts +1 -1
- package/dist/generated/ethereum/index.js +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +3148 -253
- package/dist/types.d.ts +74 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +26 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +4 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +43 -0
- package/dist/utils.js.map +1 -0
- package/dist/{bitcoin/websocket.d.ts → websocket.d.ts} +8 -7
- package/dist/websocket.d.ts.map +1 -0
- package/dist/{ethereum/websocket.js → websocket.js} +7 -5
- package/dist/websocket.js.map +1 -0
- package/package.json +10 -6
- package/dist/bitcoin/websocket.d.ts.map +0 -1
- package/dist/bitcoin/websocket.js +0 -177
- package/dist/bitcoin/websocket.js.map +0 -1
- package/dist/ethereum/websocket.d.ts +0 -61
- package/dist/ethereum/websocket.d.ts.map +0 -1
- package/dist/ethereum/websocket.js.map +0 -1
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import * as ethereum from './ethereum/types';
|
|
2
|
+
export declare enum Dex {
|
|
3
|
+
Thor = "thor",
|
|
4
|
+
Zrx = "zrx"
|
|
5
|
+
}
|
|
6
|
+
export interface Fee {
|
|
7
|
+
caip19: string;
|
|
8
|
+
value: string;
|
|
9
|
+
}
|
|
10
|
+
export declare type SequencedTx = Tx & {
|
|
11
|
+
sequence: number;
|
|
12
|
+
total: number;
|
|
13
|
+
};
|
|
14
|
+
export declare enum Status {
|
|
15
|
+
Confirmed = "confirmed",
|
|
16
|
+
Pending = "pending",
|
|
17
|
+
Failed = "failed",
|
|
18
|
+
Unknown = "unknown"
|
|
19
|
+
}
|
|
20
|
+
export interface Token {
|
|
21
|
+
contract: string;
|
|
22
|
+
decimals: number;
|
|
23
|
+
name: string;
|
|
24
|
+
symbol: string;
|
|
25
|
+
}
|
|
26
|
+
export interface Trade {
|
|
27
|
+
dexName: Dex;
|
|
28
|
+
memo?: string;
|
|
29
|
+
type: TradeType;
|
|
30
|
+
}
|
|
31
|
+
export declare enum TradeType {
|
|
32
|
+
Trade = "trade",
|
|
33
|
+
Refund = "refund"
|
|
34
|
+
}
|
|
35
|
+
export interface Transfer {
|
|
36
|
+
from: string;
|
|
37
|
+
to: string;
|
|
38
|
+
caip19: string;
|
|
39
|
+
type: TransferType;
|
|
40
|
+
totalValue: string;
|
|
41
|
+
components: Array<{
|
|
42
|
+
value: string;
|
|
43
|
+
}>;
|
|
44
|
+
token?: Token;
|
|
45
|
+
}
|
|
46
|
+
export declare enum TransferType {
|
|
47
|
+
Send = "send",
|
|
48
|
+
Receive = "receive"
|
|
49
|
+
}
|
|
50
|
+
export interface TxMetadata {
|
|
51
|
+
method?: string;
|
|
52
|
+
parser: string;
|
|
53
|
+
}
|
|
54
|
+
export interface StandardTx {
|
|
55
|
+
address: string;
|
|
56
|
+
blockHash?: string;
|
|
57
|
+
blockHeight: number;
|
|
58
|
+
blockTime: number;
|
|
59
|
+
caip2: string;
|
|
60
|
+
confirmations: number;
|
|
61
|
+
fee?: Fee;
|
|
62
|
+
status: Status;
|
|
63
|
+
trade?: Trade;
|
|
64
|
+
transfers: Array<Transfer>;
|
|
65
|
+
txid: string;
|
|
66
|
+
value: string;
|
|
67
|
+
data?: TxMetadata;
|
|
68
|
+
}
|
|
69
|
+
export declare type Tx = StandardTx | ethereum.UniV2Tx | ethereum.ZrxTx | ethereum.ThorTx;
|
|
70
|
+
export declare type TxSpecific<T extends Tx> = Partial<Pick<T, 'trade' | 'transfers' | 'data'>>;
|
|
71
|
+
export interface GenericParser<T> {
|
|
72
|
+
parse: (tx: T) => Promise<TxSpecific<Tx> | undefined>;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAA;AAE5C,oBAAY,GAAG;IACb,IAAI,SAAS;IACb,GAAG,QAAQ;CACZ;AAED,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAED,oBAAY,WAAW,GAAG,EAAE,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,oBAAY,MAAM;IAChB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,GAAG,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,SAAS,CAAA;CAChB;AAED,oBAAY,SAAS;IACnB,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,YAAY,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACpC,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,oBAAY,YAAY;IACtB,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,oBAAY,EAAE,GAAG,UAAU,GAAG,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAA;AAEjF,oBAAY,UAAU,CAAC,CAAC,SAAS,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC,CAAC,CAAA;AAEvF,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAA;CACtD"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TransferType = exports.TradeType = exports.Status = exports.Dex = void 0;
|
|
4
|
+
var Dex;
|
|
5
|
+
(function (Dex) {
|
|
6
|
+
Dex["Thor"] = "thor";
|
|
7
|
+
Dex["Zrx"] = "zrx";
|
|
8
|
+
})(Dex = exports.Dex || (exports.Dex = {}));
|
|
9
|
+
var Status;
|
|
10
|
+
(function (Status) {
|
|
11
|
+
Status["Confirmed"] = "confirmed";
|
|
12
|
+
Status["Pending"] = "pending";
|
|
13
|
+
Status["Failed"] = "failed";
|
|
14
|
+
Status["Unknown"] = "unknown";
|
|
15
|
+
})(Status = exports.Status || (exports.Status = {}));
|
|
16
|
+
var TradeType;
|
|
17
|
+
(function (TradeType) {
|
|
18
|
+
TradeType["Trade"] = "trade";
|
|
19
|
+
TradeType["Refund"] = "refund";
|
|
20
|
+
})(TradeType = exports.TradeType || (exports.TradeType = {}));
|
|
21
|
+
var TransferType;
|
|
22
|
+
(function (TransferType) {
|
|
23
|
+
TransferType["Send"] = "send";
|
|
24
|
+
TransferType["Receive"] = "receive";
|
|
25
|
+
})(TransferType = exports.TransferType || (exports.TransferType = {}));
|
|
26
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAEA,IAAY,GAGX;AAHD,WAAY,GAAG;IACb,oBAAa,CAAA;IACb,kBAAW,CAAA;AACb,CAAC,EAHW,GAAG,GAAH,WAAG,KAAH,WAAG,QAGd;AAYD,IAAY,MAKX;AALD,WAAY,MAAM;IAChB,iCAAuB,CAAA;IACvB,6BAAmB,CAAA;IACnB,2BAAiB,CAAA;IACjB,6BAAmB,CAAA;AACrB,CAAC,EALW,MAAM,GAAN,cAAM,KAAN,cAAM,QAKjB;AAeD,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,4BAAe,CAAA;IACf,8BAAiB,CAAA;AACnB,CAAC,EAHW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAGpB;AAYD,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,mCAAmB,CAAA;AACrB,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB"}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Token, TransferType, Transfer } from './types';
|
|
2
|
+
export declare function findAsyncSequential<T, U>(array: T[], predicate: (element: T) => Promise<U | undefined>): Promise<U | undefined>;
|
|
3
|
+
export declare function aggregateTransfer(transfers: Array<Transfer>, type: TransferType, caip19: string, from: string, to: string, value: string, token?: Token): Array<Transfer>;
|
|
4
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvD,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAC5C,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,GAChD,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAQxB;AAGD,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,EAC1B,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,KAAK,GACZ,KAAK,CAAC,QAAQ,CAAC,CAejB"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.aggregateTransfer = exports.findAsyncSequential = void 0;
|
|
13
|
+
const bignumber_js_1 = require("bignumber.js");
|
|
14
|
+
function findAsyncSequential(array, predicate) {
|
|
15
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
for (const element of array) {
|
|
17
|
+
const result = yield predicate(element);
|
|
18
|
+
if (result) {
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return undefined;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
exports.findAsyncSequential = findAsyncSequential;
|
|
26
|
+
// keep track of all individual tx components and add up the total value transferred
|
|
27
|
+
function aggregateTransfer(transfers, type, caip19, from, to, value, token) {
|
|
28
|
+
if (!new bignumber_js_1.BigNumber(value).gt(0))
|
|
29
|
+
return transfers;
|
|
30
|
+
const index = transfers === null || transfers === void 0 ? void 0 : transfers.findIndex((t) => t.type === type && t.caip19 === caip19 && t.from === from && t.to === to);
|
|
31
|
+
const transfer = transfers === null || transfers === void 0 ? void 0 : transfers[index];
|
|
32
|
+
if (transfer) {
|
|
33
|
+
transfer.totalValue = new bignumber_js_1.BigNumber(transfer.totalValue).plus(value).toString(10);
|
|
34
|
+
transfer.components.push({ value: value });
|
|
35
|
+
transfers[index] = transfer;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
transfers = [...transfers, { type, caip19, from, to, totalValue: value, components: [{ value: value }], token }];
|
|
39
|
+
}
|
|
40
|
+
return transfers;
|
|
41
|
+
}
|
|
42
|
+
exports.aggregateTransfer = aggregateTransfer;
|
|
43
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAwC;AAGxC,SAAsB,mBAAmB,CACvC,KAAU,EACV,SAAiD;;QAEjD,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE;YAC3B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;YACvC,IAAI,MAAM,EAAE;gBACV,OAAO,MAAM,CAAA;aACd;SACF;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;CAAA;AAXD,kDAWC;AAED,oFAAoF;AACpF,SAAgB,iBAAiB,CAC/B,SAA0B,EAC1B,IAAkB,EAClB,MAAc,EACd,IAAY,EACZ,EAAU,EACV,KAAa,EACb,KAAa;IAEb,IAAI,CAAC,IAAI,wBAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IAEjD,MAAM,KAAK,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IACnH,MAAM,QAAQ,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAG,KAAK,CAAC,CAAA;IAEnC,IAAI,QAAQ,EAAE;QACZ,QAAQ,CAAC,UAAU,GAAG,IAAI,wBAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACjF,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1C,SAAS,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAA;KAC5B;SAAM;QACL,SAAS,GAAG,CAAC,GAAG,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;KACjH;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAvBD,8CAuBC"}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import WebSocket from 'isomorphic-ws';
|
|
3
3
|
import type { ErrorResponse, Topics, TxsTopicData } from '@shapeshiftoss/common-api';
|
|
4
|
-
import type { SequencedTx } from '@shapeshiftoss/unchained-tx-parser';
|
|
5
4
|
export interface Connection {
|
|
6
5
|
ws: WebSocket;
|
|
7
6
|
pingTimeout?: NodeJS.Timeout;
|
|
8
7
|
}
|
|
9
|
-
export interface TransactionMessage {
|
|
8
|
+
export interface TransactionMessage<T> {
|
|
9
|
+
address: string;
|
|
10
|
+
data: T;
|
|
10
11
|
subscriptionId: string;
|
|
11
|
-
data: SequencedTx;
|
|
12
12
|
}
|
|
13
|
-
export interface TxsParams {
|
|
13
|
+
export interface TxsParams<T> {
|
|
14
14
|
data: TxsTopicData | undefined;
|
|
15
|
-
onMessage: (message:
|
|
15
|
+
onMessage: (message: TransactionMessage<T>) => void;
|
|
16
16
|
onError?: (err: ErrorResponse) => void;
|
|
17
17
|
}
|
|
18
|
-
export declare
|
|
18
|
+
export declare type SubscriptionId = string;
|
|
19
|
+
export declare class Client<T> {
|
|
19
20
|
private readonly url;
|
|
20
21
|
private readonly connections;
|
|
21
22
|
private txs;
|
|
@@ -34,7 +35,7 @@ export declare class Client {
|
|
|
34
35
|
* @param onMessage handler for all transaction messages associated with `subscriptionId`
|
|
35
36
|
* @param [onError] optional handler for any error messages associated with `subscriptionId`
|
|
36
37
|
*/
|
|
37
|
-
subscribeTxs(subscriptionId: string, data: TxsTopicData, onMessage: (message:
|
|
38
|
+
subscribeTxs(subscriptionId: string, data: TxsTopicData, onMessage: (message: TransactionMessage<T>) => void, onError?: (err: ErrorResponse) => void): Promise<void>;
|
|
38
39
|
/**
|
|
39
40
|
* Unsubscribe from transaction history and updates for newly confirmed and pending transactions.
|
|
40
41
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,eAAe,CAAA;AACrC,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAEpG,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,SAAS,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAC,OAAO,CAAA;CAC7B;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,CAAC,CAAA;IACP,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,IAAI,EAAE,YAAY,GAAG,SAAS,CAAA;IAC9B,SAAS,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IACnD,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAA;CACvC;AAED,oBAAY,cAAc,GAAG,MAAM,CAAA;AAEnC,qBAAa,MAAM,CAAC,CAAC;IACnB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwC;IAEpE,OAAO,CAAC,GAAG,CAA2C;gBAE1C,GAAG,EAAE,MAAM;IAQvB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,MAAM;IAKd;;;;;;;;;;;OAWG;IACG,YAAY,CAChB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,EACnD,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,GACrC,OAAO,CAAC,IAAI,CAAC;IAiFhB;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI;IAclE;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;CAoB5B"}
|
|
@@ -76,8 +76,10 @@ class Client {
|
|
|
76
76
|
var _a, _b;
|
|
77
77
|
if (!event)
|
|
78
78
|
return;
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
if (event.type !== 'message')
|
|
80
|
+
return;
|
|
81
|
+
// browsers do not support ping/pong frame, handle message instead
|
|
82
|
+
// trigger heartbeat keep alive on ping message and respond with pong
|
|
81
83
|
if (event.data === 'ping') {
|
|
82
84
|
this.heartbeat('txs');
|
|
83
85
|
return;
|
|
@@ -86,13 +88,13 @@ class Client {
|
|
|
86
88
|
const message = JSON.parse(event.data.toString());
|
|
87
89
|
// narrow type to ErrorResponse if key `type` exists and forward to correct onError handler
|
|
88
90
|
if ('type' in message) {
|
|
89
|
-
const onErrorHandler = (_a = this.txs[message.subscriptionId]) === null || _a === void 0 ? void 0 : _a.onError;
|
|
91
|
+
const onErrorHandler = (_a = this.txs[message.subscriptionId || subscriptionId]) === null || _a === void 0 ? void 0 : _a.onError;
|
|
90
92
|
onErrorHandler && onErrorHandler(message);
|
|
91
93
|
return;
|
|
92
94
|
}
|
|
93
95
|
// forward the transaction message to the correct onMessage handler
|
|
94
|
-
const onMessageHandler = (_b = this.txs[message.subscriptionId]) === null || _b === void 0 ? void 0 : _b.onMessage;
|
|
95
|
-
onMessageHandler && onMessageHandler(message
|
|
96
|
+
const onMessageHandler = (_b = this.txs[message.subscriptionId || subscriptionId]) === null || _b === void 0 ? void 0 : _b.onMessage;
|
|
97
|
+
onMessageHandler && onMessageHandler(message);
|
|
96
98
|
}
|
|
97
99
|
catch (err) {
|
|
98
100
|
console.log(`failed to handle onmessage event: ${JSON.stringify(event)}: ${err}`);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kEAAqC;AAsBrC,MAAa,MAAM;IAMjB,YAAY,GAAW;QAFf,QAAG,GAAyC,EAAE,CAAA;QAGpD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QAEd,IAAI,CAAC,WAAW,GAAG;YACjB,GAAG,EAAE,SAAS;SACf,CAAA;IACH,CAAC;IAEO,SAAS,CAAC,KAAa;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAC1C,IAAI,CAAC,UAAU;YAAE,OAAM;QAEvB,UAAU,CAAC,WAAW,IAAI,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAC9D,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,GAAG,IAAI,CAAC,CAAA;IACjF,CAAC;IAEO,MAAM,CAAC,KAAa,EAAE,OAAiC;QAC7D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACrB,OAAO,CAAC,IAAI,CAAC,CAAA;IACf,CAAC;IAED;;;;;;;;;;;OAWG;IACG,YAAY,CAChB,cAAsB,EACtB,IAAkB,EAClB,SAAmD,EACnD,OAAsC;;YAEtC,uFAAuF;YACvF,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;YAElE,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;gBACxB,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,KAAK,CAAC,EAAE;oBAC5C,8CAA8C;oBAC9C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAoB,CAAC,CAAC,CAAA;iBAC9G;qBAAM;oBACL,yFAAyF;oBACzF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAA;oBAC7C,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,GAAG,OAAO;wBACrC,CAAC,iCAAM,OAAO,KAAE,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAChF,CAAC,CAAC,IAAI,CAAA;iBACT;gBACD,OAAM;aACP;YAED,MAAM,EAAE,GAAG,IAAI,uBAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAClC,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,CAAA;YAE7B,8DAA8D;YAC9D,EAAE,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;gBACrB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;oBACjE,OAAO,IAAI,OAAO,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;gBAC/E,CAAC,CAAC,CAAA;YACJ,CAAC,CAAA;YAED,mCAAmC;YACnC,EAAE,CAAC,OAAO,GAAG,GAAG,EAAE,WAAC,OAAA,CAAA,MAAA,IAAI,CAAC,WAAW,CAAC,GAAG,0CAAE,WAAW,KAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA,EAAA,CAAA;YAEtG,EAAE,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;;gBACvB,IAAI,CAAC,KAAK;oBAAE,OAAM;gBAClB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;oBAAE,OAAM;gBAEpC,kEAAkE;gBAClE,qEAAqE;gBACrE,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;oBACzB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;oBACrB,OAAM;iBACP;gBAED,IAAI;oBACF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAA0C,CAAA;oBAE1F,2FAA2F;oBAC3F,IAAI,MAAM,IAAI,OAAO,EAAE;wBACrB,MAAM,cAAc,GAAG,MAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,cAAc,CAAC,0CAAE,OAAO,CAAA;wBAClF,cAAc,IAAI,cAAc,CAAC,OAAO,CAAC,CAAA;wBACzC,OAAM;qBACP;oBAED,mEAAmE;oBACnE,MAAM,gBAAgB,GAAG,MAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,cAAc,CAAC,0CAAE,SAAS,CAAA;oBACtF,gBAAgB,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAA;iBAC9C;gBAAC,OAAO,GAAG,EAAE;oBACZ,OAAO,CAAC,GAAG,CAAC,qCAAqC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAA;iBAClF;YACH,CAAC,CAAA;YAED,kCAAkC;YAClC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC5B,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE;oBACf,kBAAkB;oBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;oBAE3B,wCAAwC;oBACxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;wBAC3C,IAAI,CAAC,IAAI;4BAAE,OAAM;wBACjB,MAAM,OAAO,GAAmB,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;wBAC7E,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;wBAChC,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAA;oBACtC,CAAC,CAAC,CAAA;oBAEF,oCAAoC;oBACpC,MAAM,OAAO,GAAmB,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;oBAC7E,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;gBAClC,CAAC,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;KAAA;IAED;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,cAAuB,EAAE,IAAmB;;QACzD,IAAI,CAAA,MAAA,IAAI,CAAC,WAAW,CAAC,GAAG,0CAAE,EAAE,CAAC,UAAU,MAAK,uBAAS,CAAC,IAAI;YAAE,OAAM;QAClE,IAAI,CAAC,cAAc;YAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;QAClC,IAAI,cAAc,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,CAAC,MAAM,CAAA;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAE9E,MAAM,OAAO,GAAmB;YAC9B,cAAc,EAAE,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE;YACpC,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,EAAE,EAAE;SACzD,CAAA;QAED,MAAA,IAAI,CAAC,WAAW,CAAC,GAAG,0CAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IACxD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAc;QAClB,MAAM,QAAQ,GAAG,GAAG,EAAE;;YACpB,IAAI,CAAC,cAAc,EAAE,CAAA;YACrB,MAAA,IAAI,CAAC,WAAW,CAAC,GAAG,0CAAE,EAAE,CAAC,KAAK,EAAE,CAAA;QAClC,CAAC,CAAA;QAED,gDAAgD;QAChD,IAAI,CAAC,KAAK,EAAE;YACV,QAAQ,EAAE,CAAA;YACV,OAAM;SACP;QAED,QAAQ,KAAK,EAAE;YACb,KAAK,KAAK;gBACR,QAAQ,EAAE,CAAA;gBACV,MAAK;YACP;gBACE,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,gBAAgB,CAAC,CAAA;SAC/C;IACH,CAAC;CACF;AAnLD,wBAmLC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapeshiftoss/unchained-client",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.1.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"source": "src/index.ts",
|
|
@@ -11,19 +11,23 @@
|
|
|
11
11
|
"scripts": {
|
|
12
12
|
"build": "yarn generate && tsc",
|
|
13
13
|
"clean": "rm -rf dist node_modules src/generated",
|
|
14
|
-
"generate": "JAVA_OPTS='-Dlog.level=
|
|
14
|
+
"generate": "JAVA_OPTS='-Dlog.level=error' openapi-generator-cli generate",
|
|
15
15
|
"watch": "nodemon"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@shapeshiftoss/blockbook": "^
|
|
19
|
-
"@shapeshiftoss/
|
|
18
|
+
"@shapeshiftoss/blockbook": "^6.1.0",
|
|
19
|
+
"@shapeshiftoss/caip": "^2.0.0",
|
|
20
|
+
"@shapeshiftoss/types": "^2.0.0",
|
|
21
|
+
"@yfi/sdk": "^1.0.30",
|
|
22
|
+
"bignumber.js": "^9.0.1",
|
|
23
|
+
"ethers": "^5.5.3",
|
|
20
24
|
"isomorphic-ws": "^4.0.1",
|
|
21
25
|
"ws": "^8.3.0"
|
|
22
26
|
},
|
|
23
27
|
"devDependencies": {
|
|
24
28
|
"@openapitools/openapi-generator-cli": "^2.4.4",
|
|
25
|
-
"@shapeshiftoss/common-api": "^
|
|
29
|
+
"@shapeshiftoss/common-api": "^6.1.0",
|
|
26
30
|
"@types/ws": "^8.2.1"
|
|
27
31
|
},
|
|
28
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "9be40094f9bc26535b4019f17af5a2bf83ec604c"
|
|
29
33
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/bitcoin/websocket.ts"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,eAAe,CAAA;AACrC,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACpG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAErE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,SAAS,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAC,OAAO,CAAA;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,YAAY,GAAG,SAAS,CAAA;IAC9B,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IACzC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAA;CACvC;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwC;IAEpE,OAAO,CAAC,GAAG,CAAgC;gBAE/B,GAAG,EAAE,MAAM;IAQvB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,MAAM;IAKd;;;;;;;;;;;OAWG;IACG,YAAY,CAChB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,EACzC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,GACrC,OAAO,CAAC,IAAI,CAAC;IAgFhB;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI;IAclE;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;CAoB5B"}
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.Client = void 0;
|
|
16
|
-
const isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
|
|
17
|
-
class Client {
|
|
18
|
-
constructor(url) {
|
|
19
|
-
this.txs = {};
|
|
20
|
-
this.url = url;
|
|
21
|
-
this.connections = {
|
|
22
|
-
txs: undefined,
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
heartbeat(topic) {
|
|
26
|
-
const connection = this.connections[topic];
|
|
27
|
-
if (!connection)
|
|
28
|
-
return;
|
|
29
|
-
connection.pingTimeout && clearTimeout(connection.pingTimeout);
|
|
30
|
-
connection.pingTimeout = setTimeout(() => connection === null || connection === void 0 ? void 0 : connection.ws.close(), 10000 + 5000);
|
|
31
|
-
}
|
|
32
|
-
onOpen(topic, resolve) {
|
|
33
|
-
this.heartbeat(topic);
|
|
34
|
-
resolve(true);
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Subscribe to transaction history and updates for newly confirmed and pending transactions.
|
|
38
|
-
*
|
|
39
|
-
* - Subsequent calls to `subscribeTxs` for the same `subscriptionId` will add additional addresses to be watched.
|
|
40
|
-
*
|
|
41
|
-
* @param subscriptionId unique id for grouping of addresses
|
|
42
|
-
* @param data details for subscribe
|
|
43
|
-
* @param data.topic specifies which topic to subscribe to
|
|
44
|
-
* @param data.addresses list of addresses to subscribe to
|
|
45
|
-
* @param onMessage handler for all transaction messages associated with `subscriptionId`
|
|
46
|
-
* @param [onError] optional handler for any error messages associated with `subscriptionId`
|
|
47
|
-
*/
|
|
48
|
-
subscribeTxs(subscriptionId, data, onMessage, onError) {
|
|
49
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
-
// keep track of the onMessage and onError handlers associated with each subscriptionId
|
|
51
|
-
this.txs[subscriptionId] = { onMessage, onError, data: undefined };
|
|
52
|
-
if (this.connections.txs) {
|
|
53
|
-
if (this.connections.txs.ws.readyState === 1) {
|
|
54
|
-
// subscribe if connection exists and is ready
|
|
55
|
-
this.connections.txs.ws.send(JSON.stringify({ subscriptionId, method: 'subscribe', data }));
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
// queue up unique addresses for subscriptions if connection exists, but is not ready yet
|
|
59
|
-
const txsData = this.txs[subscriptionId].data;
|
|
60
|
-
this.txs[subscriptionId].data = txsData
|
|
61
|
-
? Object.assign(Object.assign({}, txsData), { addresses: [...new Set(...txsData.addresses, ...data.addresses)] }) : data;
|
|
62
|
-
}
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
const ws = new isomorphic_ws_1.default(this.url);
|
|
66
|
-
this.connections.txs = { ws };
|
|
67
|
-
// send connection errors to all subscription onError handlers
|
|
68
|
-
ws.onerror = (event) => {
|
|
69
|
-
Object.entries(this.txs).forEach(([subscriptionId, { onError }]) => {
|
|
70
|
-
onError && onError({ subscriptionId, type: 'error', message: event.message });
|
|
71
|
-
});
|
|
72
|
-
};
|
|
73
|
-
// clear heartbeat timeout on close
|
|
74
|
-
ws.onclose = () => { var _a; return ((_a = this.connections.txs) === null || _a === void 0 ? void 0 : _a.pingTimeout) && clearTimeout(this.connections.txs.pingTimeout); };
|
|
75
|
-
ws.onmessage = (event) => {
|
|
76
|
-
var _a, _b;
|
|
77
|
-
if (!event)
|
|
78
|
-
return;
|
|
79
|
-
// TODO: check event.type and handle non desired messages separately (noop)
|
|
80
|
-
// trigger heartbeat keep alive on ping event
|
|
81
|
-
if (event.data === 'ping') {
|
|
82
|
-
this.heartbeat('txs');
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
try {
|
|
86
|
-
const message = JSON.parse(event.data.toString());
|
|
87
|
-
// narrow type to ErrorResponse if key `type` exists and forward to correct onError handler
|
|
88
|
-
if ('type' in message) {
|
|
89
|
-
const onErrorHandler = (_a = this.txs[message.subscriptionId]) === null || _a === void 0 ? void 0 : _a.onError;
|
|
90
|
-
onErrorHandler && onErrorHandler(message);
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
// forward the transaction message to the correct onMessage handler
|
|
94
|
-
const onMessageHandler = (_b = this.txs[message.subscriptionId]) === null || _b === void 0 ? void 0 : _b.onMessage;
|
|
95
|
-
onMessageHandler && onMessageHandler(message.data);
|
|
96
|
-
}
|
|
97
|
-
catch (err) {
|
|
98
|
-
console.log(`failed to handle onmessage event: ${JSON.stringify(event)}: ${err}`);
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
// wait for the connection to open
|
|
102
|
-
yield new Promise((resolve) => {
|
|
103
|
-
ws.onopen = () => {
|
|
104
|
-
// start heartbeat
|
|
105
|
-
this.onOpen('txs', resolve);
|
|
106
|
-
// subscribe to all queued subscriptions
|
|
107
|
-
Object.values(this.txs).forEach(({ data }) => {
|
|
108
|
-
if (!data)
|
|
109
|
-
return;
|
|
110
|
-
const payload = { subscriptionId, method: 'subscribe', data };
|
|
111
|
-
ws.send(JSON.stringify(payload));
|
|
112
|
-
delete this.txs[subscriptionId].data;
|
|
113
|
-
});
|
|
114
|
-
// subscribe to initial subscription
|
|
115
|
-
const payload = { subscriptionId, method: 'subscribe', data };
|
|
116
|
-
ws.send(JSON.stringify(payload));
|
|
117
|
-
};
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Unsubscribe from transaction history and updates for newly confirmed and pending transactions.
|
|
123
|
-
*
|
|
124
|
-
* - If `subscriptionId` is provided, any provided addresses will be unsubscribed from.
|
|
125
|
-
* If no addresses are provided, the subscription will be unsubscribed from.
|
|
126
|
-
*
|
|
127
|
-
* - If `subscriptionId` is not provided, all subscriptions will be unsubscribed from.
|
|
128
|
-
*
|
|
129
|
-
* @param [subscriptionId] unique identifier to unsubscribe from
|
|
130
|
-
* @param [data] details for unsubscribe
|
|
131
|
-
* @param data.topic specifies which topic to unsubscribe from
|
|
132
|
-
* @param data.addresses list of addresses to unsubscribe from
|
|
133
|
-
*/
|
|
134
|
-
unsubscribeTxs(subscriptionId, data) {
|
|
135
|
-
var _a, _b, _c;
|
|
136
|
-
if (((_a = this.connections.txs) === null || _a === void 0 ? void 0 : _a.ws.readyState) !== isomorphic_ws_1.default.OPEN)
|
|
137
|
-
return;
|
|
138
|
-
if (!subscriptionId)
|
|
139
|
-
this.txs = {};
|
|
140
|
-
if (subscriptionId && !(data === null || data === void 0 ? void 0 : data.addresses.length))
|
|
141
|
-
delete this.txs[subscriptionId];
|
|
142
|
-
const payload = {
|
|
143
|
-
subscriptionId: subscriptionId !== null && subscriptionId !== void 0 ? subscriptionId : '',
|
|
144
|
-
method: 'unsubscribe',
|
|
145
|
-
data: { topic: 'txs', addresses: (_b = data === null || data === void 0 ? void 0 : data.addresses) !== null && _b !== void 0 ? _b : [] },
|
|
146
|
-
};
|
|
147
|
-
(_c = this.connections.txs) === null || _c === void 0 ? void 0 : _c.ws.send(JSON.stringify(payload));
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Close and unsubscribe from any subscriptions
|
|
151
|
-
*
|
|
152
|
-
* - If no topic is provided, all supported topics will be closed and unsubscribed from
|
|
153
|
-
*
|
|
154
|
-
* @param [topic] specifies which topic to close and unsubscribe from
|
|
155
|
-
*/
|
|
156
|
-
close(topic) {
|
|
157
|
-
const closeTxs = () => {
|
|
158
|
-
var _a;
|
|
159
|
-
this.unsubscribeTxs();
|
|
160
|
-
(_a = this.connections.txs) === null || _a === void 0 ? void 0 : _a.ws.close();
|
|
161
|
-
};
|
|
162
|
-
// close all connections if no topic is provided
|
|
163
|
-
if (!topic) {
|
|
164
|
-
closeTxs();
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
switch (topic) {
|
|
168
|
-
case 'txs':
|
|
169
|
-
closeTxs();
|
|
170
|
-
break;
|
|
171
|
-
default:
|
|
172
|
-
console.log(`topic: ${topic} not supported`);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
exports.Client = Client;
|
|
177
|
-
//# sourceMappingURL=websocket.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/bitcoin/websocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import WebSocket from 'isomorphic-ws';
|
|
3
|
-
import type { ErrorResponse, Topics, TxsTopicData } from '@shapeshiftoss/common-api';
|
|
4
|
-
import type { SequencedTx } from '@shapeshiftoss/unchained-tx-parser';
|
|
5
|
-
export interface Connection {
|
|
6
|
-
ws: WebSocket;
|
|
7
|
-
pingTimeout?: NodeJS.Timeout;
|
|
8
|
-
}
|
|
9
|
-
export interface TransactionMessage {
|
|
10
|
-
subscriptionId: string;
|
|
11
|
-
data: SequencedTx;
|
|
12
|
-
}
|
|
13
|
-
export interface TxsParams {
|
|
14
|
-
data: TxsTopicData | undefined;
|
|
15
|
-
onMessage: (message: SequencedTx) => void;
|
|
16
|
-
onError?: (err: ErrorResponse) => void;
|
|
17
|
-
}
|
|
18
|
-
export declare class Client {
|
|
19
|
-
private readonly url;
|
|
20
|
-
private readonly connections;
|
|
21
|
-
private txs;
|
|
22
|
-
constructor(url: string);
|
|
23
|
-
private heartbeat;
|
|
24
|
-
private onOpen;
|
|
25
|
-
/**
|
|
26
|
-
* Subscribe to transaction history and updates for newly confirmed and pending transactions.
|
|
27
|
-
*
|
|
28
|
-
* - Subsequent calls to `subscribeTxs` for the same `subscriptionId` will add additional addresses to be watched.
|
|
29
|
-
*
|
|
30
|
-
* @param subscriptionId unique id for grouping of addresses
|
|
31
|
-
* @param data details for subscribe
|
|
32
|
-
* @param data.topic specifies which topic to subscribe to
|
|
33
|
-
* @param data.addresses list of addresses to subscribe to
|
|
34
|
-
* @param onMessage handler for all transaction messages associated with `subscriptionId`
|
|
35
|
-
* @param [onError] optional handler for any error messages associated with `subscriptionId`
|
|
36
|
-
*/
|
|
37
|
-
subscribeTxs(subscriptionId: string, data: TxsTopicData, onMessage: (message: SequencedTx) => void, onError?: (err: ErrorResponse) => void): Promise<void>;
|
|
38
|
-
/**
|
|
39
|
-
* Unsubscribe from transaction history and updates for newly confirmed and pending transactions.
|
|
40
|
-
*
|
|
41
|
-
* - If `subscriptionId` is provided, any provided addresses will be unsubscribed from.
|
|
42
|
-
* If no addresses are provided, the subscription will be unsubscribed from.
|
|
43
|
-
*
|
|
44
|
-
* - If `subscriptionId` is not provided, all subscriptions will be unsubscribed from.
|
|
45
|
-
*
|
|
46
|
-
* @param [subscriptionId] unique identifier to unsubscribe from
|
|
47
|
-
* @param [data] details for unsubscribe
|
|
48
|
-
* @param data.topic specifies which topic to unsubscribe from
|
|
49
|
-
* @param data.addresses list of addresses to unsubscribe from
|
|
50
|
-
*/
|
|
51
|
-
unsubscribeTxs(subscriptionId?: string, data?: TxsTopicData): void;
|
|
52
|
-
/**
|
|
53
|
-
* Close and unsubscribe from any subscriptions
|
|
54
|
-
*
|
|
55
|
-
* - If no topic is provided, all supported topics will be closed and unsubscribed from
|
|
56
|
-
*
|
|
57
|
-
* @param [topic] specifies which topic to close and unsubscribe from
|
|
58
|
-
*/
|
|
59
|
-
close(topic?: Topics): void;
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=websocket.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/ethereum/websocket.ts"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,eAAe,CAAA;AACrC,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACpG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAErE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,SAAS,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAC,OAAO,CAAA;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,YAAY,GAAG,SAAS,CAAA;IAC9B,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IACzC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAA;CACvC;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwC;IAEpE,OAAO,CAAC,GAAG,CAAgC;gBAE/B,GAAG,EAAE,MAAM;IAQvB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,MAAM;IAKd;;;;;;;;;;;OAWG;IACG,YAAY,CAChB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,EACzC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,GACrC,OAAO,CAAC,IAAI,CAAC;IAiFhB;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI;IAclE;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;CAoB5B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/ethereum/websocket.ts"],"names":[],"mappings":"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"}
|