UNPKG

@celo/contractkit

Version:

Celo's ContractKit to interact with Celo network

153 lines 6.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setImplementationOnProxy = exports.getInitializeAbiOfImplementation = exports.PROXY_SET_AND_INITIALIZE_IMPLEMENTATION_SIGNATURE = exports.PROXY_SET_IMPLEMENTATION_SIGNATURE = exports.PROXY_ABI = exports.TRANSFER_OWNERSHIP_ABI = exports.SET_AND_INITIALIZE_IMPLEMENTATION_ABI = exports.SET_IMPLEMENTATION_ABI = exports.GET_IMPLEMENTATION_ABI = void 0; // tslint:disable: ordered-imports const Accounts_1 = require("@celo/abis/web3/Accounts"); const Attestations_1 = require("@celo/abis/web3/Attestations"); const CeloUnreleasedTreasury_1 = require("@celo/abis/web3/CeloUnreleasedTreasury"); const DoubleSigningSlasher_1 = require("@celo/abis/web3/DoubleSigningSlasher"); const DowntimeSlasher_1 = require("@celo/abis/web3/DowntimeSlasher"); const Election_1 = require("@celo/abis/web3/Election"); const EpochManager_1 = require("@celo/abis/web3/EpochManager"); const EpochManagerEnabler_1 = require("@celo/abis/web3/EpochManagerEnabler"); const EpochRewards_1 = require("@celo/abis/web3/EpochRewards"); const Escrow_1 = require("@celo/abis/web3/Escrow"); const FederatedAttestations_1 = require("@celo/abis/web3/FederatedAttestations"); const FeeCurrencyDirectory_1 = require("@celo/abis/web3/FeeCurrencyDirectory"); const FeeCurrencyWhitelist_1 = require("@celo/abis/web3/FeeCurrencyWhitelist"); const FeeHandler_1 = require("@celo/abis/web3/FeeHandler"); const Freezer_1 = require("@celo/abis/web3/Freezer"); const GoldToken_1 = require("@celo/abis/web3/GoldToken"); const Governance_1 = require("@celo/abis/web3/Governance"); const LockedGold_1 = require("@celo/abis/web3/LockedGold"); const MentoFeeHandlerSeller_1 = require("@celo/abis/web3/MentoFeeHandlerSeller"); const MultiSig_1 = require("@celo/abis/web3/MultiSig"); const OdisPayments_1 = require("@celo/abis/web3/OdisPayments"); const Proxy_1 = require("@celo/abis/web3/Proxy"); const Registry_1 = require("@celo/abis/web3/Registry"); const ScoreManager_1 = require("@celo/abis/web3/ScoreManager"); const SortedOracles_1 = require("@celo/abis/web3/SortedOracles"); const UniswapFeeHandlerSeller_1 = require("@celo/abis/web3/UniswapFeeHandlerSeller"); const Validators_1 = require("@celo/abis/web3/Validators"); const Reserve_1 = require("@celo/abis/web3/mento/Reserve"); const StableToken_1 = require("@celo/abis/web3/mento/StableToken"); exports.GET_IMPLEMENTATION_ABI = { constant: true, inputs: [], name: '_getImplementation', outputs: [ { name: 'implementation', type: 'address', }, ], payable: false, stateMutability: 'view', type: 'function', signature: '0x42404e07', }; exports.SET_IMPLEMENTATION_ABI = { constant: false, inputs: [ { name: 'implementation', type: 'address', }, ], name: '_setImplementation', outputs: [], payable: false, stateMutability: 'nonpayable', type: 'function', signature: '0xbb913f41', }; exports.SET_AND_INITIALIZE_IMPLEMENTATION_ABI = { constant: false, inputs: [ { name: 'implementation', type: 'address', }, { name: 'callbackData', type: 'bytes', }, ], name: '_setAndInitializeImplementation', outputs: [], payable: true, stateMutability: 'payable', type: 'function', signature: '0x03386ba3', }; exports.TRANSFER_OWNERSHIP_ABI = { constant: false, inputs: [ { name: 'newOwner', type: 'address', }, ], name: '_transferOwnership', outputs: [], payable: false, stateMutability: 'nonpayable', type: 'function', signature: '0xd29d44ee', }; exports.PROXY_ABI = [ exports.GET_IMPLEMENTATION_ABI, exports.SET_IMPLEMENTATION_ABI, exports.SET_AND_INITIALIZE_IMPLEMENTATION_ABI, exports.TRANSFER_OWNERSHIP_ABI, ]; exports.PROXY_SET_IMPLEMENTATION_SIGNATURE = exports.SET_IMPLEMENTATION_ABI.signature; exports.PROXY_SET_AND_INITIALIZE_IMPLEMENTATION_SIGNATURE = exports.SET_AND_INITIALIZE_IMPLEMENTATION_ABI.signature; const findInitializeAbi = (items) => items.find((item) => item.name === 'initialize'); const initializeAbiMap = { AccountsProxy: findInitializeAbi(Accounts_1.ABI), AttestationsProxy: findInitializeAbi(Attestations_1.ABI), CeloUnreleasedTreasuryProxy: findInitializeAbi(CeloUnreleasedTreasury_1.ABI), DoubleSigningSlasherProxy: findInitializeAbi(DoubleSigningSlasher_1.ABI), DowntimeSlasherProxy: findInitializeAbi(DowntimeSlasher_1.ABI), ElectionProxy: findInitializeAbi(Election_1.ABI), EpochManagerProxy: findInitializeAbi(EpochManager_1.ABI), EpochManagerEnablerProxy: findInitializeAbi(EpochManagerEnabler_1.ABI), EpochRewardsProxy: findInitializeAbi(EpochRewards_1.ABI), EscrowProxy: findInitializeAbi(Escrow_1.ABI), FederatedAttestationsProxy: findInitializeAbi(FederatedAttestations_1.ABI), FeeCurrencyDirectoryProxy: findInitializeAbi(FeeCurrencyDirectory_1.ABI), FeeCurrencyWhitelistProxy: findInitializeAbi(FeeCurrencyWhitelist_1.ABI), FeeHandlerProxy: findInitializeAbi(FeeHandler_1.ABI), MentoFeeHandlerSellerProxy: findInitializeAbi(MentoFeeHandlerSeller_1.ABI), UniswapFeeHandlerSellerProxy: findInitializeAbi(UniswapFeeHandlerSeller_1.ABI), FreezerProxy: findInitializeAbi(Freezer_1.ABI), GoldTokenProxy: findInitializeAbi(GoldToken_1.ABI), GovernanceProxy: findInitializeAbi(Governance_1.ABI), LockedGoldProxy: findInitializeAbi(LockedGold_1.ABI), MultiSigProxy: findInitializeAbi(MultiSig_1.ABI), OdisPaymentsProxy: findInitializeAbi(OdisPayments_1.ABI), ProxyProxy: findInitializeAbi(Proxy_1.ABI), RegistryProxy: findInitializeAbi(Registry_1.ABI), ReserveProxy: findInitializeAbi(Reserve_1.ABI), ScoreManagerProxy: findInitializeAbi(ScoreManager_1.ABI), SortedOraclesProxy: findInitializeAbi(SortedOracles_1.ABI), StableTokenProxy: findInitializeAbi(StableToken_1.ABI), StableTokenEURProxy: findInitializeAbi(StableToken_1.ABI), StableTokenBRLProxy: findInitializeAbi(StableToken_1.ABI), ValidatorsProxy: findInitializeAbi(Validators_1.ABI), }; const getInitializeAbiOfImplementation = (proxyContractName) => { const initializeAbi = initializeAbiMap[proxyContractName]; if (!initializeAbi) { throw new Error(`Initialize method not found on implementation of ${proxyContractName}`); } return initializeAbi; }; exports.getInitializeAbiOfImplementation = getInitializeAbiOfImplementation; const setImplementationOnProxy = (address, web3) => { const proxyWeb3Contract = new web3.eth.Contract(exports.PROXY_ABI); return proxyWeb3Contract.methods._setImplementation(address); }; exports.setImplementationOnProxy = setImplementationOnProxy; //# sourceMappingURL=proxy.js.map