@celo/contractkit
Version:
Celo's ContractKit to interact with Celo network
153 lines • 6.89 kB
JavaScript
;
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