@shapeshiftoss/unchained-client 5.2.0 → 6.0.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 +8 -8
- 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 +2 -2
- package/dist/generated/bitcoin/common.d.ts.map +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 +43 -67
- package/dist/generated/cosmos/api.d.ts.map +1 -1
- package/dist/generated/cosmos/api.js +14 -14
- package/dist/generated/cosmos/api.js.map +1 -1
- package/dist/generated/cosmos/common.d.ts +1 -1
- package/dist/generated/cosmos/common.d.ts.map +1 -1
- package/dist/generated/ethereum/api.d.ts +7 -7
- 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 +2 -2
- package/dist/generated/ethereum/common.d.ts.map +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 +3150 -261
- 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} +9 -8
- 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/README.md
CHANGED
|
@@ -14,13 +14,41 @@ Using yarn:
|
|
|
14
14
|
yarn add @shapeshiftoss/unchained-client
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
+
## Resources
|
|
18
|
+
|
|
19
|
+
- [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md) naming conventions used for `chainId`
|
|
20
|
+
- [CAIP-19](https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-19.md) naming conventions used for `assetId`
|
|
21
|
+
|
|
17
22
|
## Usage
|
|
18
23
|
|
|
19
24
|
```
|
|
20
|
-
import
|
|
25
|
+
import * as unchained from '@shapeshiftoss/unchained-client'
|
|
26
|
+
|
|
27
|
+
const address = 'cosmos1t5u0jfg3ljsjrh2m9e47d4ny2hea7eehxrzdgd'
|
|
28
|
+
|
|
29
|
+
// configuration for the api client
|
|
30
|
+
const config = new unchained.cosmos.Configuration({ basePath: 'https://dev-api.cosmos.shapeshift.com' })
|
|
31
|
+
|
|
32
|
+
// create new instance of the api client
|
|
33
|
+
const apiClient = new unchained.cosmos.V1Api(config)
|
|
34
|
+
|
|
35
|
+
// create new instance of the ws client
|
|
36
|
+
const wsClient = new unchained.ws.Client<unchained.cosmos.Tx>('wss://dev-api.cosmos.shapeshift.com')
|
|
37
|
+
|
|
38
|
+
// create new instance of the transaction parser
|
|
39
|
+
// chainId is in the format of [Caip2](https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md)
|
|
40
|
+
const parser = new unchained.cosmos.TransactionParser({ chainId: 'cosmos:cosmoshub-4' })
|
|
21
41
|
|
|
22
|
-
|
|
23
|
-
const
|
|
42
|
+
// example api client request
|
|
43
|
+
const { data } = await apiClient.getBalance({ pubkey: address })
|
|
24
44
|
|
|
25
|
-
|
|
45
|
+
// example websocket subscription for new transaction and transaction parsing
|
|
46
|
+
await this.providers.ws.subscribeTxs(
|
|
47
|
+
'test',
|
|
48
|
+
{ topic: 'txs', addresses: [address] },
|
|
49
|
+
async (msg) => {
|
|
50
|
+
const tx = await parser.parse(msg.data, msg.address)
|
|
51
|
+
},
|
|
52
|
+
(err) => console.warn(err)
|
|
53
|
+
)
|
|
26
54
|
```
|
package/dist/bitcoin/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bitcoin/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bitcoin/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA"}
|
package/dist/bitcoin/index.js
CHANGED
|
@@ -6,20 +6,11 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
6
6
|
if (k2 === undefined) k2 = k;
|
|
7
7
|
o[k2] = m[k];
|
|
8
8
|
}));
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
11
|
};
|
|
21
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
13
|
+
__exportStar(require("../generated/bitcoin"), exports);
|
|
14
|
+
__exportStar(require("./parser"), exports);
|
|
15
|
+
__exportStar(require("./types"), exports);
|
|
25
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bitcoin/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bitcoin/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAoC;AACpC,2CAAwB;AACxB,0CAAuB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Tx as BlockbookTx } from '@shapeshiftoss/blockbook';
|
|
2
|
+
import { Tx as ParsedTx } from '../../types';
|
|
3
|
+
import { Network } from '../types';
|
|
4
|
+
export interface TransactionParserArgs {
|
|
5
|
+
network?: Network;
|
|
6
|
+
rpcUrl: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class TransactionParser {
|
|
9
|
+
network: Network;
|
|
10
|
+
constructor(args: TransactionParserArgs);
|
|
11
|
+
parse(tx: BlockbookTx, address: string): Promise<ParsedTx>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bitcoin/parser/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAG5D,OAAO,EAAE,EAAE,IAAI,QAAQ,EAAwB,MAAM,aAAa,CAAA;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAGlC,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,iBAAiB;IAC5B,OAAO,EAAE,OAAO,CAAA;gBAEJ,IAAI,EAAE,qBAAqB;IAIjC,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;CA+DjE"}
|
|
@@ -0,0 +1,74 @@
|
|
|
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.TransactionParser = void 0;
|
|
13
|
+
const bignumber_js_1 = require("bignumber.js");
|
|
14
|
+
const caip_1 = require("@shapeshiftoss/caip");
|
|
15
|
+
const types_1 = require("@shapeshiftoss/types");
|
|
16
|
+
const types_2 = require("../../types");
|
|
17
|
+
const utils_1 = require("../../utils");
|
|
18
|
+
const utils_2 = require("./utils");
|
|
19
|
+
class TransactionParser {
|
|
20
|
+
constructor(args) {
|
|
21
|
+
var _a;
|
|
22
|
+
this.network = (_a = args.network) !== null && _a !== void 0 ? _a : 'mainnet';
|
|
23
|
+
}
|
|
24
|
+
parse(tx, address) {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
const caip19Bitcoin = caip_1.caip19.toCAIP19({
|
|
27
|
+
chain: types_1.ChainTypes.Bitcoin,
|
|
28
|
+
network: utils_2.toNetworkType(this.network),
|
|
29
|
+
assetNamespace: caip_1.AssetNamespace.Slip44,
|
|
30
|
+
assetReference: caip_1.AssetReference.Bitcoin,
|
|
31
|
+
});
|
|
32
|
+
const parsedTx = {
|
|
33
|
+
address,
|
|
34
|
+
blockHash: tx.blockHash,
|
|
35
|
+
blockHeight: tx.blockHeight,
|
|
36
|
+
blockTime: tx.blockTime,
|
|
37
|
+
caip2: caip_1.caip2.toCAIP2({ chain: types_1.ChainTypes.Bitcoin, network: utils_2.toNetworkType(this.network) }),
|
|
38
|
+
confirmations: tx.confirmations,
|
|
39
|
+
status: tx.confirmations > 0 ? types_2.Status.Confirmed : types_2.Status.Pending,
|
|
40
|
+
transfers: [],
|
|
41
|
+
txid: tx.txid,
|
|
42
|
+
value: tx.value,
|
|
43
|
+
};
|
|
44
|
+
tx.vin.forEach((vin) => {
|
|
45
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
46
|
+
if (vin.isAddress === true && ((_a = vin.addresses) === null || _a === void 0 ? void 0 : _a.includes(address))) {
|
|
47
|
+
// send amount
|
|
48
|
+
const sendValue = new bignumber_js_1.BigNumber((_b = vin.value) !== null && _b !== void 0 ? _b : 0);
|
|
49
|
+
if (sendValue.gt(0)) {
|
|
50
|
+
parsedTx.transfers = utils_1.aggregateTransfer(parsedTx.transfers, types_2.TransferType.Send, caip19Bitcoin, (_d = (_c = vin.addresses) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : '', (_f = (_e = tx.vout[0].addresses) === null || _e === void 0 ? void 0 : _e[0]) !== null && _f !== void 0 ? _f : '', sendValue.toString(10));
|
|
51
|
+
}
|
|
52
|
+
// network fee
|
|
53
|
+
const fees = new bignumber_js_1.BigNumber((_g = tx.fees) !== null && _g !== void 0 ? _g : 0);
|
|
54
|
+
if (fees.gt(0)) {
|
|
55
|
+
parsedTx.fee = { caip19: caip19Bitcoin, value: fees.toString(10) };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
tx.vout.forEach((vout) => {
|
|
60
|
+
var _a, _b, _c, _d, _e, _f;
|
|
61
|
+
if (vout.isAddress === true && ((_a = vout.addresses) === null || _a === void 0 ? void 0 : _a.includes(address))) {
|
|
62
|
+
// receive amount
|
|
63
|
+
const receiveValue = new bignumber_js_1.BigNumber((_b = vout.value) !== null && _b !== void 0 ? _b : 0);
|
|
64
|
+
if (receiveValue.gt(0)) {
|
|
65
|
+
parsedTx.transfers = utils_1.aggregateTransfer(parsedTx.transfers, types_2.TransferType.Receive, caip19Bitcoin, (_d = (_c = tx.vin[0].addresses) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : '', (_f = (_e = vout.addresses) === null || _e === void 0 ? void 0 : _e[0]) !== null && _f !== void 0 ? _f : '', receiveValue.toString(10));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
return parsedTx;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.TransactionParser = TransactionParser;
|
|
74
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bitcoin/parser/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/bitcoin/parser/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAElC,eAAO,MAAM,aAAa,YAAa,OAAO,KAAG,YAShD,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toNetworkType = void 0;
|
|
4
|
+
const types_1 = require("@shapeshiftoss/types");
|
|
5
|
+
const toNetworkType = (network) => {
|
|
6
|
+
switch (network) {
|
|
7
|
+
case 'mainnet':
|
|
8
|
+
return types_1.NetworkTypes.MAINNET;
|
|
9
|
+
case 'testnet':
|
|
10
|
+
return types_1.NetworkTypes.TESTNET;
|
|
11
|
+
default:
|
|
12
|
+
throw new Error('unsupported network');
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
exports.toNetworkType = toNetworkType;
|
|
16
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/bitcoin/parser/utils.ts"],"names":[],"mappings":";;;AAAA,gDAAmD;AAG5C,MAAM,aAAa,GAAG,CAAC,OAAgB,EAAgB,EAAE;IAC9D,QAAQ,OAAO,EAAE;QACf,KAAK,SAAS;YACZ,OAAO,oBAAY,CAAC,OAAO,CAAA;QAC7B,KAAK,SAAS;YACZ,OAAO,oBAAY,CAAC,OAAO,CAAA;QAC7B;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;KACzC;AACH,CAAC,CAAA;AATY,QAAA,aAAa,iBASzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bitcoin/types.ts"],"names":[],"mappings":"AAAA,oBAAY,OAAO,GAAG,SAAS,GAAG,SAAS,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/bitcoin/types.ts"],"names":[],"mappings":""}
|
package/dist/cosmos/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cosmos/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cosmos/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,UAAU,CAAA"}
|
package/dist/cosmos/index.js
CHANGED
|
@@ -6,19 +6,10 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
6
6
|
if (k2 === undefined) k2 = k;
|
|
7
7
|
o[k2] = m[k];
|
|
8
8
|
}));
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
11
|
};
|
|
21
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports
|
|
23
|
-
|
|
13
|
+
__exportStar(require("../generated/cosmos"), exports);
|
|
14
|
+
__exportStar(require("./parser"), exports);
|
|
24
15
|
//# sourceMappingURL=index.js.map
|
package/dist/cosmos/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cosmos/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cosmos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAAmC;AACnC,2CAAwB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CAIP2, CAIP19 } from '@shapeshiftoss/caip';
|
|
2
|
+
import { Tx as ParsedTx } from '../../types';
|
|
3
|
+
import { Tx as CosmosTx } from '../index';
|
|
4
|
+
export interface TransactionParserArgs {
|
|
5
|
+
chainId: CAIP2;
|
|
6
|
+
}
|
|
7
|
+
export declare class TransactionParser {
|
|
8
|
+
chainId: CAIP2;
|
|
9
|
+
assetId: CAIP19;
|
|
10
|
+
constructor(args: TransactionParserArgs);
|
|
11
|
+
parse(tx: CosmosTx, address: string): Promise<ParsedTx>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cosmos/parser/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAiD,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAClG,OAAO,EAAE,EAAE,IAAI,QAAQ,EAAwB,MAAM,aAAa,CAAA;AAElE,OAAO,EAAE,EAAE,IAAI,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEzC,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,KAAK,CAAA;CACf;AAED,qBAAa,iBAAiB;IAC5B,OAAO,EAAE,KAAK,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;gBAEH,IAAI,EAAE,qBAAqB;IAUjC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;CA2D9D"}
|
|
@@ -0,0 +1,67 @@
|
|
|
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.TransactionParser = void 0;
|
|
13
|
+
const bignumber_js_1 = require("bignumber.js");
|
|
14
|
+
const caip_1 = require("@shapeshiftoss/caip");
|
|
15
|
+
const types_1 = require("../../types");
|
|
16
|
+
const utils_1 = require("../../utils");
|
|
17
|
+
class TransactionParser {
|
|
18
|
+
constructor(args) {
|
|
19
|
+
this.chainId = args.chainId;
|
|
20
|
+
this.assetId = caip_1.caip19.toCAIP19(Object.assign(Object.assign({}, caip_1.caip2.fromCAIP2(this.chainId)), { assetNamespace: caip_1.AssetNamespace.Slip44, assetReference: caip_1.AssetReference.Cosmos }));
|
|
21
|
+
}
|
|
22
|
+
parse(tx, address) {
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
const blockHeight = Number(tx.blockHeight);
|
|
25
|
+
const blockTime = Number(tx.timestamp);
|
|
26
|
+
const parsedTx = {
|
|
27
|
+
address,
|
|
28
|
+
blockHash: tx.blockHash,
|
|
29
|
+
blockHeight: isNaN(blockHeight) ? -1 : blockHeight,
|
|
30
|
+
blockTime: isNaN(blockTime) ? -1 : blockTime,
|
|
31
|
+
caip2: this.chainId,
|
|
32
|
+
confirmations: -1,
|
|
33
|
+
status: types_1.Status.Confirmed,
|
|
34
|
+
transfers: [],
|
|
35
|
+
txid: tx.txid,
|
|
36
|
+
value: tx.value,
|
|
37
|
+
};
|
|
38
|
+
// messages make best attempt to track where value is transferring to for a variety of tx types
|
|
39
|
+
// logs provide more specific information if needed as more complex tx types are added
|
|
40
|
+
tx.messages.forEach((msg) => {
|
|
41
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
42
|
+
if (msg.from === address) {
|
|
43
|
+
// send amount
|
|
44
|
+
const sendValue = new bignumber_js_1.BigNumber((_b = (_a = msg.value) === null || _a === void 0 ? void 0 : _a.amount) !== null && _b !== void 0 ? _b : 0);
|
|
45
|
+
if (sendValue.gt(0)) {
|
|
46
|
+
parsedTx.transfers = utils_1.aggregateTransfer(parsedTx.transfers, types_1.TransferType.Send, this.assetId, (_c = msg.from) !== null && _c !== void 0 ? _c : '', (_d = msg.to) !== null && _d !== void 0 ? _d : '', sendValue.toString(10));
|
|
47
|
+
}
|
|
48
|
+
// network fee
|
|
49
|
+
const fees = new bignumber_js_1.BigNumber(tx.fee.amount);
|
|
50
|
+
if (fees.gt(0)) {
|
|
51
|
+
parsedTx.fee = { caip19: this.assetId, value: fees.toString(10) };
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (msg.to === address) {
|
|
55
|
+
// receive amount
|
|
56
|
+
const receiveValue = new bignumber_js_1.BigNumber((_f = (_e = msg.value) === null || _e === void 0 ? void 0 : _e.amount) !== null && _f !== void 0 ? _f : 0);
|
|
57
|
+
if (receiveValue.gt(0)) {
|
|
58
|
+
parsedTx.transfers = utils_1.aggregateTransfer(parsedTx.transfers, types_1.TransferType.Receive, this.assetId, (_g = msg.from) !== null && _g !== void 0 ? _g : '', (_h = msg.to) !== null && _h !== void 0 ? _h : '', receiveValue.toString(10));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
return parsedTx;
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.TransactionParser = TransactionParser;
|
|
67
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cosmos/parser/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ethereum/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ethereum/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ethereum/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA"}
|
package/dist/ethereum/index.js
CHANGED
|
@@ -6,20 +6,11 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
6
6
|
if (k2 === undefined) k2 = k;
|
|
7
7
|
o[k2] = m[k];
|
|
8
8
|
}));
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
11
|
};
|
|
21
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
13
|
+
__exportStar(require("../generated/ethereum"), exports);
|
|
14
|
+
__exportStar(require("./parser"), exports);
|
|
15
|
+
__exportStar(require("./types"), exports);
|
|
25
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ethereum/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ethereum/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wDAAqC;AACrC,2CAAwB;AACxB,0CAAuB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"erc20.d.ts","sourceRoot":"","sources":["../../../../src/ethereum/parser/abi/erc20.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAE/D,QAAA,MAAM,KAAK,EAAE,KAAK,CAAC,YAAY,CA+R9B,CAAA;AAED,eAAe,KAAK,CAAA"}
|