Geb Admin
This class extends the core GEB
class with additional tools and contracts that are not used as often as other SAFE management tools. Here you will find utils for contracts such as DSPause, ESM etc. These contracts are scattered across several repositories. Please refer to the smart contract documentation to learn more about them.
IMPORTANT: To avoid bloating the main geb.js package this class is only available in a separate package. Please install it like this:
And after that you are ready to use the admin tools similar to the GEB class:
Constructors
+ new GebAdmin(network
: GebDeployment, provider
: GebProviderInterface | Provider): GebAdmin
Defined in packages/geb-admin/src/geb-admin.ts:52
Parameters:
Name
Type
Description
network
GebDeployment
Either 'kovan'
, 'mainnet'
or an actual list of contract addresses.
provider
GebProviderInterface | Provider
Either a Ethers.js provider or a GEB provider. Support for Web3.js will soon be added.
Returns: GebAdmin
Properties
contracts
• contracts: ContractApis
Inherited from GebAdmin.contracts
Defined in packages/geb/lib/geb.d.ts:70
Object containing all GEB core smart-contracts instances for direct level interactions. All of the following contracts object are one-to-one typed API to the underlying smart-contract. Read-only functions that do not change the blockchain state return a promise of the return data. State modifying function will return synchronously a pre-filled transaction request object:
This object follow the TransactionRequest model of ethers.js (Also similar to the model used by web.js). The object can be completed with properties such as from
, gasPrice
, gas
(gas limit, web3.js ony) or gasLimit
(gas limit, ethers.js only). The object can then be passed to the sendTransaction
of ehters.js or web3.js
Example:
Currently the following contracts ae available in this property:
SAFEEngine
AccountingEngine
TaxCollector
LiquidationEngine
OracleRelayer
GlobalSettlement
DebtAuctionHouse
PreSettlementSurplusAuctionHouse
PostSettlementSurplusAuctionHouse
SettlementSurplusAuctioneer
GebSafeManager
GetSafes
BasicCollateralJoin
CoinJoin
Coin (System coin ERC20 contract)
GebProxyRegistry
FixedDiscountCollateralAuctionHouse
Weth (ERC20)
For detailed information about the functions of each contract we recommend referring directly to the smart-contract code and documentation
contractsAdmin
• contractsAdmin: AdminApis
Defined in packages/geb-admin/src/geb-admin.ts:52
Object containing all GEB admin contracts instances for low level interactions. It currently has the following contracts:
MultiSigWallet
DsProxy
DsToken
ProtocolTokenAuthority
GebPollingEmitter
GebPrintingPermissions
DsDelegateRoles
DsPause
DsPauseProxy
GovActions
ESM
TokenBurner
FsmGovernanceInterface
DsProxyFactory
GebDeployPauseProxyActions
DsProxy
TxManager
Methods
deployProxy
▸ deployProxy(): object
Inherited from GebAdmin.deployProxy
Defined in packages/geb/lib/geb.d.ts:88
Deploy a new proxy owned by the sender.
Returns: object
chainId? : number
data? : string
from? : string
gasLimit? : BigNumber
gasPrice? : BigNumber
nonce? : number
to? : string
value? : BigNumber
getErc20Contract
▸ getErc20Contract(tokenAddress
: string): Erc20
Inherited from GebAdmin.getErc20Contract
Defined in packages/geb/lib/geb.d.ts:123
Returns an object that can be used to interact with a ERC20 token. Example:
Parameters:
Name
Type
Description
tokenAddress
string
Token contract address
Returns: Erc20
Erc20
getGebContract
▸ getGebContract‹T›(gebContractClass
: GebContractAPIConstructorInterface‹T›, address
: string): T
Inherited from GebAdmin.getGebContract
Defined in packages/geb/lib/geb.d.ts:165
Returns an instance of a specific geb contract given a Geb contract API class at a specified address
Type parameters:
▪ T: BaseContractAPI
Parameters:
Name
Type
Description
gebContractClass
GebContractAPIConstructorInterface‹T›
Class from contracts or adminContracts
address
string
Contract address of the instance
Returns: T
getIncentiveCampaignContract
▸ getIncentiveCampaignContract(campaignNumber
: number): Promise‹StakingRewards›
Inherited from GebAdmin.getIncentiveCampaignContract
Defined in packages/geb/lib/geb.d.ts:131
Help function to get the contract object of an incentive campaign given its number ID
Parameters:
Name
Type
Description
campaignNumber
number
incremental ID of the campaign
Returns: Promise‹StakingRewards›
StakingRewards
getProxyAction
▸ getProxyAction(ownerAddress
: string): Promise‹GebProxyActions›
Inherited from GebAdmin.getProxyAction
Defined in packages/geb/lib/geb.d.ts:84
Given an address returns a GebProxyActions object to execute bundled operations. Important: This requires the address to have deployed a GEB proxy through the proxy registry contract. It will throw a DOES_NOT_OWN_HAVE_PROXY
error if the address specified does not have a proxy. Use the deployProxy function to get a new proxy.
Parameters:
Name
Type
Description
ownerAddress
string
Externally owned user account, Ethereum address that owns a GEB proxy.
Returns: Promise‹GebProxyActions›
getSafe
▸ getSafe(idOrHandler
: string | number, collateralType?
: string): Promise‹Safe›
Inherited from GebAdmin.getSafe
Defined in packages/geb/lib/geb.d.ts:93
Get the SAFE object given a safeManager
id or a safeEngine
handler address.
Parameters:
Name
Type
Description
idOrHandler
string | number
Safe Id or SAFE handler
collateralType?
string
-
Returns: Promise‹Safe›
getSafeFromOwner
▸ getSafeFromOwner(address
: string): Promise‹Safe[]›
Inherited from GebAdmin.getSafeFromOwner
Defined in packages/geb/lib/geb.d.ts:104
Fetch the list of safes owned by an address. This function will fetch safes owned directly through the safeManager and safes owned through the safe manager through a proxy. Safes owned directly by the address at the safeEngine level won't appear here.
Note that this function will make a lot of network calls and is therefore very slow. For front-ends we recommend using pre-indexed data such as the geb-subgraph.
Parameters:
Name
Type
Description
address
string
Returns: Promise‹Safe[]›
gnosisSafeThreshold1SubmitTransaction
▸ gnosisSafeThreshold1SubmitTransaction(sender
: string, to
: string, data
: string): TransactionRequest
Defined in packages/geb-admin/src/geb-admin.ts:203
Submit a transaction to a gnosis safe directly executed. Works only if the threshold on the safe is 1.
Parameters:
Name
Type
Description
sender
string
Proposal submitter
to
string
Proposal target (Usually ds-pause)
data
string
transaction data of the proposal
Returns: TransactionRequest
multiCall
▸ multiCall‹O1, O2, O3›(calls
: [MulticallRequest‹O1›, MulticallRequest‹O2›, MulticallRequest‹O3›]): Promise‹[O1, O2, O3]›
Inherited from GebAdmin.multiCall
Defined in packages/geb/lib/geb.d.ts:136
Type parameters:
▪ O1
▪ O2
▪ O3
Parameters:
Name
Type
calls
[MulticallRequest‹O1›, MulticallRequest‹O2›, MulticallRequest‹O3›]
Returns: Promise‹[O1, O2, O3]›
verifyWebScheduleCallcode
▸ verifyWebScheduleCallcode(govFunctionAbi
: string, params
: any[], earliestExecutionTime
: number, calldata
: string, description?
: string): Promise‹boolean›
Defined in packages/geb-admin/src/geb-admin.ts:75
Verifies a transaction for scheduling proposals
Parameters:
Name
Type
Description
govFunctionAbi
string
Human readable abi from gov actions or proxy of choice -> "setDelay(address,uint256)"
params
any[]
Array containing all for the above function
earliestExecutionTime
number
-
calldata
string
to verify
description?
string
-
Returns: Promise‹boolean›
Promise
webExecuteProposal
▸ webExecuteProposal(govFunctionAbi
: string, params
: any[], earliestExecutionTime
: number): Promise‹TransactionRequest›
Defined in packages/geb-admin/src/geb-admin.ts:99
Encodes executing a proposal in dspause for web GUI
Parameters:
Name
Type
Description
govFunctionAbi
string
Human readable abi from gov actions or proxy of choice -> "setDelay(address,uint256)"
params
any[]
Array containing all for the above function
earliestExecutionTime
number
-
Returns: Promise‹TransactionRequest›
Promise
webScheduleProposal
▸ webScheduleProposal(govFunctionAbi
: string, params
: any[], earliestExecutionTime
: number, description?
: string): Promise‹object›
Defined in packages/geb-admin/src/geb-admin.ts:124
Encodes scheduling a proposal in dspause for web GUI
Parameters:
Name
Type
Description
govFunctionAbi
string
Human readable abi from gov actions or proxy of choice -> "setDelay(address,uint256)"
params
any[]
Array containing all for the above function
earliestExecutionTime
number
-
description?
string
-
Returns: Promise‹object›
Promise
webTestScheduleProposal
▸ webTestScheduleProposal(govFunctionAbi
: string, params
: any[], earliestExecutionTime
: number, description?
: string): Promise‹void›
Defined in packages/geb-admin/src/geb-admin.ts:173
Test the execution of a proposal about to be schedule in dspause with web GUI
Parameters:
Name
Type
Description
govFunctionAbi
string
Human readable abi from gov actions or proxy of choice -> "setDelay(address,uint256)"
params
any[]
Array containing all for the above function
earliestExecutionTime
number
-
description?
string
-
Returns: Promise‹void›
Promise
Static
getGebContract
Static
getGebContract▸ getGebContract‹T›(gebContractClass
: GebContractAPIConstructorInterface‹T›, address
: string, provider
: GebProviderInterface | Provider): T
Inherited from GebAdmin.getGebContract
Defined in packages/geb/lib/geb.d.ts:152
Returns an instance of a specific geb contract given Geb contract API class constructor at a specified address
Type parameters:
▪ T: BaseContractAPI
Parameters:
Name
Type
Description
gebContractClass
GebContractAPIConstructorInterface‹T›
Class from contracts or adminContracts
address
string
Contract address of the instance
provider
GebProviderInterface | Provider
Either a Ethers.js provider or a Geb provider
Returns: T
Last updated