@tatumio/tatum-v1
Version:
Tatum API client allows browsers and Node.js clients to interact with Tatum API.
87 lines • 7.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.sendTransaction = exports.storeData = void 0;
const tatum_1 = require("../connector/tatum");
const model_1 = require("../model");
const bsc_1 = require("./bsc");
const celo_1 = require("./celo");
const eth_1 = require("./eth");
const one_1 = require("./one");
const polygon_1 = require("./polygon");
const tron_1 = require("./tron");
const xdc_1 = require("./xdc");
const klaytn_1 = require("./klaytn");
/**
* Store any arbitrary data on the blockchain.
* @param testnet if we are on testnet or not
* @param body Body of the transaction.
* @param provider Optional provider to use for broadcasting signed tx to the blockchain.
*/
const storeData = async (testnet, body, provider) => {
await tatum_1.validateBody(body, model_1.CreateRecord);
switch (body.chain) {
case model_1.Currency.ETH:
return await eth_1.sendStoreDataTransaction(body, provider);
case model_1.Currency.CELO:
return await celo_1.sendCeloStoreDataSignedTransaction(testnet, body, provider);
case model_1.Currency.BSC:
return await bsc_1.sendBscStoreDataTransaction(body, provider);
case model_1.Currency.KLAY:
return await klaytn_1.sendKlaytnStoreDataTransaction(testnet, body, provider);
case model_1.Currency.XDC:
return await xdc_1.sendXdcStoreDataTransaction(body, provider);
case model_1.Currency.ONE:
return await one_1.sendOneStoreDataTransaction(testnet, body, provider);
case model_1.Currency.MATIC:
return await polygon_1.sendPolygonStoreDataTransaction(testnet, body, provider);
default:
throw new Error('Unsupported blockchain.');
}
};
exports.storeData = storeData;
/**
* Perform any native asset transaction.
* @param testnet if we are on testnet or not
* @param chain Blockchain to work with. ETH,CELO,MATIC,ONE,TRON,BSC supported now.
* @param body Body of the transaction.
* @param provider Optional provider to use for broadcasting signed tx to the blockchain.
*/
const sendTransaction = async (testnet, chain, body, provider) => {
switch (chain) {
case model_1.Currency.CELO: {
const b = body;
b.feeCurrency = model_1.Currency.CELO;
return b.contractAddress ? celo_1.sendCeloErc20Transaction(testnet, b) : celo_1.sendCeloOrcUsdTransaction(testnet, b, provider);
}
case model_1.Currency.ETH: {
const b = body;
return b.contractAddress ? eth_1.sendCustomErc20Transaction(b, provider) : eth_1.sendEthOrErc20Transaction(b, provider);
}
case model_1.Currency.MATIC: {
const b = body;
return b.contractAddress ? polygon_1.sendPolygonTransferErc20SignedTransaction(testnet, b, provider) : polygon_1.sendPolygonTransaction(testnet, b, provider);
}
case model_1.Currency.KLAY: {
const b = body;
return b.contractAddress ? klaytn_1.sendKlaytnTransferErc20SignedTransaction(testnet, b, provider) : klaytn_1.sendKlaytnTransaction(testnet, b, provider);
}
case model_1.Currency.ONE: {
const b = body;
return b.contractAddress ? one_1.sendOneTransfer20SignedTransaction(testnet, b, provider) : one_1.sendOneTransaction(testnet, b, provider);
}
case model_1.Currency.TRON:
// @ts-ignore
if (body.contractAddress) {
throw new Error('Cannot work with TRON and contract address');
}
return tron_1.sendTronTransaction(testnet, body);
case model_1.Currency.BSC: {
const b = body;
return b.contractAddress ? bsc_1.sendCustomBep20Transaction(b, provider) : bsc_1.sendBscOrBep20Transaction(b, provider);
}
default:
throw new Error('Unsupported blockchain.');
}
};
exports.sendTransaction = sendTransaction;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vYWJzdHJhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQWtEO0FBQ2xELG9DQU9rQjtBQUNsQiwrQkFBMkc7QUFDM0csaUNBQWlIO0FBQ2pILCtCQUF3RztBQUN4RywrQkFBNEc7QUFDNUcsdUNBSW1CO0FBQ25CLGlDQUE2QztBQUM3QywrQkFBb0Q7QUFDcEQscUNBSWlCO0FBRWpCOzs7OztHQUtHO0FBQ0ksTUFBTSxTQUFTLEdBQUcsS0FBSyxFQUFFLE9BQWdCLEVBQUUsSUFBa0IsRUFBRSxRQUFpQixFQUFFLEVBQUU7SUFDekYsTUFBTSxvQkFBWSxDQUFDLElBQUksRUFBRSxvQkFBWSxDQUFDLENBQUM7SUFDdkMsUUFBUSxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ2xCLEtBQUssZ0JBQVEsQ0FBQyxHQUFHO1lBQ2YsT0FBTyxNQUFNLDhCQUF3QixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4RCxLQUFLLGdCQUFRLENBQUMsSUFBSTtZQUNoQixPQUFPLE1BQU0seUNBQWtDLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzRSxLQUFLLGdCQUFRLENBQUMsR0FBRztZQUNmLE9BQU8sTUFBTSxpQ0FBMkIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0QsS0FBSyxnQkFBUSxDQUFDLElBQUk7WUFDaEIsT0FBTyxNQUFNLHVDQUE4QixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkUsS0FBSyxnQkFBUSxDQUFDLEdBQUc7WUFDZixPQUFPLE1BQU0saUNBQTJCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzNELEtBQUssZ0JBQVEsQ0FBQyxHQUFHO1lBQ2YsT0FBTyxNQUFNLGlDQUEyQixDQUFDLE9BQU8s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