UNPKG

@bcpros/crypto-wallet-core

Version:

A multi-currency support library for address derivation, private key creation, and transaction creation

145 lines 5.81 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MATICMULTISIGTxProvider = void 0; const web3_1 = __importDefault(require("web3")); const abi_1 = require("../eth-multisig/abi"); const matic_1 = require("../matic"); class MATICMULTISIGTxProvider extends matic_1.MATICTxProvider { getMultisigContract(multisigContractAddress) { const web3 = new web3_1.default(); const contract = new web3.eth.Contract(abi_1.MultisigAbi, multisigContractAddress); return contract; } create(params) { const { multisigContractAddress } = params; const recipients = [{ address: multisigContractAddress, amount: '0' }]; const newParams = { ...params, recipients }; return super.create(newParams); } instantiateEncodeData(params) { const { addresses, requiredConfirmations, multisigGnosisContractAddress, dailyLimit } = params; let requiredConfirmationsStr = Number(requiredConfirmations).toLocaleString('en', { useGrouping: false }); let dailyLimitStr = Number(dailyLimit).toLocaleString('en', { useGrouping: false }); const data = this.getMultisigContract(multisigGnosisContractAddress) .methods.create(addresses, requiredConfirmationsStr, dailyLimitStr) .encodeABI(); return data; } addOwnerEncodeData(params) { const { multisigContractAddress, newOwnerAddress } = params; const data = this.getMultisigContract(multisigContractAddress) .methods.addOwner(newOwnerAddress) .encodeABI(); return this.submitEncodeData({ recipients: [ { address: multisigContractAddress, amount: '0' } ], multisigContractAddress, data }); } removeOwnerEncodeData(params) { const { multisigContractAddress, newOwnerAddress } = params; const data = this.getMultisigContract(multisigContractAddress) .methods.removeOwner(newOwnerAddress) .encodeABI(); return this.submitEncodeData({ recipients: [ { address: multisigContractAddress, amount: '0' } ], multisigContractAddress, data }); } replaceOwnerEncodeData(params) { const { multisigContractAddress, newOwnerAddress, oldOwnerAddress } = params; const data = this.getMultisigContract(multisigContractAddress) .methods.removeOwner(oldOwnerAddress, newOwnerAddress) .encodeABI(); return this.submitEncodeData({ recipients: [ { address: multisigContractAddress, amount: '0' } ], multisigContractAddress, data }); } changeRequirementEncodedData(params) { const { requiredConfirmations, multisigContractAddress } = params; let data; let requiredConfirmationsStr = Number(requiredConfirmations).toLocaleString('en', { useGrouping: false }); data = this.getMultisigContract(multisigContractAddress) .methods.changeRequirement(requiredConfirmationsStr) .encodeABI(); return this.submitEncodeData({ recipients: [ { address: multisigContractAddress, amount: '0' } ], multisigContractAddress, data }); } changeDailyLimitEncodedData(params) { const { requiredConfirmations, multisigContractAddress } = params; let data; let requiredConfirmationsStr = Number(requiredConfirmations).toLocaleString('en', { useGrouping: false }); data = this.getMultisigContract(multisigContractAddress) .methods.changeDailyLimit(requiredConfirmationsStr) .encodeABI(); return this.submitEncodeData({ recipients: [ { address: multisigContractAddress, amount: '0' } ], multisigContractAddress, data }); } confirmTransactionEncodeData(params) { const { multisigContractAddress, transactionId } = params; const data = this.getMultisigContract(multisigContractAddress) .methods.confirmTransaction(transactionId) .encodeABI(); return data; } revokeConfirmationEncodeData(params) { const { multisigContractAddress, transactionId } = params; const data = this.getMultisigContract(multisigContractAddress) .methods.revokeConfirmation(transactionId) .encodeABI(); return data; } executeTransactionEncodeData(params) { const { multisigContractAddress, transactionId } = params; const data = this.getMultisigContract(multisigContractAddress) .methods.executeTransaction(transactionId) .encodeABI(); return data; } submitEncodeData(params) { const { multisigContractAddress, data } = params; const [{ address, amount }] = params.recipients; const amountStr = Number(amount).toLocaleString('en', { useGrouping: false }); const contract = this.getMultisigContract(multisigContractAddress); return contract.methods.submitTransaction(address, amountStr, data).encodeABI(); } } exports.MATICMULTISIGTxProvider = MATICMULTISIGTxProvider; //# sourceMappingURL=index.js.map