@shapeshiftoss/unchained-client 10.15.0 → 10.17.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/dist/cjs/.tsbuildinfo +1 -1
- package/dist/cjs/evm/arbitrum/parser/index.js +1 -1
- package/dist/cjs/evm/avalanche/parser/index.js +1 -1
- package/dist/cjs/evm/base/parser/index.js +1 -1
- package/dist/cjs/evm/bnbsmartchain/parser/index.js +1 -1
- package/dist/cjs/evm/ethereum/parser/__tests__/ethereum.test.js +13 -13
- package/dist/cjs/evm/ethereum/parser/index.js +12 -3
- package/dist/cjs/evm/ethereum/parser/uniV2.d.ts +4 -3
- package/dist/cjs/evm/ethereum/parser/uniV2.js +13 -10
- package/dist/cjs/evm/ethereum/parser/weth.d.ts +0 -2
- package/dist/cjs/evm/ethereum/parser/weth.js +0 -2
- package/dist/cjs/evm/gnosis/parser/index.js +1 -1
- package/dist/cjs/evm/optimism/parser/index.js +1 -1
- package/dist/cjs/evm/parser/erc20.d.ts +0 -2
- package/dist/cjs/evm/parser/erc20.js +0 -2
- package/dist/cjs/evm/parser/index.d.ts +1 -2
- package/dist/cjs/evm/parser/index.js +2 -2
- package/dist/cjs/evm/polygon/parser/index.js +1 -1
- package/dist/cjs/generated/arbitrum/models/NotFoundError.d.ts +31 -0
- package/dist/cjs/generated/arbitrum/models/NotFoundError.js +51 -0
- package/dist/cjs/generated/arbitrum/models/index.d.ts +1 -0
- package/dist/cjs/generated/arbitrum/models/index.js +1 -0
- package/dist/cjs/generated/avalanche/models/NotFoundError.d.ts +31 -0
- package/dist/cjs/generated/avalanche/models/NotFoundError.js +51 -0
- package/dist/cjs/generated/avalanche/models/index.d.ts +1 -0
- package/dist/cjs/generated/avalanche/models/index.js +1 -0
- package/dist/cjs/generated/base/models/NotFoundError.d.ts +31 -0
- package/dist/cjs/generated/base/models/NotFoundError.js +51 -0
- package/dist/cjs/generated/base/models/index.d.ts +1 -0
- package/dist/cjs/generated/base/models/index.js +1 -0
- package/dist/cjs/generated/bitcoin/models/NotFoundError.d.ts +31 -0
- package/dist/cjs/generated/bitcoin/models/NotFoundError.js +51 -0
- package/dist/cjs/generated/bitcoin/models/index.d.ts +1 -0
- package/dist/cjs/generated/bitcoin/models/index.js +1 -0
- package/dist/cjs/generated/bitcoincash/models/NotFoundError.d.ts +31 -0
- package/dist/cjs/generated/bitcoincash/models/NotFoundError.js +51 -0
- package/dist/cjs/generated/bitcoincash/models/index.d.ts +1 -0
- package/dist/cjs/generated/bitcoincash/models/index.js +1 -0
- package/dist/cjs/generated/bnbsmartchain/models/NotFoundError.d.ts +31 -0
- package/dist/cjs/generated/bnbsmartchain/models/NotFoundError.js +51 -0
- package/dist/cjs/generated/bnbsmartchain/models/index.d.ts +1 -0
- package/dist/cjs/generated/bnbsmartchain/models/index.js +1 -0
- package/dist/cjs/generated/dogecoin/models/NotFoundError.d.ts +31 -0
- package/dist/cjs/generated/dogecoin/models/NotFoundError.js +51 -0
- package/dist/cjs/generated/dogecoin/models/index.d.ts +1 -0
- package/dist/cjs/generated/dogecoin/models/index.js +1 -0
- package/dist/cjs/generated/ethereum/apis/V1Api.d.ts +15 -0
- package/dist/cjs/generated/ethereum/apis/V1Api.js +24 -0
- package/dist/cjs/generated/ethereum/models/NotFoundError.d.ts +31 -0
- package/dist/cjs/generated/ethereum/models/NotFoundError.js +51 -0
- package/dist/cjs/generated/ethereum/models/index.d.ts +1 -0
- package/dist/cjs/generated/ethereum/models/index.js +1 -0
- package/dist/cjs/generated/gnosis/models/NotFoundError.d.ts +31 -0
- package/dist/cjs/generated/gnosis/models/NotFoundError.js +51 -0
- package/dist/cjs/generated/gnosis/models/index.d.ts +1 -0
- package/dist/cjs/generated/gnosis/models/index.js +1 -0
- package/dist/cjs/generated/litecoin/models/NotFoundError.d.ts +31 -0
- package/dist/cjs/generated/litecoin/models/NotFoundError.js +51 -0
- package/dist/cjs/generated/litecoin/models/index.d.ts +1 -0
- package/dist/cjs/generated/litecoin/models/index.js +1 -0
- package/dist/cjs/generated/optimism/models/NotFoundError.d.ts +31 -0
- package/dist/cjs/generated/optimism/models/NotFoundError.js +51 -0
- package/dist/cjs/generated/optimism/models/index.d.ts +1 -0
- package/dist/cjs/generated/optimism/models/index.js +1 -0
- package/dist/cjs/generated/polygon/models/NotFoundError.d.ts +31 -0
- package/dist/cjs/generated/polygon/models/NotFoundError.js +51 -0
- package/dist/cjs/generated/polygon/models/index.d.ts +1 -0
- package/dist/cjs/generated/polygon/models/index.js +1 -0
- package/dist/cjs/generated/solana/models/NotFoundError.d.ts +31 -0
- package/dist/cjs/generated/solana/models/NotFoundError.js +51 -0
- package/dist/cjs/generated/solana/models/index.d.ts +1 -0
- package/dist/cjs/generated/solana/models/index.js +1 -0
- package/dist/cjs/generated/zcash/models/NotFoundError.d.ts +31 -0
- package/dist/cjs/generated/zcash/models/NotFoundError.js +51 -0
- package/dist/cjs/generated/zcash/models/index.d.ts +1 -0
- package/dist/cjs/generated/zcash/models/index.js +1 -0
- package/dist/cjs/tron/__tests__/api.test.js +125 -0
- package/dist/cjs/tron/api.d.ts +7 -0
- package/dist/cjs/tron/api.js +39 -3
- package/dist/esm/.tsbuildinfo +1 -1
- package/dist/esm/evm/arbitrum/parser/index.js +1 -1
- package/dist/esm/evm/avalanche/parser/index.js +1 -1
- package/dist/esm/evm/base/parser/index.js +1 -1
- package/dist/esm/evm/bnbsmartchain/parser/index.js +1 -1
- package/dist/esm/evm/ethereum/parser/__tests__/ethereum.test.js +13 -13
- package/dist/esm/evm/ethereum/parser/index.js +12 -3
- package/dist/esm/evm/ethereum/parser/uniV2.d.ts +4 -3
- package/dist/esm/evm/ethereum/parser/uniV2.js +14 -11
- package/dist/esm/evm/ethereum/parser/weth.d.ts +0 -2
- package/dist/esm/evm/ethereum/parser/weth.js +0 -2
- package/dist/esm/evm/gnosis/parser/index.js +1 -1
- package/dist/esm/evm/optimism/parser/index.js +1 -1
- package/dist/esm/evm/parser/erc20.d.ts +0 -2
- package/dist/esm/evm/parser/erc20.js +0 -2
- package/dist/esm/evm/parser/index.d.ts +1 -2
- package/dist/esm/evm/parser/index.js +3 -3
- package/dist/esm/evm/polygon/parser/index.js +1 -1
- package/dist/esm/generated/arbitrum/models/NotFoundError.d.ts +31 -0
- package/dist/esm/generated/arbitrum/models/NotFoundError.js +44 -0
- package/dist/esm/generated/arbitrum/models/index.d.ts +1 -0
- package/dist/esm/generated/arbitrum/models/index.js +1 -0
- package/dist/esm/generated/avalanche/models/NotFoundError.d.ts +31 -0
- package/dist/esm/generated/avalanche/models/NotFoundError.js +44 -0
- package/dist/esm/generated/avalanche/models/index.d.ts +1 -0
- package/dist/esm/generated/avalanche/models/index.js +1 -0
- package/dist/esm/generated/base/models/NotFoundError.d.ts +31 -0
- package/dist/esm/generated/base/models/NotFoundError.js +44 -0
- package/dist/esm/generated/base/models/index.d.ts +1 -0
- package/dist/esm/generated/base/models/index.js +1 -0
- package/dist/esm/generated/bitcoin/models/NotFoundError.d.ts +31 -0
- package/dist/esm/generated/bitcoin/models/NotFoundError.js +44 -0
- package/dist/esm/generated/bitcoin/models/index.d.ts +1 -0
- package/dist/esm/generated/bitcoin/models/index.js +1 -0
- package/dist/esm/generated/bitcoincash/models/NotFoundError.d.ts +31 -0
- package/dist/esm/generated/bitcoincash/models/NotFoundError.js +44 -0
- package/dist/esm/generated/bitcoincash/models/index.d.ts +1 -0
- package/dist/esm/generated/bitcoincash/models/index.js +1 -0
- package/dist/esm/generated/bnbsmartchain/models/NotFoundError.d.ts +31 -0
- package/dist/esm/generated/bnbsmartchain/models/NotFoundError.js +44 -0
- package/dist/esm/generated/bnbsmartchain/models/index.d.ts +1 -0
- package/dist/esm/generated/bnbsmartchain/models/index.js +1 -0
- package/dist/esm/generated/dogecoin/models/NotFoundError.d.ts +31 -0
- package/dist/esm/generated/dogecoin/models/NotFoundError.js +44 -0
- package/dist/esm/generated/dogecoin/models/index.d.ts +1 -0
- package/dist/esm/generated/dogecoin/models/index.js +1 -0
- package/dist/esm/generated/ethereum/apis/V1Api.d.ts +15 -0
- package/dist/esm/generated/ethereum/apis/V1Api.js +24 -0
- package/dist/esm/generated/ethereum/models/NotFoundError.d.ts +31 -0
- package/dist/esm/generated/ethereum/models/NotFoundError.js +44 -0
- package/dist/esm/generated/ethereum/models/index.d.ts +1 -0
- package/dist/esm/generated/ethereum/models/index.js +1 -0
- package/dist/esm/generated/gnosis/models/NotFoundError.d.ts +31 -0
- package/dist/esm/generated/gnosis/models/NotFoundError.js +44 -0
- package/dist/esm/generated/gnosis/models/index.d.ts +1 -0
- package/dist/esm/generated/gnosis/models/index.js +1 -0
- package/dist/esm/generated/litecoin/models/NotFoundError.d.ts +31 -0
- package/dist/esm/generated/litecoin/models/NotFoundError.js +44 -0
- package/dist/esm/generated/litecoin/models/index.d.ts +1 -0
- package/dist/esm/generated/litecoin/models/index.js +1 -0
- package/dist/esm/generated/optimism/models/NotFoundError.d.ts +31 -0
- package/dist/esm/generated/optimism/models/NotFoundError.js +44 -0
- package/dist/esm/generated/optimism/models/index.d.ts +1 -0
- package/dist/esm/generated/optimism/models/index.js +1 -0
- package/dist/esm/generated/polygon/models/NotFoundError.d.ts +31 -0
- package/dist/esm/generated/polygon/models/NotFoundError.js +44 -0
- package/dist/esm/generated/polygon/models/index.d.ts +1 -0
- package/dist/esm/generated/polygon/models/index.js +1 -0
- package/dist/esm/generated/solana/models/NotFoundError.d.ts +31 -0
- package/dist/esm/generated/solana/models/NotFoundError.js +44 -0
- package/dist/esm/generated/solana/models/index.d.ts +1 -0
- package/dist/esm/generated/solana/models/index.js +1 -0
- package/dist/esm/generated/zcash/models/NotFoundError.d.ts +31 -0
- package/dist/esm/generated/zcash/models/NotFoundError.js +44 -0
- package/dist/esm/generated/zcash/models/index.d.ts +1 -0
- package/dist/esm/generated/zcash/models/index.js +1 -0
- package/dist/esm/tron/__tests__/api.test.js +125 -0
- package/dist/esm/tron/api.d.ts +7 -0
- package/dist/esm/tron/api.js +39 -3
- package/package.json +4 -4
package/dist/cjs/tron/api.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TronApi = exports.getCallerEnergy = void 0;
|
|
4
|
+
const utils_1 = require("@shapeshiftoss/utils");
|
|
4
5
|
const tronweb_1 = require("tronweb");
|
|
6
|
+
const PRECISION_READ_TIMEOUT_MS = 10_000;
|
|
5
7
|
const TRON_CALLER_PAYS_ALL = {
|
|
6
8
|
callerPercent: 100,
|
|
7
9
|
originEnergyLimit: 0,
|
|
@@ -144,6 +146,36 @@ class TronApi {
|
|
|
144
146
|
tokens,
|
|
145
147
|
};
|
|
146
148
|
}
|
|
149
|
+
async getTrc20Decimals(params) {
|
|
150
|
+
try {
|
|
151
|
+
const result = await (0, utils_1.timeout)(this.getTronWeb().transactionBuilder.triggerConstantContract(params.contractAddress, 'decimals()', {}, [], params.contractAddress), PRECISION_READ_TIMEOUT_MS, undefined);
|
|
152
|
+
if (!result)
|
|
153
|
+
return;
|
|
154
|
+
const [decimalsHex] = result.constant_result ?? [];
|
|
155
|
+
if (this.isReverted(result) || !decimalsHex)
|
|
156
|
+
return;
|
|
157
|
+
// decimals() is a uint8; anything larger is a contract answering something else
|
|
158
|
+
const decimals = Number(BigInt(`0x${decimalsHex}`));
|
|
159
|
+
return decimals > 255 ? undefined : decimals;
|
|
160
|
+
}
|
|
161
|
+
catch (err) {
|
|
162
|
+
console.error(`[tron] failed to read decimals of ${params.contractAddress}`, err);
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
async getTrc10Precision(params) {
|
|
167
|
+
try {
|
|
168
|
+
const data = await (0, utils_1.timeout)(fetch(`${this.rpcUrl}/v1/assets/${params.id}`, {
|
|
169
|
+
headers: this.tronGridHeaders,
|
|
170
|
+
signal: AbortSignal.timeout(PRECISION_READ_TIMEOUT_MS),
|
|
171
|
+
}).then(response => response.json()), PRECISION_READ_TIMEOUT_MS, undefined);
|
|
172
|
+
return data?.data?.[0]?.precision;
|
|
173
|
+
}
|
|
174
|
+
catch (err) {
|
|
175
|
+
console.error(`[tron] failed to read precision of trc10 ${params.id}`, err);
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
147
179
|
async getTrc20Balance(params) {
|
|
148
180
|
const result = await this.getTronWeb().transactionBuilder.triggerConstantContract(params.contractAddress, 'balanceOf(address)', {}, [{ type: 'address', value: params.address }], params.address);
|
|
149
181
|
const [balance] = result.constant_result ?? [];
|
|
@@ -378,10 +410,14 @@ class TronApi {
|
|
|
378
410
|
const energy = this.getSimulatedEnergy(result, 'contract call');
|
|
379
411
|
return String((0, exports.getCallerEnergy)(energy, share) * energyPrice);
|
|
380
412
|
}
|
|
381
|
-
// A revert still reports result.result: true
|
|
413
|
+
// A revert still reports result.result: true - the failure is only visible on the transaction's ret
|
|
414
|
+
isReverted(result) {
|
|
415
|
+
const failed = result.transaction?.ret?.some(ret => ret.ret === 'FAILED');
|
|
416
|
+
return result.result?.result !== true || Boolean(failed);
|
|
417
|
+
}
|
|
418
|
+
// Trusting a revert's partial energy would underestimate
|
|
382
419
|
getSimulatedEnergy(result, label) {
|
|
383
|
-
|
|
384
|
-
if (result.result?.result !== true || isReverted || !result.energy_used) {
|
|
420
|
+
if (this.isReverted(result) || !result.energy_used) {
|
|
385
421
|
throw new Error(`[tron] ${label} simulation failed: ${result.result?.message ?? 'unknown error'}`);
|
|
386
422
|
}
|
|
387
423
|
return result.energy_used;
|