@openzeppelin/hardhat-upgrades
Version:
[](https://docs.openzeppelin.com/upgrades-plugins/hardhat-upgrades) [](https://www.npmjs.org/package/@openzeppelin/h
128 lines • 4.38 kB
TypeScript
import type { NetworkConnection } from 'hardhat/types/network';
import type { GetContractReturnType, KeyedClient } from '@nomicfoundation/hardhat-viem/types';
import type { Address } from 'viem';
/**
* ABI of the UpgradeableBeacon contract from OpenZeppelin Contracts 5.x, which is the beacon
* that `deployBeacon` deploys. Exposed as a `const` so that the beacon contract instances
* returned by the viem-based API have typed `read` and `write` functions.
*/
export declare const upgradeableBeaconAbi: readonly [{
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "implementation_";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "initialOwner";
readonly type: "address";
}];
readonly stateMutability: "nonpayable";
readonly type: "constructor";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "implementation";
readonly type: "address";
}];
readonly name: "BeaconInvalidImplementation";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "owner";
readonly type: "address";
}];
readonly name: "OwnableInvalidOwner";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "account";
readonly type: "address";
}];
readonly name: "OwnableUnauthorizedAccount";
readonly type: "error";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "previousOwner";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "newOwner";
readonly type: "address";
}];
readonly name: "OwnershipTransferred";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "implementation";
readonly type: "address";
}];
readonly name: "Upgraded";
readonly type: "event";
}, {
readonly inputs: readonly [];
readonly name: "implementation";
readonly outputs: readonly [{
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "owner";
readonly outputs: readonly [{
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "renounceOwnership";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "newOwner";
readonly type: "address";
}];
readonly name: "transferOwnership";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "newImplementation";
readonly type: "address";
}];
readonly name: "upgradeTo";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}];
/**
* A viem contract instance for an UpgradeableBeacon contract.
*/
export type UpgradeableBeaconContract = GetContractReturnType<typeof upgradeableBeaconAbi>;
/**
* Gets a viem contract instance for the UpgradeableBeacon at the given address.
* The beacon contract is not a project artifact, so the instance is created directly with
* viem's `getContract` instead of `connection.viem.getContractAt`, using the same clients
* that hardhat-viem would use by default.
*/
export declare function getUpgradeableBeaconContract(connection: NetworkConnection, address: Address, client?: KeyedClient): Promise<UpgradeableBeaconContract>;
//# sourceMappingURL=upgradeable-beacon.d.ts.map