@tatumio/tatum-v1
Version:
Tatum API client allows browsers and Node.js clients to interact with Tatum API.
110 lines • 10.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.normalizeAddress = exports.helperPrepareSCCall = exports.helperGetWeb3Client = exports.helperBroadcastTx = void 0;
const blockchain_1 = require("../blockchain");
const marketplace_1 = require("../contracts/marketplace");
const model_1 = require("../model");
const transaction_1 = require("../transaction");
const lodash_1 = require("lodash");
const crypto_1 = require("@harmony-js/crypto");
const helperBroadcastTx = async (chain, txData, signatureId) => {
switch (chain) {
case model_1.Currency.CELO:
return await blockchain_1.celoBroadcast(txData, signatureId);
case model_1.Currency.ONE:
return await blockchain_1.oneBroadcast(txData, signatureId);
case model_1.Currency.ETH:
return await blockchain_1.ethBroadcast(txData, signatureId);
case model_1.Currency.BSC:
return await blockchain_1.bscBroadcast(txData, signatureId);
case model_1.Currency.MATIC:
return await blockchain_1.polygonBroadcast(txData, signatureId);
case model_1.Currency.KLAY:
return await blockchain_1.klaytnBroadcast(txData, signatureId);
case model_1.Currency.TRON:
return await blockchain_1.tronBroadcast(txData, signatureId);
default:
throw new Error('Unsupported chain');
}
};
exports.helperBroadcastTx = helperBroadcastTx;
const helperGetWeb3Client = (testnet, chain, provider) => {
switch (chain) {
case model_1.Currency.CELO:
return transaction_1.getCeloClient(provider);
case model_1.Currency.ONE:
return transaction_1.prepareOneClient(testnet, provider);
case model_1.Currency.XDC:
return transaction_1.getXdcClient(provider);
case model_1.Currency.ETH:
return transaction_1.getClient(provider);
case model_1.Currency.BSC:
return transaction_1.getBscClient(provider);
case model_1.Currency.MATIC:
return transaction_1.preparePolygonClient(testnet, provider);
case model_1.Currency.KLAY:
return transaction_1.prepareKlaytnClient(testnet, provider);
default:
throw new Error('Unsupported chain');
}
};
exports.helperGetWeb3Client = helperGetWeb3Client;
// eslint-disable-next-line @typescript-eslint/ban-types
const helperPrepareSCCall = async (testnet, body, clazz, methodName, params, methodSig, provider, abi = marketplace_1.listing.abi) => {
let r;
if (body.chain === model_1.Currency.CELO) {
r = new model_1.CeloSmartContractMethodInvocation();
}
else {
r = new model_1.SmartContractMethodInvocation();
}
r.fee = body.fee;
r.nonce = body.nonce;
r.fromPrivateKey = body.fromPrivateKey;
r.signatureId = body.signatureId;
r.index = body.index;
r.amount = body.amount;
r.contractAddress = body.contractAddress;
r.methodName = methodName;
r.params = params;
r.methodABI = abi.find(a => a.name === r.methodName);
switch (body.chain) {
case model_1.Currency.CELO:
return await transaction_1.prepareCeloSmartContractWriteMethodInvocation(testnet, Object.assign(Object.assign({}, r), { feeCurrency: body.feeCurrency || model_1.Currency.CELO }), provider);
case model_1.Currency.ONE:
return await transaction_1.prepareOneSmartContractWriteMethodInvocation(testnet, r, provider);
case model_1.Currency.XDC:
return await transaction_1.prepareXdcSmartContractWriteMethodInvocation(r, provider);
case model_1.Currency.ETH:
return await transaction_1.prepareSmartContractWriteMethodInvocation(r, provider);
case model_1.Currency.BSC:
return await transaction_1.prepareBscSmartContractWriteMethodInvocation(r, provider);
case model_1.Currency.MATIC:
return await transaction_1.preparePolygonSmartContractWriteMethodInvocation(testnet, r, provider);
case model_1.Currency.KLAY:
return await transaction_1.prepareKlaytnSmartContractWriteMethodInvocation(testnet, r, provider);
case model_1.Currency.TRON:
r.methodName = methodSig;
return await transaction_1.prepareTronSmartContractInvocation(testnet, r, body.feeLimit, body.from, provider);
default:
throw new Error('Unsupported combination of inputs.');
}
};
exports.helperPrepareSCCall = helperPrepareSCCall;
const normalizeAddress = (chain, address) => {
var _a;
if (lodash_1.isNil(chain) || lodash_1.isEmpty(address))
return address;
switch (chain) {
case model_1.Currency.ONE:
return (address === null || address === void 0 ? void 0 : address.startsWith('one')) ? new crypto_1.HarmonyAddress(address).basicHex : address;
case model_1.Currency.XDC:
if (!(address === null || address === void 0 ? void 0 : address.startsWith('xdc')))
return address;
return (_a = address === null || address === void 0 ? void 0 : address.trim()) === null || _a === void 0 ? void 0 : _a.replace('xdc', '0x');
default:
return address;
}
};
exports.normalizeAddress = normalizeAddress;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw4Q0FRdUI7QUFDdkIsMERBQW1EO0FBQ25ELG9DQUFzRztBQUN0RyxnREFld0I7QUFFeEIsbUNBQXdDO0FBQ3hDLCtDQUFtRDtBQUU1QyxNQUFNLGlCQUFpQixHQUFHLEtBQUssRUFBRSxLQUFlLEVBQUUsTUFBYyxFQUFFLFdBQW9CLEVBQUUsRUFBRTtJQUMvRixRQUFRLEtBQUssRUFBRTtRQUNiLEtBQUssZ0JBQVEsQ0FBQyxJQUFJO1lBQ2hCLE9BQU8sTUFBTSwwQkFBYSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsRCxLQUFLLGdCQUFRLENBQUMsR0FBRztZQUNmLE9BQU8sTUFBTSx5QkFBWSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNqRCxLQUFLLGdCQUFRLENBQUMsR0FBRztZQUNmLE9BQU8sTUFBTSx5QkFBWSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNqRCxLQUFLLGdCQUFRLENBQUMsR0FBRztZQUNmLE9BQU8sTUFBTSx5QkFBWSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNqRCxLQUFLLGdCQUFRLENBQUMsS0FBSztZQUNqQixPQUFPLE1BQU0sNkJBQWdCLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3JELEtBQUssZ0JBQVEsQ0FBQyxJQUFJO1lBQ2hCLE9BQU8sTUFBTSw0QkFBZSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNwRCxLQUFLLGdCQUFRLENBQUMsSUFBSTtZQUNoQixPQUFPLE1BQU0sMEJBQWEsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDbEQ7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FDeEM7QUFDSCxDQUFDLENB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