UNPKG

@ardier16/q-js-sdk

Version:

Typescript Library to interact with Q System Contracts

244 lines 15.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ContractRegistryInstance = void 0; const SystemContractInstance_1 = require("./SystemContractInstance"); const DefaultAllocationProxyInstance_1 = require("./tokeneconomics/DefaultAllocationProxyInstance"); const RootNodeRewardProxyInstance_1 = require("./tokeneconomics/RootNodeRewardProxyInstance"); const ValidationRewardProxyInstance_1 = require("./tokeneconomics/ValidationRewardProxyInstance"); const ValidationRewardPoolsInstance_1 = require("./tokeneconomics/ValidationRewardPoolsInstance"); const RootNodesInstance_1 = require("./governance/rootNodes/RootNodesInstance"); const RootNodesMembershipVotingInstance_1 = require("./governance/rootNodes/RootNodesMembershipVotingInstance"); const RootNodesSlashingVotingInstance_1 = require("./governance/rootNodes/RootNodesSlashingVotingInstance"); const ValidatorsInstance_1 = require("./governance/validators/ValidatorsInstance"); const ValidatorsSlashingVotingInstance_1 = require("./governance/validators/ValidatorsSlashingVotingInstance"); const ConstitutionInstance_1 = require("./governance/constitution/ConstitutionInstance"); const VotingWeightProxyInstance_1 = require("./governance/VotingWeightProxyInstance"); const EPDRParametersInstance_1 = require("./governance/experts/EPDRParametersInstance"); const EPDRMembershipInstance_1 = require("./governance/experts/EPDRMembershipInstance"); const EPDRMembershipVotingInstance_1 = require("./governance/experts/EPDRMembershipVotingInstance"); const EPDRParametersVotingInstance_1 = require("./governance/experts/EPDRParametersVotingInstance"); const EPRSParametersInstance_1 = require("./governance/experts/EPRSParametersInstance"); const EPRSMembershipInstance_1 = require("./governance/experts/EPRSMembershipInstance"); const EPRSMembershipVotingInstance_1 = require("./governance/experts/EPRSMembershipVotingInstance"); const EPRSParametersVotingInstance_1 = require("./governance/experts/EPRSParametersVotingInstance"); const EPQFIParametersInstance_1 = require("./governance/experts/EPQFIParametersInstance"); const EPQFIMembershipInstance_1 = require("./governance/experts/EPQFIMembershipInstance"); const EPQFIMembershipVotingInstance_1 = require("./governance/experts/EPQFIMembershipVotingInstance"); const QVaultInstance_1 = require("./tokeneconomics/QVaultInstance"); const SystemReserveInstance_1 = require("./tokeneconomics/SystemReserveInstance"); const BorrowingCoreInstance_1 = require("./defi/BorrowingCoreInstance"); const SavingInstance_1 = require("./defi/SavingInstance"); const ERC20Instance_1 = require("./defi/token/ERC20Instance"); const SystemBalanceInstance_1 = require("./defi/SystemBalanceInstance"); const LiquidationAuctionInstance_1 = require("./defi/LiquidationAuctionInstance"); const SystemSurplusAuctionInstance_1 = require("./defi/SystemSurplusAuctionInstance"); const SystemDebtAuctionInstance_1 = require("./defi/SystemDebtAuctionInstance"); const TokenBridgeAdminProxyInstance_1 = require("./defi/TokenBridgeAdminProxyInstance"); const ConstitutionVotingInstance_1 = require("./governance/constitution/ConstitutionVotingInstance"); const EPQFIParametersVotingInstance_1 = require("./governance/experts/EPQFIParametersVotingInstance"); const VestingInstance_1 = require("./tokeneconomics/VestingInstance"); const EmergencyUpdateVotingInstance_1 = require("./governance/EmergencyUpdateVotingInstance"); const GeneralUpdateVotingInstance_1 = require("./governance/GeneralUpdateVotingInstance"); const ValidatorSlashingEscrowInstance_1 = require("./governance/validators/ValidatorSlashingEscrowInstance"); const RootNodeSlashingEscrowInstance_1 = require("./governance/rootNodes/RootNodeSlashingEscrowInstance"); const PushPaymentsInstance_1 = require("./tokeneconomics/PushPaymentsInstance"); const ContractRegistryUpgradeVoting_1 = require("./governance/ContractRegistryUpgradeVoting"); const ContractRegistryAddressVoting_1 = require("./governance/ContractRegistryAddressVoting"); const AccountAliases_1 = require("./governance/AccountAliases"); const defaultAddress = '0xc3E589056Ece16BCB88c6f9318e9a7343b663522'; /** * Contract registry instance to interact with Contract registry contract. * See [onchain documentation](@system-contracts-repo/@network/ContractRegistry/) for more details. */ class ContractRegistryInstance extends SystemContractInstance_1.SystemContractInstance { constructor(web3, address) { super(web3, 'ContractRegistry.json', address || defaultAddress); } /** * [External documentation](@system-contracts-repo/@network/ContractRegistry/#getmaintainers) */ async getMaintainers() { return this.instance.methods.getMaintainers().call(); } /** * Retrieve contract balances * @returns contracts with balance and address */ async getSystemContractsAndBalances() { const systemContractEntries = await this.instance.methods.getContracts().call(); const balances = await this.adapter.getBalances(systemContractEntries.map(e => e[1])); const systemContracts = systemContractEntries.map((e, i) => { return { ...balances[i], registryKey: e[0], }; }); return systemContracts; } /** * Main method to create instance. * @param t constructor * @param registryKey contract registry key * @returns contract instance */ async createInstance(t, registryKey) { const address = await this.instance.methods.mustGetAddress(registryKey).call(); // console.log(`creating instance for registryKey '${registryKey}' at ${address}`) return new t(this.adapter.web3, address); } async rootNodes() { const roots = await this.createInstance(RootNodesInstance_1.RootNodesInstance, RootNodesInstance_1.RootNodesInstance.registryKey); roots.votingWeightProxy = await this.votingWeightProxy(); return roots; } async rootNodesMembershipVoting() { const rootsMV = await this.createInstance(RootNodesMembershipVotingInstance_1.RootNodesMembershipVotingInstance, RootNodesMembershipVotingInstance_1.RootNodesMembershipVotingInstance.registryKey); rootsMV.votingWeightProxy = await this.votingWeightProxy(); return rootsMV; } async rootNodesSlashingVoting() { const rootsSV = await this.createInstance(RootNodesSlashingVotingInstance_1.RootNodesSlashingVotingInstance, RootNodesSlashingVotingInstance_1.RootNodesSlashingVotingInstance.registryKey); rootsSV.votingWeightProxy = await this.votingWeightProxy(); return rootsSV; } async validators() { const validators = await this.createInstance(ValidatorsInstance_1.ValidatorsInstance, ValidatorsInstance_1.ValidatorsInstance.registryKey); validators.votingWeightProxy = await this.votingWeightProxy(); return validators; } async validatorsSlashingVoting() { return this.createInstance(ValidatorsSlashingVotingInstance_1.ValidatorsSlashingVotingInstance, ValidatorsSlashingVotingInstance_1.ValidatorsSlashingVotingInstance.registryKey); } async vesting() { return this.createInstance(VestingInstance_1.VestingInstance, VestingInstance_1.VestingInstance.registryKey); } async constitution() { return this.createInstance(ConstitutionInstance_1.ConstitutionInstance, ConstitutionInstance_1.ConstitutionInstance.registryKey); } async constitutionVoting() { const constitutionVoting = await this.createInstance(ConstitutionVotingInstance_1.ConstitutionVotingInstance, ConstitutionVotingInstance_1.ConstitutionVotingInstance.registryKey); constitutionVoting.votingWeightProxy = await this.votingWeightProxy(); return constitutionVoting; } async votingWeightProxy() { return this.createInstance(VotingWeightProxyInstance_1.VotingWeightProxyInstance, VotingWeightProxyInstance_1.VotingWeightProxyInstance.registryKey); } async defaultAllocationProxy() { return this.createInstance(DefaultAllocationProxyInstance_1.DefaultAllocationProxyInstance, DefaultAllocationProxyInstance_1.DefaultAllocationProxyInstance.registryKey); } async validationRewardProxy() { return this.createInstance(ValidationRewardProxyInstance_1.ValidationRewardProxyInstance, ValidationRewardProxyInstance_1.ValidationRewardProxyInstance.registryKey); } async validationRewardPools() { return this.createInstance(ValidationRewardPoolsInstance_1.ValidationRewardPoolsInstance, ValidationRewardPoolsInstance_1.ValidationRewardPoolsInstance.registryKey); } async rootNodeRewardProxy() { return this.createInstance(RootNodeRewardProxyInstance_1.RootNodeRewardProxyInstance, RootNodeRewardProxyInstance_1.RootNodeRewardProxyInstance.registryKey); } async emergencyUpdateVoting() { return this.createInstance(EmergencyUpdateVotingInstance_1.EmergencyUpdateVotingInstance, EmergencyUpdateVotingInstance_1.EmergencyUpdateVotingInstance.registryKey); } async generalUpdateVoting() { const generalUpdateVoting = await this.createInstance(GeneralUpdateVotingInstance_1.GeneralUpdateVotingInstance, GeneralUpdateVotingInstance_1.GeneralUpdateVotingInstance.registryKey); generalUpdateVoting.votingWeightProxy = await this.votingWeightProxy(); return generalUpdateVoting; } /** @deprecated use qVault instead */ async piggyBank() { return this.createInstance(QVaultInstance_1.QVaultInstance, QVaultInstance_1.QVaultInstance.registryKey); } async qVault() { const qVault = await this.createInstance(QVaultInstance_1.QVaultInstance, QVaultInstance_1.QVaultInstance.registryKey); qVault.votingWeightProxy = await this.votingWeightProxy(); return qVault; } async systemReserve() { return this.createInstance(SystemReserveInstance_1.SystemReserveInstance, SystemReserveInstance_1.SystemReserveInstance.registryKey); } async epqfiParameters() { return this.createInstance(EPQFIParametersInstance_1.EPQFIParametersInstance, EPQFIParametersInstance_1.EPQFIParametersInstance.registryKey); } async epqfiParametersVoting() { return this.createInstance(EPQFIParametersVotingInstance_1.EPQFIParametersVotingInstance, EPQFIParametersVotingInstance_1.EPQFIParametersVotingInstance.registryKey); } async epqfiMembershipVoting() { const epqfiMV = await this.createInstance(EPQFIMembershipVotingInstance_1.EPQFIMembershipVotingInstance, EPQFIMembershipVotingInstance_1.EPQFIMembershipVotingInstance.registryKey); epqfiMV.votingWeightProxy = await this.votingWeightProxy(); return epqfiMV; } async epqfiMembership() { return this.createInstance(EPQFIMembershipInstance_1.EPQFIMembershipInstance, EPQFIMembershipInstance_1.EPQFIMembershipInstance.registryKey); } async epdrParameters() { return this.createInstance(EPDRParametersInstance_1.EPDRParametersInstance, EPDRParametersInstance_1.EPDRParametersInstance.registryKey); } async epdrParametersVoting() { return this.createInstance(EPDRParametersVotingInstance_1.EPDRParametersVotingInstance, EPDRParametersVotingInstance_1.EPDRParametersVotingInstance.registryKey); } async epdrMembership() { return this.createInstance(EPDRMembershipInstance_1.EPDRMembershipInstance, EPDRMembershipInstance_1.EPDRMembershipInstance.registryKey); } async epdrMembershipVoting() { const epdrMV = await this.createInstance(EPDRMembershipVotingInstance_1.EPDRMembershipVotingInstance, EPDRMembershipVotingInstance_1.EPDRMembershipVotingInstance.registryKey); epdrMV.votingWeightProxy = await this.votingWeightProxy(); return epdrMV; } async eprsParameters() { return this.createInstance(EPRSParametersInstance_1.EPRSParametersInstance, EPRSParametersInstance_1.EPRSParametersInstance.registryKey); } async eprsParametersVoting() { return this.createInstance(EPRSParametersVotingInstance_1.EPRSParametersVotingInstance, EPRSParametersVotingInstance_1.EPRSParametersVotingInstance.registryKey); } async eprsMembership() { return this.createInstance(EPRSMembershipInstance_1.EPRSMembershipInstance, EPRSMembershipInstance_1.EPRSMembershipInstance.registryKey); } async eprsMembershipVoting() { const eprsMV = await this.createInstance(EPRSMembershipVotingInstance_1.EPRSMembershipVotingInstance, EPRSMembershipVotingInstance_1.EPRSMembershipVotingInstance.registryKey); eprsMV.votingWeightProxy = await this.votingWeightProxy(); return eprsMV; } async borrowingCore(stc) { return this.createInstance(BorrowingCoreInstance_1.BorrowingCoreInstance, `defi.${stc}.borrowing`); } async saving(stc) { return this.createInstance(SavingInstance_1.SavingInstance, `defi.${stc}.saving`); } async stableCoin(stc) { return this.createInstance(ERC20Instance_1.ERC20Instance, `defi.${stc}.coin`); } async systemBalance(stc) { return this.createInstance(SystemBalanceInstance_1.SystemBalanceInstance, `defi.${stc}.systemBalance`); } async liquidationAuction(stc) { return this.createInstance(LiquidationAuctionInstance_1.LiquidationAuctionInstance, `defi.${stc}.liquidationAuction`); } async systemSurplusAuction(stc) { return this.createInstance(SystemSurplusAuctionInstance_1.SystemSurplusAuctionInstance, `defi.${stc}.systemSurplusAuction`); } async systemDebtAuction(stc) { return this.createInstance(SystemDebtAuctionInstance_1.SystemDebtAuctionInstance, `defi.${stc}.systemDebtAuction`); } async validatorSlashingEscrow() { return this.createInstance(ValidatorSlashingEscrowInstance_1.ValidatorSlashingEscrowInstance, ValidatorSlashingEscrowInstance_1.ValidatorSlashingEscrowInstance.registryKey); } async rootNodeSlashingEscrow() { return this.createInstance(RootNodeSlashingEscrowInstance_1.RootNodeSlashingEscrowInstance, RootNodeSlashingEscrowInstance_1.RootNodeSlashingEscrowInstance.registryKey); } async pushPayments() { return this.createInstance(PushPaymentsInstance_1.PushPaymentsInstance, PushPaymentsInstance_1.PushPaymentsInstance.registryKey); } async tokenBridgeAdminProxy() { return this.createInstance(TokenBridgeAdminProxyInstance_1.TokenBridgeAdminProxyInstance, TokenBridgeAdminProxyInstance_1.TokenBridgeAdminProxyInstance.registryKey); } async upgradeVoting() { return this.createInstance(ContractRegistryUpgradeVoting_1.ContractRegistryUpgradeVotingInstance, ContractRegistryUpgradeVoting_1.ContractRegistryUpgradeVotingInstance.registryKey); } async addressVoting() { return this.createInstance(ContractRegistryAddressVoting_1.ContractRegistryAddressVotingInstance, ContractRegistryAddressVoting_1.ContractRegistryAddressVotingInstance.registryKey); } async accountAliases() { return this.createInstance(AccountAliases_1.AccountAliasesInstance, AccountAliases_1.AccountAliasesInstance.registryKey); } } exports.ContractRegistryInstance = ContractRegistryInstance; //# sourceMappingURL=ContractRegistryInstance.js.map