UNPKG

zodor-protocol-web3

Version:

SDK to interact with zodor protocol

45 lines 2.06 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Treasury = void 0; const Treasury_json_1 = __importDefault(require("../abi/Treasury.json")); const ContractFactory_1 = require("../factories/ContractFactory"); const utils_1 = require("../utils"); const WalletFactory_1 = require("../factories/WalletFactory"); class Treasury { contract; network; constructor(options) { const { network, contractRunner, contractAddress, privateKey, customRpcUrl } = options; if (!network) throw new Error('network is required'); if (contractRunner) { const contractFactory = new ContractFactory_1.ContractFactory(); this.contract = contractFactory.createContract(contractAddress, Treasury_json_1.default.abi, contractRunner); } else { const rpcProvider = (0, utils_1.getRpcProvider)(network, customRpcUrl); let wallet; if (privateKey) { const walletFactory = new WalletFactory_1.WalletFactory(rpcProvider); wallet = walletFactory.createWallet(privateKey); } const contractFactory = new ContractFactory_1.ContractFactory(); this.contract = contractFactory.createContract(contractAddress, Treasury_json_1.default.abi, wallet || rpcProvider); } this.network = network; } async purchase(tokenAddress, usdAmount, eAmount, deadline, transferSignature, purchaseSignature) { return await this.contract.purchase(tokenAddress, usdAmount, eAmount, deadline, transferSignature, purchaseSignature); } async addMerc20Token(tokenAddress) { return await this.contract.addToken(tokenAddress); } async removeMerc20token(tokenAddress) { return await this.contract.removeToken(tokenAddress); } } exports.Treasury = Treasury; //# sourceMappingURL=treasury.js.map