@shapeshiftoss/unchained-client 10.14.10 → 10.15.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/LICENSE.md +21 -0
- package/README.md +2 -2
- package/dist/cjs/.tsbuildinfo +1 -1
- package/dist/cjs/cosmossdk/thorchain/parser/__tests__/thorchain.test.js +1 -1
- package/dist/cjs/cosmossdk/thorchain/parser/rfox.js +1 -1
- package/dist/cjs/evm/arbitrum/parser/index.js +2 -2
- package/dist/cjs/evm/ethereum/parser/__tests__/ethereum.test.js +29 -0
- package/dist/cjs/evm/ethereum/parser/index.js +6 -0
- package/dist/cjs/generated/arbitrum/apis/V1Api.d.ts +1 -14
- package/dist/cjs/generated/arbitrum/apis/V1Api.js +0 -39
- package/dist/cjs/generated/arbitrum/models/index.d.ts +0 -3
- package/dist/cjs/generated/arbitrum/models/index.js +0 -3
- package/dist/cjs/generated/avalanche/apis/V1Api.d.ts +1 -14
- package/dist/cjs/generated/avalanche/apis/V1Api.js +0 -39
- package/dist/cjs/generated/avalanche/models/index.d.ts +0 -3
- package/dist/cjs/generated/avalanche/models/index.js +0 -3
- package/dist/cjs/generated/base/apis/V1Api.d.ts +1 -14
- package/dist/cjs/generated/base/apis/V1Api.js +0 -39
- package/dist/cjs/generated/base/models/index.d.ts +0 -3
- package/dist/cjs/generated/base/models/index.js +0 -3
- package/dist/cjs/generated/bitcoin/models/Address.d.ts +7 -0
- package/dist/cjs/generated/bitcoin/models/Address.js +3 -0
- package/dist/cjs/generated/bitcoincash/models/Address.d.ts +7 -0
- package/dist/cjs/generated/bitcoincash/models/Address.js +3 -0
- package/dist/cjs/generated/bnbsmartchain/apis/V1Api.d.ts +1 -14
- package/dist/cjs/generated/bnbsmartchain/apis/V1Api.js +0 -39
- package/dist/cjs/generated/bnbsmartchain/models/index.d.ts +0 -3
- package/dist/cjs/generated/bnbsmartchain/models/index.js +0 -3
- package/dist/cjs/generated/dogecoin/models/Address.d.ts +7 -0
- package/dist/cjs/generated/dogecoin/models/Address.js +3 -0
- package/dist/cjs/generated/ethereum/apis/V1Api.d.ts +1 -14
- package/dist/cjs/generated/ethereum/apis/V1Api.js +0 -39
- package/dist/cjs/generated/ethereum/models/index.d.ts +0 -3
- package/dist/cjs/generated/ethereum/models/index.js +0 -3
- package/dist/cjs/generated/gnosis/apis/V1Api.d.ts +1 -14
- package/dist/cjs/generated/gnosis/apis/V1Api.js +0 -39
- package/dist/cjs/generated/gnosis/models/index.d.ts +0 -3
- package/dist/cjs/generated/gnosis/models/index.js +0 -3
- package/dist/cjs/generated/litecoin/models/Address.d.ts +7 -0
- package/dist/cjs/generated/litecoin/models/Address.js +3 -0
- package/dist/cjs/generated/mayachain/apis/ProxyApi.d.ts +18 -2
- package/dist/cjs/generated/mayachain/apis/ProxyApi.js +42 -2
- package/dist/cjs/generated/mayachain/apis/V1Api.d.ts +1 -13
- package/dist/cjs/generated/mayachain/apis/V1Api.js +0 -27
- package/dist/cjs/generated/mayachain/models/index.d.ts +0 -2
- package/dist/cjs/generated/mayachain/models/index.js +0 -2
- package/dist/cjs/generated/optimism/apis/V1Api.d.ts +1 -14
- package/dist/cjs/generated/optimism/apis/V1Api.js +0 -39
- package/dist/cjs/generated/optimism/models/index.d.ts +0 -3
- package/dist/cjs/generated/optimism/models/index.js +0 -3
- package/dist/cjs/generated/polygon/apis/V1Api.d.ts +1 -14
- package/dist/cjs/generated/polygon/apis/V1Api.js +0 -39
- package/dist/cjs/generated/polygon/models/index.d.ts +0 -3
- package/dist/cjs/generated/polygon/models/index.js +0 -3
- package/dist/cjs/generated/thorchain/apis/V1Api.d.ts +1 -25
- package/dist/cjs/generated/thorchain/apis/V1Api.js +0 -54
- package/dist/cjs/generated/thorchain/models/index.d.ts +0 -3
- package/dist/cjs/generated/thorchain/models/index.js +0 -3
- package/dist/cjs/generated/zcash/models/Address.d.ts +7 -0
- package/dist/cjs/generated/zcash/models/Address.js +3 -0
- package/dist/cjs/solana/parser/__tests__/solana.test.js +5 -3
- package/dist/cjs/solana/parser/index.js +1 -0
- package/dist/cjs/solana/parser/thorchain.d.ts +9 -0
- package/dist/cjs/solana/parser/thorchain.js +54 -0
- package/dist/cjs/solana/parser/types.d.ts +4 -1
- package/dist/cjs/tron/__tests__/api.test.d.ts +1 -0
- package/dist/cjs/tron/__tests__/api.test.js +300 -0
- package/dist/cjs/tron/api.d.ts +38 -15
- package/dist/cjs/tron/api.js +241 -84
- package/dist/cjs/tron/types.d.ts +4 -0
- package/dist/esm/.tsbuildinfo +1 -1
- package/dist/esm/cosmossdk/thorchain/parser/__tests__/thorchain.test.js +2 -2
- package/dist/esm/cosmossdk/thorchain/parser/rfox.js +2 -2
- package/dist/esm/evm/arbitrum/parser/index.js +3 -3
- package/dist/esm/evm/ethereum/parser/__tests__/ethereum.test.js +29 -0
- package/dist/esm/evm/ethereum/parser/index.js +7 -1
- package/dist/esm/generated/arbitrum/apis/V1Api.d.ts +1 -14
- package/dist/esm/generated/arbitrum/apis/V1Api.js +1 -40
- package/dist/esm/generated/arbitrum/models/index.d.ts +0 -3
- package/dist/esm/generated/arbitrum/models/index.js +0 -3
- package/dist/esm/generated/avalanche/apis/V1Api.d.ts +1 -14
- package/dist/esm/generated/avalanche/apis/V1Api.js +1 -40
- package/dist/esm/generated/avalanche/models/index.d.ts +0 -3
- package/dist/esm/generated/avalanche/models/index.js +0 -3
- package/dist/esm/generated/base/apis/V1Api.d.ts +1 -14
- package/dist/esm/generated/base/apis/V1Api.js +1 -40
- package/dist/esm/generated/base/models/index.d.ts +0 -3
- package/dist/esm/generated/base/models/index.js +0 -3
- package/dist/esm/generated/bitcoin/models/Address.d.ts +7 -0
- package/dist/esm/generated/bitcoin/models/Address.js +3 -0
- package/dist/esm/generated/bitcoincash/models/Address.d.ts +7 -0
- package/dist/esm/generated/bitcoincash/models/Address.js +3 -0
- package/dist/esm/generated/bnbsmartchain/apis/V1Api.d.ts +1 -14
- package/dist/esm/generated/bnbsmartchain/apis/V1Api.js +1 -40
- package/dist/esm/generated/bnbsmartchain/models/index.d.ts +0 -3
- package/dist/esm/generated/bnbsmartchain/models/index.js +0 -3
- package/dist/esm/generated/dogecoin/models/Address.d.ts +7 -0
- package/dist/esm/generated/dogecoin/models/Address.js +3 -0
- package/dist/esm/generated/ethereum/apis/V1Api.d.ts +1 -14
- package/dist/esm/generated/ethereum/apis/V1Api.js +1 -40
- package/dist/esm/generated/ethereum/models/index.d.ts +0 -3
- package/dist/esm/generated/ethereum/models/index.js +0 -3
- package/dist/esm/generated/gnosis/apis/V1Api.d.ts +1 -14
- package/dist/esm/generated/gnosis/apis/V1Api.js +1 -40
- package/dist/esm/generated/gnosis/models/index.d.ts +0 -3
- package/dist/esm/generated/gnosis/models/index.js +0 -3
- package/dist/esm/generated/litecoin/models/Address.d.ts +7 -0
- package/dist/esm/generated/litecoin/models/Address.js +3 -0
- package/dist/esm/generated/mayachain/apis/ProxyApi.d.ts +18 -2
- package/dist/esm/generated/mayachain/apis/ProxyApi.js +42 -2
- package/dist/esm/generated/mayachain/apis/V1Api.d.ts +1 -13
- package/dist/esm/generated/mayachain/apis/V1Api.js +1 -28
- package/dist/esm/generated/mayachain/models/index.d.ts +0 -2
- package/dist/esm/generated/mayachain/models/index.js +0 -2
- package/dist/esm/generated/optimism/apis/V1Api.d.ts +1 -14
- package/dist/esm/generated/optimism/apis/V1Api.js +1 -40
- package/dist/esm/generated/optimism/models/index.d.ts +0 -3
- package/dist/esm/generated/optimism/models/index.js +0 -3
- package/dist/esm/generated/polygon/apis/V1Api.d.ts +1 -14
- package/dist/esm/generated/polygon/apis/V1Api.js +1 -40
- package/dist/esm/generated/polygon/models/index.d.ts +0 -3
- package/dist/esm/generated/polygon/models/index.js +0 -3
- package/dist/esm/generated/thorchain/apis/V1Api.d.ts +1 -25
- package/dist/esm/generated/thorchain/apis/V1Api.js +1 -55
- package/dist/esm/generated/thorchain/models/index.d.ts +0 -3
- package/dist/esm/generated/thorchain/models/index.js +0 -3
- package/dist/esm/generated/zcash/models/Address.d.ts +7 -0
- package/dist/esm/generated/zcash/models/Address.js +3 -0
- package/dist/esm/solana/parser/__tests__/solana.test.js +5 -3
- package/dist/esm/solana/parser/index.js +1 -0
- package/dist/esm/solana/parser/thorchain.d.ts +9 -0
- package/dist/esm/solana/parser/thorchain.js +24 -0
- package/dist/esm/solana/parser/types.d.ts +4 -1
- package/dist/esm/tron/__tests__/api.test.d.ts +1 -0
- package/dist/esm/tron/__tests__/api.test.js +298 -0
- package/dist/esm/tron/api.d.ts +38 -15
- package/dist/esm/tron/api.js +239 -83
- package/dist/esm/tron/types.d.ts +4 -0
- package/package.json +16 -17
- package/CHANGELOG.md +0 -409
- package/dist/cjs/generated/arbitrum/models/TokenMetadata.d.ts +0 -62
- package/dist/cjs/generated/arbitrum/models/TokenMetadata.js +0 -67
- package/dist/cjs/generated/arbitrum/models/TokenMetadataMedia.d.ts +0 -45
- package/dist/cjs/generated/arbitrum/models/TokenMetadataMedia.js +0 -61
- package/dist/cjs/generated/arbitrum/models/TokenType.d.ts +0 -23
- package/dist/cjs/generated/arbitrum/models/TokenType.js +0 -37
- package/dist/cjs/generated/avalanche/models/TokenMetadata.d.ts +0 -62
- package/dist/cjs/generated/avalanche/models/TokenMetadata.js +0 -67
- package/dist/cjs/generated/avalanche/models/TokenMetadataMedia.d.ts +0 -45
- package/dist/cjs/generated/avalanche/models/TokenMetadataMedia.js +0 -61
- package/dist/cjs/generated/avalanche/models/TokenType.d.ts +0 -23
- package/dist/cjs/generated/avalanche/models/TokenType.js +0 -37
- package/dist/cjs/generated/base/models/TokenMetadata.d.ts +0 -62
- package/dist/cjs/generated/base/models/TokenMetadata.js +0 -67
- package/dist/cjs/generated/base/models/TokenMetadataMedia.d.ts +0 -45
- package/dist/cjs/generated/base/models/TokenMetadataMedia.js +0 -61
- package/dist/cjs/generated/base/models/TokenType.d.ts +0 -23
- package/dist/cjs/generated/base/models/TokenType.js +0 -37
- package/dist/cjs/generated/bnbsmartchain/models/TokenMetadata.d.ts +0 -62
- package/dist/cjs/generated/bnbsmartchain/models/TokenMetadata.js +0 -67
- package/dist/cjs/generated/bnbsmartchain/models/TokenMetadataMedia.d.ts +0 -45
- package/dist/cjs/generated/bnbsmartchain/models/TokenMetadataMedia.js +0 -61
- package/dist/cjs/generated/bnbsmartchain/models/TokenType.d.ts +0 -23
- package/dist/cjs/generated/bnbsmartchain/models/TokenType.js +0 -37
- package/dist/cjs/generated/ethereum/models/TokenMetadata.d.ts +0 -62
- package/dist/cjs/generated/ethereum/models/TokenMetadata.js +0 -67
- package/dist/cjs/generated/ethereum/models/TokenMetadataMedia.d.ts +0 -45
- package/dist/cjs/generated/ethereum/models/TokenMetadataMedia.js +0 -61
- package/dist/cjs/generated/ethereum/models/TokenType.d.ts +0 -23
- package/dist/cjs/generated/ethereum/models/TokenType.js +0 -37
- package/dist/cjs/generated/gnosis/models/TokenMetadata.d.ts +0 -62
- package/dist/cjs/generated/gnosis/models/TokenMetadata.js +0 -67
- package/dist/cjs/generated/gnosis/models/TokenMetadataMedia.d.ts +0 -45
- package/dist/cjs/generated/gnosis/models/TokenMetadataMedia.js +0 -61
- package/dist/cjs/generated/gnosis/models/TokenType.d.ts +0 -23
- package/dist/cjs/generated/gnosis/models/TokenType.js +0 -37
- package/dist/cjs/generated/mayachain/models/AffiliateFee.d.ts +0 -67
- package/dist/cjs/generated/mayachain/models/AffiliateFee.js +0 -63
- package/dist/cjs/generated/mayachain/models/AffiliateFees.d.ts +0 -32
- package/dist/cjs/generated/mayachain/models/AffiliateFees.js +0 -52
- package/dist/cjs/generated/optimism/models/TokenMetadata.d.ts +0 -62
- package/dist/cjs/generated/optimism/models/TokenMetadata.js +0 -67
- package/dist/cjs/generated/optimism/models/TokenMetadataMedia.d.ts +0 -45
- package/dist/cjs/generated/optimism/models/TokenMetadataMedia.js +0 -61
- package/dist/cjs/generated/optimism/models/TokenType.d.ts +0 -23
- package/dist/cjs/generated/optimism/models/TokenType.js +0 -37
- package/dist/cjs/generated/polygon/models/TokenMetadata.d.ts +0 -62
- package/dist/cjs/generated/polygon/models/TokenMetadata.js +0 -67
- package/dist/cjs/generated/polygon/models/TokenMetadataMedia.d.ts +0 -45
- package/dist/cjs/generated/polygon/models/TokenMetadataMedia.js +0 -61
- package/dist/cjs/generated/polygon/models/TokenType.d.ts +0 -23
- package/dist/cjs/generated/polygon/models/TokenType.js +0 -37
- package/dist/cjs/generated/thorchain/models/AffiliateFee.d.ts +0 -67
- package/dist/cjs/generated/thorchain/models/AffiliateFee.js +0 -63
- package/dist/cjs/generated/thorchain/models/AffiliateFees.d.ts +0 -32
- package/dist/cjs/generated/thorchain/models/AffiliateFees.js +0 -52
- package/dist/cjs/generated/thorchain/models/AffiliateRevenue.d.ts +0 -45
- package/dist/cjs/generated/thorchain/models/AffiliateRevenue.js +0 -57
- package/dist/esm/generated/arbitrum/models/TokenMetadata.d.ts +0 -62
- package/dist/esm/generated/arbitrum/models/TokenMetadata.js +0 -60
- package/dist/esm/generated/arbitrum/models/TokenMetadataMedia.d.ts +0 -45
- package/dist/esm/generated/arbitrum/models/TokenMetadataMedia.js +0 -54
- package/dist/esm/generated/arbitrum/models/TokenType.d.ts +0 -23
- package/dist/esm/generated/arbitrum/models/TokenType.js +0 -31
- package/dist/esm/generated/avalanche/models/TokenMetadata.d.ts +0 -62
- package/dist/esm/generated/avalanche/models/TokenMetadata.js +0 -60
- package/dist/esm/generated/avalanche/models/TokenMetadataMedia.d.ts +0 -45
- package/dist/esm/generated/avalanche/models/TokenMetadataMedia.js +0 -54
- package/dist/esm/generated/avalanche/models/TokenType.d.ts +0 -23
- package/dist/esm/generated/avalanche/models/TokenType.js +0 -31
- package/dist/esm/generated/base/models/TokenMetadata.d.ts +0 -62
- package/dist/esm/generated/base/models/TokenMetadata.js +0 -60
- package/dist/esm/generated/base/models/TokenMetadataMedia.d.ts +0 -45
- package/dist/esm/generated/base/models/TokenMetadataMedia.js +0 -54
- package/dist/esm/generated/base/models/TokenType.d.ts +0 -23
- package/dist/esm/generated/base/models/TokenType.js +0 -31
- package/dist/esm/generated/bnbsmartchain/models/TokenMetadata.d.ts +0 -62
- package/dist/esm/generated/bnbsmartchain/models/TokenMetadata.js +0 -60
- package/dist/esm/generated/bnbsmartchain/models/TokenMetadataMedia.d.ts +0 -45
- package/dist/esm/generated/bnbsmartchain/models/TokenMetadataMedia.js +0 -54
- package/dist/esm/generated/bnbsmartchain/models/TokenType.d.ts +0 -23
- package/dist/esm/generated/bnbsmartchain/models/TokenType.js +0 -31
- package/dist/esm/generated/ethereum/models/TokenMetadata.d.ts +0 -62
- package/dist/esm/generated/ethereum/models/TokenMetadata.js +0 -60
- package/dist/esm/generated/ethereum/models/TokenMetadataMedia.d.ts +0 -45
- package/dist/esm/generated/ethereum/models/TokenMetadataMedia.js +0 -54
- package/dist/esm/generated/ethereum/models/TokenType.d.ts +0 -23
- package/dist/esm/generated/ethereum/models/TokenType.js +0 -31
- package/dist/esm/generated/gnosis/models/TokenMetadata.d.ts +0 -62
- package/dist/esm/generated/gnosis/models/TokenMetadata.js +0 -60
- package/dist/esm/generated/gnosis/models/TokenMetadataMedia.d.ts +0 -45
- package/dist/esm/generated/gnosis/models/TokenMetadataMedia.js +0 -54
- package/dist/esm/generated/gnosis/models/TokenType.d.ts +0 -23
- package/dist/esm/generated/gnosis/models/TokenType.js +0 -31
- package/dist/esm/generated/mayachain/models/AffiliateFee.d.ts +0 -67
- package/dist/esm/generated/mayachain/models/AffiliateFee.js +0 -56
- package/dist/esm/generated/mayachain/models/AffiliateFees.d.ts +0 -32
- package/dist/esm/generated/mayachain/models/AffiliateFees.js +0 -45
- package/dist/esm/generated/optimism/models/TokenMetadata.d.ts +0 -62
- package/dist/esm/generated/optimism/models/TokenMetadata.js +0 -60
- package/dist/esm/generated/optimism/models/TokenMetadataMedia.d.ts +0 -45
- package/dist/esm/generated/optimism/models/TokenMetadataMedia.js +0 -54
- package/dist/esm/generated/optimism/models/TokenType.d.ts +0 -23
- package/dist/esm/generated/optimism/models/TokenType.js +0 -31
- package/dist/esm/generated/polygon/models/TokenMetadata.d.ts +0 -62
- package/dist/esm/generated/polygon/models/TokenMetadata.js +0 -60
- package/dist/esm/generated/polygon/models/TokenMetadataMedia.d.ts +0 -45
- package/dist/esm/generated/polygon/models/TokenMetadataMedia.js +0 -54
- package/dist/esm/generated/polygon/models/TokenType.d.ts +0 -23
- package/dist/esm/generated/polygon/models/TokenType.js +0 -31
- package/dist/esm/generated/thorchain/models/AffiliateFee.d.ts +0 -67
- package/dist/esm/generated/thorchain/models/AffiliateFee.js +0 -56
- package/dist/esm/generated/thorchain/models/AffiliateFees.d.ts +0 -32
- package/dist/esm/generated/thorchain/models/AffiliateFees.js +0 -45
- package/dist/esm/generated/thorchain/models/AffiliateRevenue.d.ts +0 -45
- package/dist/esm/generated/thorchain/models/AffiliateRevenue.js +0 -50
package/dist/esm/tron/api.d.ts
CHANGED
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
import type { TronBlock, TronTx } from './types.js';
|
|
2
2
|
export interface TronApiConfig {
|
|
3
3
|
rpcUrl: string;
|
|
4
|
+
apiKey?: string;
|
|
4
5
|
}
|
|
6
|
+
export type TronContractEnergyShare = {
|
|
7
|
+
callerPercent: number;
|
|
8
|
+
originEnergyLimit: number;
|
|
9
|
+
originEnergyAvailable: number;
|
|
10
|
+
};
|
|
11
|
+
export declare const getCallerEnergy: (energyUsed: number, share: TronContractEnergyShare) => number;
|
|
5
12
|
export declare class TronApi {
|
|
6
13
|
private readonly rpcUrl;
|
|
14
|
+
private readonly apiKey;
|
|
7
15
|
private tronWeb;
|
|
16
|
+
private readonly contracts;
|
|
17
|
+
private readonly originEnergy;
|
|
8
18
|
private requestQueue;
|
|
9
19
|
private readonly minRequestInterval;
|
|
10
20
|
constructor(config: TronApiConfig);
|
|
11
21
|
getRpcUrl(): string;
|
|
22
|
+
private get tronGridHeaders();
|
|
12
23
|
private throttle;
|
|
13
24
|
private getTronWeb;
|
|
14
25
|
getAccount(params: {
|
|
@@ -21,10 +32,16 @@ export declare class TronApi {
|
|
|
21
32
|
balance: string;
|
|
22
33
|
}[];
|
|
23
34
|
}>;
|
|
24
|
-
|
|
35
|
+
getTrc20Balance(params: {
|
|
36
|
+
contractAddress: string;
|
|
25
37
|
address: string;
|
|
38
|
+
}): Promise<string>;
|
|
39
|
+
getTrc20Allowance(params: {
|
|
26
40
|
contractAddress: string;
|
|
41
|
+
owner: string;
|
|
42
|
+
spender: string;
|
|
27
43
|
}): Promise<string>;
|
|
44
|
+
isAccountActivated(address: string): Promise<boolean>;
|
|
28
45
|
getTxHistory(_params: {
|
|
29
46
|
pubkey: string;
|
|
30
47
|
pageSize?: number;
|
|
@@ -44,23 +61,29 @@ export declare class TronApi {
|
|
|
44
61
|
hex: string;
|
|
45
62
|
};
|
|
46
63
|
}): Promise<string>;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
64
|
+
getChainPrices(): Promise<{
|
|
65
|
+
bandwidthPrice: number;
|
|
66
|
+
energyPrice: number;
|
|
67
|
+
memoFee: number;
|
|
68
|
+
}>;
|
|
69
|
+
getContractEnergyShare(contractAddress: string): Promise<TronContractEnergyShare>;
|
|
70
|
+
private getContract;
|
|
71
|
+
private getPricingContext;
|
|
72
|
+
private getOriginEnergyAvailable;
|
|
73
|
+
private post;
|
|
74
|
+
estimateTrc20TransferFee(params: {
|
|
54
75
|
contractAddress: string;
|
|
55
76
|
from: string;
|
|
56
77
|
to: string;
|
|
57
78
|
amount: string;
|
|
79
|
+
requireEnergyShare?: boolean;
|
|
58
80
|
}): Promise<string>;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}>;
|
|
81
|
+
estimateContractCallFee(params: {
|
|
82
|
+
contractAddress: string;
|
|
83
|
+
from: string;
|
|
84
|
+
data: string;
|
|
85
|
+
callValue?: string;
|
|
86
|
+
requireEnergyShare?: boolean;
|
|
87
|
+
}): Promise<string>;
|
|
88
|
+
private getSimulatedEnergy;
|
|
66
89
|
}
|
package/dist/esm/tron/api.js
CHANGED
|
@@ -1,15 +1,42 @@
|
|
|
1
1
|
import { TronWeb } from 'tronweb';
|
|
2
|
+
const TRON_CALLER_PAYS_ALL = {
|
|
3
|
+
callerPercent: 100,
|
|
4
|
+
originEnergyLimit: 0,
|
|
5
|
+
originEnergyAvailable: 0,
|
|
6
|
+
};
|
|
7
|
+
// java-tron reads a stored zero, which TronGrid omits, as this creator default
|
|
8
|
+
const TRON_CREATOR_DEFAULT_ENERGY_LIMIT = 10_000_000;
|
|
9
|
+
// A deployer's unspent energy moves slowly next to how often the swappers re-estimate
|
|
10
|
+
const TRON_ORIGIN_ENERGY_TTL_MS = 15_000;
|
|
11
|
+
// A deployer can raise the caller's share after deployment, so the split is re-read within the minute
|
|
12
|
+
const TRON_CONTRACT_TTL_MS = 60_000;
|
|
13
|
+
// The deployer covers the rest only out of what they have staked, so a dry deployer (Tether) leaves the caller paying in full
|
|
14
|
+
export const getCallerEnergy = (energyUsed, share) => {
|
|
15
|
+
const originShare = Math.floor((energyUsed * (100 - share.callerPercent)) / 100);
|
|
16
|
+
const originCovered = Math.max(0, Math.min(originShare, share.originEnergyLimit, share.originEnergyAvailable));
|
|
17
|
+
return energyUsed - originCovered;
|
|
18
|
+
};
|
|
2
19
|
export class TronApi {
|
|
3
20
|
rpcUrl;
|
|
21
|
+
apiKey;
|
|
4
22
|
tronWeb = null;
|
|
23
|
+
contracts = new Map();
|
|
24
|
+
originEnergy = new Map();
|
|
5
25
|
requestQueue = Promise.resolve();
|
|
6
26
|
minRequestInterval = 1_500;
|
|
7
27
|
constructor(config) {
|
|
8
28
|
this.rpcUrl = config.rpcUrl;
|
|
29
|
+
this.apiKey = config.apiKey ?? '';
|
|
9
30
|
}
|
|
10
31
|
getRpcUrl() {
|
|
11
32
|
return this.rpcUrl;
|
|
12
33
|
}
|
|
34
|
+
get tronGridHeaders() {
|
|
35
|
+
return {
|
|
36
|
+
'Content-Type': 'application/json',
|
|
37
|
+
...(this.apiKey ? { 'TRON-PRO-API-KEY': this.apiKey } : {}),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
13
40
|
async throttle() {
|
|
14
41
|
// Queue the request and wait for all previous requests to complete
|
|
15
42
|
const currentRequest = this.requestQueue.then(async () => {
|
|
@@ -20,7 +47,10 @@ export class TronApi {
|
|
|
20
47
|
}
|
|
21
48
|
getTronWeb() {
|
|
22
49
|
if (!this.tronWeb) {
|
|
23
|
-
this.tronWeb = new TronWeb({
|
|
50
|
+
this.tronWeb = new TronWeb({
|
|
51
|
+
fullHost: this.rpcUrl,
|
|
52
|
+
headers: this.apiKey ? { 'TRON-PRO-API-KEY': this.apiKey } : {},
|
|
53
|
+
});
|
|
24
54
|
}
|
|
25
55
|
return this.tronWeb;
|
|
26
56
|
}
|
|
@@ -28,7 +58,7 @@ export class TronApi {
|
|
|
28
58
|
await this.throttle();
|
|
29
59
|
const response = await fetch(`${this.rpcUrl}/wallet/getaccount`, {
|
|
30
60
|
method: 'POST',
|
|
31
|
-
headers:
|
|
61
|
+
headers: this.tronGridHeaders,
|
|
32
62
|
body: JSON.stringify({ address: params.pubkey, visible: true }),
|
|
33
63
|
});
|
|
34
64
|
const data = await response.json();
|
|
@@ -45,7 +75,9 @@ export class TronApi {
|
|
|
45
75
|
// Get TRC20 tokens from TronGrid API
|
|
46
76
|
try {
|
|
47
77
|
await this.throttle();
|
|
48
|
-
const trc20Response = await fetch(`${this.rpcUrl}/v1/accounts/${params.pubkey}
|
|
78
|
+
const trc20Response = await fetch(`${this.rpcUrl}/v1/accounts/${params.pubkey}`, {
|
|
79
|
+
headers: this.tronGridHeaders,
|
|
80
|
+
});
|
|
49
81
|
const trc20Data = await trc20Response.json();
|
|
50
82
|
if (trc20Data.data?.[0]?.trc20 && Array.isArray(trc20Data.data[0].trc20)) {
|
|
51
83
|
// trc20 is an array of objects like [{contractAddress: balance}, ...]
|
|
@@ -58,6 +90,45 @@ export class TronApi {
|
|
|
58
90
|
}
|
|
59
91
|
});
|
|
60
92
|
}
|
|
93
|
+
else if (!trc20Data.data || trc20Data.data.length === 0) {
|
|
94
|
+
// Non-activated account: /v1/accounts returns data:[] for addresses that have never sent TRX.
|
|
95
|
+
// Fall back to discovering TRC20 balances via received transactions + hardcoded top tokens.
|
|
96
|
+
try {
|
|
97
|
+
await this.throttle();
|
|
98
|
+
const HARDCODED_TOP_TOKENS = [
|
|
99
|
+
'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',
|
|
100
|
+
'TEkxiTehnzSmSe2XqrBj4w32RUN966rdz8', // USDC
|
|
101
|
+
];
|
|
102
|
+
const MAX_FALLBACK_CONTRACTS = 20;
|
|
103
|
+
const discoveredContracts = new Set(HARDCODED_TOP_TOKENS);
|
|
104
|
+
const trc20TxResponse = await fetch(`${this.rpcUrl}/v1/accounts/${params.pubkey}/transactions/trc20?limit=200&only_to=true`, { headers: this.tronGridHeaders });
|
|
105
|
+
if (trc20TxResponse.ok) {
|
|
106
|
+
const trc20TxData = await trc20TxResponse.json();
|
|
107
|
+
if (trc20TxData.data && Array.isArray(trc20TxData.data)) {
|
|
108
|
+
trc20TxData.data.forEach((tx) => {
|
|
109
|
+
const contractAddress = tx.token_info?.address;
|
|
110
|
+
if (contractAddress)
|
|
111
|
+
discoveredContracts.add(contractAddress);
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
for (const contractAddress of Array.from(discoveredContracts).slice(0, MAX_FALLBACK_CONTRACTS)) {
|
|
116
|
+
await this.throttle();
|
|
117
|
+
await this.getTrc20Balance({ contractAddress, address: params.pubkey })
|
|
118
|
+
.then(balance => {
|
|
119
|
+
if (balance !== '0')
|
|
120
|
+
tokens.push({ contractAddress, balance });
|
|
121
|
+
})
|
|
122
|
+
.catch(() => undefined);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch (fallbackErr) {
|
|
126
|
+
console.error('Failed TRC20 fallback discovery for non-activated TRON account', {
|
|
127
|
+
address: `${params.pubkey.slice(0, 6)}...${params.pubkey.slice(-4)}`,
|
|
128
|
+
error: fallbackErr,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
61
132
|
}
|
|
62
133
|
catch (err) {
|
|
63
134
|
// TRC20 fetch failed, continue with just TRC10 tokens
|
|
@@ -69,16 +140,36 @@ export class TronApi {
|
|
|
69
140
|
tokens,
|
|
70
141
|
};
|
|
71
142
|
}
|
|
72
|
-
async
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
143
|
+
async getTrc20Balance(params) {
|
|
144
|
+
const result = await this.getTronWeb().transactionBuilder.triggerConstantContract(params.contractAddress, 'balanceOf(address)', {}, [{ type: 'address', value: params.address }], params.address);
|
|
145
|
+
const [balance] = result.constant_result ?? [];
|
|
146
|
+
if (!balance)
|
|
147
|
+
throw new Error('[tron] balanceOf call returned no data');
|
|
148
|
+
return BigInt(`0x${balance}`).toString();
|
|
149
|
+
}
|
|
150
|
+
// A direct selector call - contract().at() would first fetch the ABI, doubling the requests
|
|
151
|
+
async getTrc20Allowance(params) {
|
|
152
|
+
const tronWeb = this.getTronWeb();
|
|
153
|
+
const result = await tronWeb.transactionBuilder.triggerConstantContract(params.contractAddress, 'allowance(address,address)', {}, [
|
|
154
|
+
{ type: 'address', value: params.owner },
|
|
155
|
+
{ type: 'address', value: params.spender },
|
|
156
|
+
], params.owner);
|
|
157
|
+
const [allowance] = result.constant_result ?? [];
|
|
158
|
+
if (!allowance)
|
|
159
|
+
throw new Error('[tron] allowance call returned no data');
|
|
160
|
+
return BigInt(`0x${allowance}`).toString();
|
|
161
|
+
}
|
|
162
|
+
// Accounts exist on-chain only once they have received TRX; a fresh address returns {}
|
|
163
|
+
async isAccountActivated(address) {
|
|
164
|
+
const response = await fetch(`${this.rpcUrl}/wallet/getaccount`, {
|
|
165
|
+
method: 'POST',
|
|
166
|
+
headers: this.tronGridHeaders,
|
|
167
|
+
body: JSON.stringify({ address, visible: true }),
|
|
168
|
+
});
|
|
169
|
+
if (!response.ok)
|
|
170
|
+
throw new Error(`[tron] getaccount failed: ${response.status}`);
|
|
171
|
+
const data = await response.json();
|
|
172
|
+
return !!data.address;
|
|
82
173
|
}
|
|
83
174
|
getTxHistory(_params) {
|
|
84
175
|
throw new Error('Transaction history is not supported for TRON');
|
|
@@ -88,22 +179,20 @@ export class TronApi {
|
|
|
88
179
|
const [txResponse, infoResponse] = await Promise.all([
|
|
89
180
|
fetch(`${this.rpcUrl}/wallet/gettransactionbyid`, {
|
|
90
181
|
method: 'POST',
|
|
91
|
-
headers:
|
|
182
|
+
headers: this.tronGridHeaders,
|
|
92
183
|
body: JSON.stringify({ value: params.txid, visible: true }),
|
|
93
184
|
}),
|
|
94
185
|
fetch(`${this.rpcUrl}/wallet/gettransactioninfobyid`, {
|
|
95
186
|
method: 'POST',
|
|
96
|
-
headers:
|
|
187
|
+
headers: this.tronGridHeaders,
|
|
97
188
|
body: JSON.stringify({ value: params.txid, visible: true }),
|
|
98
189
|
}),
|
|
99
190
|
]);
|
|
100
|
-
if (!txResponse.ok)
|
|
191
|
+
if (!txResponse.ok)
|
|
101
192
|
return null;
|
|
102
|
-
}
|
|
103
193
|
const tx = await txResponse.json();
|
|
104
|
-
if (!tx || !tx.txID)
|
|
194
|
+
if (!tx || !tx.txID)
|
|
105
195
|
return null;
|
|
106
|
-
}
|
|
107
196
|
let blockNumber = 0;
|
|
108
197
|
let blockTimeStamp = 0;
|
|
109
198
|
let fee = '0';
|
|
@@ -134,12 +223,11 @@ export class TronApi {
|
|
|
134
223
|
await this.throttle();
|
|
135
224
|
const response = await fetch(`${this.rpcUrl}/wallet/getblockbynum`, {
|
|
136
225
|
method: 'POST',
|
|
137
|
-
headers:
|
|
226
|
+
headers: this.tronGridHeaders,
|
|
138
227
|
body: JSON.stringify({ num: params.height }),
|
|
139
228
|
});
|
|
140
|
-
if (!response.ok)
|
|
229
|
+
if (!response.ok)
|
|
141
230
|
return null;
|
|
142
|
-
}
|
|
143
231
|
return await response.json();
|
|
144
232
|
}
|
|
145
233
|
async sendTx(params) {
|
|
@@ -151,9 +239,8 @@ export class TronApi {
|
|
|
151
239
|
throw new Error(result.message || JSON.stringify(result) || 'Failed to broadcast transaction');
|
|
152
240
|
}
|
|
153
241
|
const txid = result.txid || result.transaction?.txID;
|
|
154
|
-
if (!txid)
|
|
242
|
+
if (!txid)
|
|
155
243
|
throw new Error('Transaction ID not found in broadcast result');
|
|
156
|
-
}
|
|
157
244
|
return txid;
|
|
158
245
|
}
|
|
159
246
|
catch (error) {
|
|
@@ -161,69 +248,138 @@ export class TronApi {
|
|
|
161
248
|
}
|
|
162
249
|
}
|
|
163
250
|
async getChainPrices() {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
const
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
return
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
251
|
+
const params = await this.getTronWeb().trx.getChainParameters();
|
|
252
|
+
const param = (key) => {
|
|
253
|
+
const value = params.find(p => p.key === key)?.value;
|
|
254
|
+
if (value === undefined)
|
|
255
|
+
throw new Error(`[tron] chain parameter ${key} missing`);
|
|
256
|
+
return value;
|
|
257
|
+
};
|
|
258
|
+
return {
|
|
259
|
+
bandwidthPrice: param('getTransactionFee'),
|
|
260
|
+
energyPrice: param('getEnergyFee'),
|
|
261
|
+
memoFee: param('getMemoFee'),
|
|
262
|
+
};
|
|
174
263
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
264
|
+
// A plain address answers getcontract with {} and pays in full
|
|
265
|
+
async getContractEnergyShare(contractAddress) {
|
|
266
|
+
const contract = await this.getContract(contractAddress);
|
|
267
|
+
if (!contract.origin_address)
|
|
268
|
+
return TRON_CALLER_PAYS_ALL;
|
|
269
|
+
// TronGrid omits zero-valued fields, so a contract whose deployer pays everything carries no percent at all
|
|
270
|
+
const callerPercent = contract.consume_user_resource_percent ?? 0;
|
|
271
|
+
if (callerPercent >= 100)
|
|
272
|
+
return TRON_CALLER_PAYS_ALL;
|
|
273
|
+
return {
|
|
274
|
+
callerPercent,
|
|
275
|
+
originEnergyLimit: contract.origin_energy_limit || TRON_CREATOR_DEFAULT_ENERGY_LIMIT,
|
|
276
|
+
originEnergyAvailable: await this.getOriginEnergyAvailable(contract.origin_address),
|
|
277
|
+
};
|
|
187
278
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
279
|
+
getContract(contractAddress) {
|
|
280
|
+
const cached = this.contracts.get(contractAddress);
|
|
281
|
+
if (cached && Date.now() - cached.readAt < TRON_CONTRACT_TTL_MS)
|
|
282
|
+
return cached.value;
|
|
283
|
+
const value = this.post('/wallet/getcontract', {
|
|
284
|
+
value: contractAddress,
|
|
285
|
+
visible: true,
|
|
286
|
+
})
|
|
287
|
+
.then(body => {
|
|
288
|
+
if (body.Error)
|
|
289
|
+
throw new Error(`[tron] getcontract failed: ${body.Error}`);
|
|
290
|
+
// only a contract record is worth keeping; an empty body is re-read next time
|
|
291
|
+
if (!body.origin_address && this.contracts.get(contractAddress)?.value === value) {
|
|
292
|
+
this.contracts.delete(contractAddress);
|
|
293
|
+
}
|
|
294
|
+
return body;
|
|
295
|
+
})
|
|
296
|
+
.catch(err => {
|
|
297
|
+
if (this.contracts.get(contractAddress)?.value === value) {
|
|
298
|
+
this.contracts.delete(contractAddress);
|
|
299
|
+
}
|
|
300
|
+
throw err;
|
|
301
|
+
});
|
|
302
|
+
this.contracts.set(contractAddress, { readAt: Date.now(), value });
|
|
303
|
+
return value;
|
|
204
304
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
305
|
+
// A failed share lookup prices the simulation as if the caller paid in full, unless the caller must not guess
|
|
306
|
+
async getPricingContext(contractAddress, requireEnergyShare = false) {
|
|
307
|
+
const [{ energyPrice }, share] = await Promise.all([
|
|
308
|
+
this.getChainPrices(),
|
|
309
|
+
this.getContractEnergyShare(contractAddress).catch((error) => {
|
|
310
|
+
if (requireEnergyShare)
|
|
311
|
+
throw error;
|
|
312
|
+
console.warn(`[tron] energy share lookup failed for ${contractAddress}, pricing in full`, error);
|
|
313
|
+
return TRON_CALLER_PAYS_ALL;
|
|
314
|
+
}),
|
|
315
|
+
]);
|
|
316
|
+
return { energyPrice, share };
|
|
317
|
+
}
|
|
318
|
+
getOriginEnergyAvailable(originAddress) {
|
|
319
|
+
const cached = this.originEnergy.get(originAddress);
|
|
320
|
+
if (cached && Date.now() - cached.readAt < TRON_ORIGIN_ENERGY_TTL_MS)
|
|
321
|
+
return cached.value;
|
|
322
|
+
const value = this.post('/wallet/getaccountresource', { address: originAddress, visible: true })
|
|
323
|
+
.then(body => {
|
|
324
|
+
if (body.Error)
|
|
325
|
+
throw new Error(`[tron] getaccountresource failed: ${body.Error}`);
|
|
326
|
+
return Math.max(0, (body.EnergyLimit ?? 0) - (body.EnergyUsed ?? 0));
|
|
327
|
+
})
|
|
328
|
+
.catch(err => {
|
|
329
|
+
if (this.originEnergy.get(originAddress)?.value === value) {
|
|
330
|
+
this.originEnergy.delete(originAddress);
|
|
331
|
+
}
|
|
332
|
+
throw err;
|
|
333
|
+
});
|
|
334
|
+
this.originEnergy.set(originAddress, { readAt: Date.now(), value });
|
|
335
|
+
return value;
|
|
336
|
+
}
|
|
337
|
+
async post(path, body) {
|
|
338
|
+
const response = await fetch(`${this.rpcUrl}${path}`, {
|
|
339
|
+
method: 'POST',
|
|
340
|
+
headers: this.tronGridHeaders,
|
|
341
|
+
body: JSON.stringify(body),
|
|
342
|
+
});
|
|
343
|
+
if (!response.ok)
|
|
344
|
+
throw new Error(`[tron] ${path} failed: ${response.status}`);
|
|
345
|
+
return response.json();
|
|
346
|
+
}
|
|
347
|
+
async estimateTrc20TransferFee(params) {
|
|
348
|
+
const tronWeb = this.getTronWeb();
|
|
349
|
+
const { energyPrice, share } = await this.getPricingContext(params.contractAddress, params.requireEnergyShare);
|
|
350
|
+
const result = await tronWeb.transactionBuilder.triggerConstantContract(params.contractAddress, 'transfer(address,uint256)', {}, [
|
|
351
|
+
{ type: 'address', value: params.to },
|
|
352
|
+
{ type: 'uint256', value: params.amount },
|
|
353
|
+
], params.from);
|
|
354
|
+
const energy = this.getSimulatedEnergy(result, 'trc20 transfer');
|
|
355
|
+
return String(getCallerEnergy(energy, share) * energyPrice);
|
|
356
|
+
}
|
|
357
|
+
async estimateContractCallFee(params) {
|
|
358
|
+
const { energyPrice, share } = await this.getPricingContext(params.contractAddress, params.requireEnergyShare);
|
|
359
|
+
const response = await fetch(`${this.rpcUrl}/wallet/triggerconstantcontract`, {
|
|
360
|
+
method: 'POST',
|
|
361
|
+
headers: { 'Content-Type': 'application/json', ...this.tronGridHeaders },
|
|
362
|
+
body: JSON.stringify({
|
|
363
|
+
owner_address: params.from,
|
|
364
|
+
contract_address: params.contractAddress,
|
|
365
|
+
data: params.data.startsWith('0x') ? params.data.slice(2) : params.data,
|
|
366
|
+
call_value: Number(params.callValue) || 0,
|
|
367
|
+
visible: true,
|
|
368
|
+
}),
|
|
369
|
+
});
|
|
370
|
+
if (!response.ok) {
|
|
371
|
+
throw new Error(`[tron] contract call simulation request failed: ${response.status}`);
|
|
217
372
|
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
};
|
|
373
|
+
const result = await response.json();
|
|
374
|
+
const energy = this.getSimulatedEnergy(result, 'contract call');
|
|
375
|
+
return String(getCallerEnergy(energy, share) * energyPrice);
|
|
376
|
+
}
|
|
377
|
+
// A revert still reports result.result: true with the partial energy burned - trusting it would underestimate
|
|
378
|
+
getSimulatedEnergy(result, label) {
|
|
379
|
+
const isReverted = result.transaction?.ret?.some(ret => ret.ret === 'FAILED');
|
|
380
|
+
if (result.result?.result !== true || isReverted || !result.energy_used) {
|
|
381
|
+
throw new Error(`[tron] ${label} simulation failed: ${result.result?.message ?? 'unknown error'}`);
|
|
227
382
|
}
|
|
383
|
+
return result.energy_used;
|
|
228
384
|
}
|
|
229
385
|
}
|
package/dist/esm/tron/types.d.ts
CHANGED
|
@@ -29,6 +29,9 @@ export interface TronTx {
|
|
|
29
29
|
amount?: number;
|
|
30
30
|
owner_address?: string;
|
|
31
31
|
to_address?: string;
|
|
32
|
+
contract_address?: string;
|
|
33
|
+
call_value?: number;
|
|
34
|
+
data?: string;
|
|
32
35
|
};
|
|
33
36
|
type_url: string;
|
|
34
37
|
};
|
|
@@ -38,6 +41,7 @@ export interface TronTx {
|
|
|
38
41
|
ref_block_hash: string;
|
|
39
42
|
expiration: number;
|
|
40
43
|
timestamp: number;
|
|
44
|
+
fee_limit?: number;
|
|
41
45
|
};
|
|
42
46
|
raw_data_hex: string;
|
|
43
47
|
txID: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapeshiftoss/unchained-client",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.15.0",
|
|
4
4
|
"repository": "https://github.com/shapeshift/web",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -20,30 +20,29 @@
|
|
|
20
20
|
"publishConfig": {
|
|
21
21
|
"access": "public"
|
|
22
22
|
},
|
|
23
|
-
"scripts": {
|
|
24
|
-
"build": "yarn clean && yarn generate && yarn run -T tsc --build && yarn postbuild",
|
|
25
|
-
"build:docker": "yarn clean:dist && yarn run -T tsc --build && yarn postbuild",
|
|
26
|
-
"clean": "rm -rf dist src/generated",
|
|
27
|
-
"clean:dist": "rm -rf dist",
|
|
28
|
-
"dev": "yarn run -T tsc --build --watch",
|
|
29
|
-
"generate": "TS_POST_PROCESS_FILE=./generator/post_process.sh JAVA_OPTS='-Dlog.level=error' openapi-generator-cli generate",
|
|
30
|
-
"postbuild": "yarn postbuild:esm && yarn postbuild:cjs",
|
|
31
|
-
"postbuild:esm": "yarn run -T tsc-esm-fix --target=dist/esm --ext=.js",
|
|
32
|
-
"postbuild:cjs": "echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json"
|
|
33
|
-
},
|
|
34
23
|
"dependencies": {
|
|
35
|
-
"@shapeshiftoss/caip": "^8.16.8",
|
|
36
24
|
"@shapeshiftoss/common-api": "^9.3.0",
|
|
37
|
-
"@shapeshiftoss/contracts": "^1.0.6",
|
|
38
|
-
"@shapeshiftoss/utils": "^1.0.6",
|
|
39
25
|
"axios": "^1.13.5",
|
|
40
26
|
"bignumber.js": "^9.3.1",
|
|
27
|
+
"bs58": "^5.0.0",
|
|
41
28
|
"ethers": "6.11.1",
|
|
42
29
|
"isomorphic-ws": "^4.0.1",
|
|
43
|
-
"viem": "2.
|
|
44
|
-
"ws": "^8.17.1"
|
|
30
|
+
"viem": "2.55.11",
|
|
31
|
+
"ws": "^8.17.1",
|
|
32
|
+
"@shapeshiftoss/caip": "^8.17.1",
|
|
33
|
+
"@shapeshiftoss/contracts": "^1.1.0",
|
|
34
|
+
"@shapeshiftoss/utils": "^1.3.1"
|
|
45
35
|
},
|
|
46
36
|
"devDependencies": {
|
|
47
37
|
"@openapitools/openapi-generator-cli": "^2.5.1"
|
|
38
|
+
},
|
|
39
|
+
"scripts": {
|
|
40
|
+
"build": "rm -rf dist && pnpm run generate && pnpm exec tsc --build && pnpm run postbuild",
|
|
41
|
+
"clean": "rm -rf dist src/generated node_modules",
|
|
42
|
+
"dev": "pnpm exec tsc --build --watch",
|
|
43
|
+
"generate": "rm -rf src/generated && TS_POST_PROCESS_FILE=./generator/post_process.sh JAVA_OPTS='-Dlog.level=error' openapi-generator-cli generate",
|
|
44
|
+
"postbuild": "pnpm run postbuild:esm && pnpm run postbuild:cjs",
|
|
45
|
+
"postbuild:esm": "pnpm exec tsc-esm-fix --target=dist/esm --ext=.js",
|
|
46
|
+
"postbuild:cjs": "echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json"
|
|
48
47
|
}
|
|
49
48
|
}
|