Governance and Protocol Only Reference
Autonity Protocol Contract functions callable by governance operator and by protocol only
Operator only
Functions with the onlyOperator access constraint that can only be called by the governance operator account.
A standard set of events is used for events emitted by operator only transactions setting new values for protocol configuration parameters of data types int, uint, address, and bool.
The events are named ConfigUpdateUint, ConfigUpdateInt, ConfigUpdateAddress, ConfigUpdateBool. They have a standard set of event parameters.
For events the parameters logged are:
| Parameter | Datatype | Description | |
|---|---|---|---|
name |
string |
name of the configuration parameter | |
oldValue |
uint256 |
old value of the configuration parameter | |
newValue |
uint256 |
new value of the configuration parameter | |
appliesAtHeight |
uint256 |
block height at which the change will apply to the configuration parameter |
burn
Burns the specified amount of Newton stake token from an account. When x amount of newton is burned, then x is simply deducted from the account’s balance and from the total supply of newton in circulation.
Parameters
| Field | Datatype | Description |
|---|---|---|
_addr |
address |
the account address from which newton is being burned |
_amount |
uint256 |
a positive integer value for the value amount being burned, denominated in Newton |
Response
No response object is returned on successful execution of the method call.
The new Newton balance of the account can be retrieved from state by calling the balanceOf() method.
The new total supply of Newton in circulation can be retrieved from state by calling the totalSupply() method.
Event
On a successful call the function emits a BurnedStake event, logging: _addr, _amount.
Usage
aut governance burn [OPTIONS] AMOUNT ACCOUNT
createSchedule
Creates a new schedule for a non-stakeable vesting contract, specifying how much Newton is to be locked, when the schedule will begin to release Newton into circulation, and the total duration of the locking schedule.
Constraint checks are applied:
- the
maxScheduleDurationprotocol parameter value is greater than or equal to the new schedule’s_totalDuration
On success the designated amount of Newton is minted to the vesting contract address and the amount of Newton in the circulating supply reduced by that amount.
Parameters
| Field | Datatype | Description |
|---|---|---|
_scheduleVault |
address |
the contract account address of the vesting contract (or ‘vault’) that will hold the locked Newton |
_amount |
uint256 |
a positive integer value for the total value amount of the schedule, denominated in Newton |
_startTime |
uint256 |
the start time of the schedule in seconds |
_totalDuration |
uint256 |
the total duration of the schedule in seconds |
Response
No response object is returned on successful execution of the method call.
The new supply of Newton in circulation can be retrieved from state by calling the circulatingSupply() method.
Event
On a successful call the function emits a NewSchedule event, logging: _scheduleVault, _amount, _startTime, _totalDuration.
Usage
aut governance create-schedule [OPTIONS] ADDRESS AMOUNT START_TIME TOTAL_DURATION
mint
Mints new stake token and adds it to the recipient’s account balance. When x amount of newton is minted, then x is simply added to the account’s balance and to the total supply of newton in circulation.
Parameters
| Field | Datatype | Description |
|---|---|---|
_addr |
address |
the recipient account address |
_amount |
uint256 |
a positive integer value for the value amount being minted, denominated in Newton |
Response
No response object is returned on successful execution of the method call.
The new Newton balance of the recipient account can be retrieved from state by calling the balanceOf() method.
The new total supply of newton in circulation can be retrieved from state by calling the totalSupply() method.
Event
On a successful call the function emits a MintedStake event, logging: _addr, _amount.
Usage
aut governance mint [OPTIONS] AMOUNT RECIPIENT
mint (Supply Control Contract)
The Auton mint function, called by the Stabilization Contract to mint Auton to recipients while processing a CDP borrowing.
The protocol calls the function using by the stabilizer account, the Stabilization Contract address The recipient cannot be the stabilizer account or the zero address. The minted amount cannot be equal to 0 or greater than the Supply Control Contract’s available auton balance.
When x amount of auton is minted, then x is simply added to the account’s balance, increasing the total supply of Auton in circulation and reducing the supply of Auton available for minting.
Parameters
| Field | Datatype | Description |
|---|---|---|
recipient |
address |
the recipient account address |
amount |
uint256 |
amount of Auton to mint (non-zero) |
Response
No response object is returned on successful execution of the method call.
The new Auton balance of the recipient account can be returned from state using aut to Get the auton balance.
The new total supply of auton available for minting can be retrieved from state by calling the availableSupply() method.
Event
On a successful call the function emits a Mint event, logging: recipient, amount.
Usage
The ASM Supply Control Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
modifyBasket (ACU Contract)
Modifies the symbols, quantities, or scale of the ACU currency basket.
Constraint checks are applied:
InvalidBasket: the number of newsymbols_andquantities_correspond. I.e. for each symbol there is a quantity.
Parameters
| Field | Datatype | Description |
|---|---|---|
symbols_ |
string |
the symbols used to retrieve prices |
quantities_ |
uint256 |
the basket quantity corresponding to each symbol |
scale_ |
uint256 |
the scale for quantities and the ACU value |
Response
None.
Event
On a successful call the function emits a BasketModified event, logging: symbols_, quantities_, scale_.
Usage
The ACU Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
removeCDPRestrictions (ASM Stabilization Contract)
Transitions out of the CDP restricted state. Transitioning has two effects:
- lifts restrictions on CDP opening and borrowing: any Autonity network user is able to open a CDP in the ASM.
- sets the CDP
BorrowInterestRateto the default genesis configuration setting, i.e. to the value documented in Reference, Protocol Parameters, ASM Stabilization Config.
The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Constraint checks are applied:
NotRestricted: CDP Restrictions are enabled.
Parameters
None.
Response
None.
Event
On a successful call the function emits:
- a
ConfigUpdateUintevent, logging: configuration parametername(“borrowInterestRate”),oldValue,newValue,appliesAtHeight. - an
ConfigUpdateBoolevent, logging: configuration parametername(“restricted”),oldValue,newValue,appliesAtHeight - a
CDPRestrictionsRemovedevent, no logging.
Usage
The ASM Stabilization Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
rescale (ACU Contract)
Rescale the quantity multiplier for the ACU basket.
Constraint checks are applied:
ZeroValue: the new quantity multiplier value is not0.
The rescale() function sets a new value for the ACU basket quantity multiplier.
The basket quantity multiplier for the ACU basket is scaled to the ACU’s scaled representation. is used to set a new value for the basket quantityMultiplier.
If the ACU basket is modified, modifyBasket(), the modify basket logic rescales quantity multiplier to the correct precision for scaling numbers to the ACU’s scaled representation. This check ensures that if rescale() has been called a subsequent call to modifyBasket() will ensure the ACU basket’s quantity multiplier is kept scaled to the correct precision.
Parameters
| Field | Datatype | Description |
|---|---|---|
newQuantityMultiplier |
uint256 |
the new quantity multiplier |
Response
None.
Event
On a successful call the function emits a Rescaled event, logging: newQuantityMultiplier, oldQuantityMultiplier.
Usage
The ACU Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setAccountabilityContract
Sets a new value for the Autonity Accountability Contract address. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
_address |
address |
the ethereum formatted address of the Accountability Contract |
Response
None.
Event
On a successful call the function emits a ConfigUpdateAddress event, logging: configuration parameter name (“accountabilityContract”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-accountability-contract [OPTIONS] CONTRACT-ADDRESS
setAcuContract
Sets a new value for the ASM Autonomous Currency Unit (ACU) Contract address. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
_address |
address |
the ethereum formatted address of the ACU Contract |
Response
None.
Event
On a successful call the function emits a ConfigUpdateAddress event, logging: configuration parameter name (“acuContract”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-acu-contract [OPTIONS] CONTRACT-ADDRESS
setAtnSupplyOperator (ASM Stabilization Contract)
Sets a new value for the atnSupplyOperator protocol parameter value, a governance address permissioned to open CDPs in the ASM Stabilization Contract. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
atnSupplyOperator |
address |
the ethereum formatted address of the _atnSupplyOperator |
Response
No response object is returned on successful execution of the method call.
Event
On a successful call the function emits a ConfigUpdateAddress event, logging: configuration parameter name, oldValue, newValue, appliesAtHeight.
Usage
The Stabilization Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setAuctioneerContract
Sets a new value for the ASM Auctioneer Contract address. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
_address |
address |
the ethereum formatted address of the Auctioneer Contract |
Response
None.
Event
On a successful call the function emits a ConfigUpdateAddress event, logging: configuration parameter name, oldValue, newValue, appliesAtHeight.
Usage
aut governance set-auctioneer-contract [OPTIONS] CONTRACT-ADDRESS
setBaseSlashingRates (Accountability Contract)
Sets the low, mid, and high base slashing rates protocol parameters.
The new base slashing rate values must be scaled per the slashing rate scale factor of the Accountability Fault Detection protocol’s configuration.
Constraint checks are applied:
- the
lowslashing rate cannot exceed themidslashing rate - the
midslashing rate cannot exceed thehighslashing rate - the
highslashing rate cannot exceed the slashing rate scale factor.
Parameters
| Field | Datatype | Description |
|---|---|---|
_rates |
uint256 |
comma separated list of the new low, mid and high values for the base slashing rates |
Response
No response object is returned on successful execution of the call.
Event
On a successful call the function emits a BaseSlashingRateUpdate event, logging: old config.baseSlashingRates, new _rates.
Usage
The setBaseSlashingRates() function is not currently supported by the aut governance command group.
You can interact with the Accountability Contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setClusteringThreshold
Sets the clustering threshold for consensus messaging. The clustering threshold will take effect when committee size reaches the threshold.
Constraint checks are applied:
- the new clustering
thresholdmust be greater than0.
Parameters
| Field | Datatype | Description |
|---|---|---|
_threshold |
uint256 |
the committee size at which clustering becomes active (positive integer) |
Response
No response object is returned on successful execution of the call.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“clusteringThreshold”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-clustering-threshold [OPTIONS] THRESHOLD
setCommitRevealConfig (Oracle Contract)
Sets the commit-reveal penalty mechanism configuration for nonRevealThreshold and revealResetInterval.
For more detail on commit-reveal in oracle voting see the Concepts:
- Oracle network, Oracle protocol, Commit and reveal scheme.
- Oracle Accountability Fault Detection (OAFD), Protocol configuration commit-reveal penalty mechanism.
Constraint checks are applied:
invalid config: thethresholdcannot be less than thereset intervaland thereset intervalmust be greater than0.
Parameters
| Field | Datatype | Description |
|---|---|---|
_threshold |
uint256 |
Threshold for missed reveals |
_resetInterval |
uint256 |
Number of rounds after which the missed reveal counter is reset |
Response
No response object is returned on successful execution of the call.
Event
On a successful call the function emits ConfigUpdateUint events, logging:
- configuration parameter
name(“revealResetInterval”),oldValue,newValue,appliesAtHeight. - configuration parameter
name(“nonRevealThreshold”),oldValue,newValue,appliesAtHeight.
Usage
The setCommitRevealConfig() function is not currently supported by the aut governance command group.
You can interact with the Accountability Contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setCommitteeSize
Sets the maximum size of the consensus committee. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Constraint checks are applied:
- the new committee size must be greater than 0.
Parameters
| Field | Datatype | Description |
|---|---|---|
_size |
uint256 |
a positive integer value for the maximum committee size |
Response
No response object is returned on successful execution of the method call.
The updated parameter can be retrieved from state by calling the getMaxCommitteeSize() method.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“committeeSize”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-committee-size [OPTIONS] COMMITTEE_SIZE
setDefaultACUUSDPrice (ASM Stabilization Contract)
Set the default ACU-USD price for use when fixed prices are enabled. (See useFixedGenesisPrices().)
The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
defaultACUUSDPrice |
uint256 |
the new default ACU-USD price |
Response
None.
Event
On a successful call the function emits:
- an
IConfigEvents.ConfigUpdateUintevent, logging: configuration parametername,oldValue,newValue,appliesAtHeight.
Usage
The ASM Stabilization Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setDefaultNTNATNPrice (ASM Stabilization Contract)
Set the default NTN-ATN price for use when fixed prices are enabled. (See useFixedGenesisPrices().)
The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
defaultNTNATNPrice |
uint256 |
the new default NTN-ATN price |
Response
None.
Event
On a successful call the function emits:
- an
IConfigEvents.ConfigUpdateUintevent, logging: configuration parametername,oldValue,newValue,appliesAtHeight.
Usage
The ASM Stabilization Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setDefaultNTNUSDPrice (ASM Stabilization Contract)
Set the default NTN-USD price for use when fixed prices are enabled. (See useFixedGenesisPrices().)
The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
defaultNTNUSDPrice |
uint256 |
the new default NTN-USD price |
Response
None.
Event
On a successful call the function emits:
- an
IConfigEvents.ConfigUpdateUintevent, logging: configuration parametername,oldValue,newValue,appliesAtHeight.
Usage
The ASM Stabilization Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setDelta (Accountability Contract)
Sets the delta protocol parameter of the Accountability protocol’s configuration. The configuration change will take effect at epoch end (the end of epoch block height is logged in the function’s appliesAtHeight event parameter).
Constraint checks are applied:
- the
deltamust be less than thenewRangeconfiguration value.
Accountability Contract configuration updates are applied at the same time. Therefore the new values for delta, range, and gracePeriod are checked for logical consistency.
Parameters
| Field | Datatype | Description |
|---|---|---|
_delta |
uint256 |
the new value for delta |
Response
No response object is returned on successful execution of the call.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“delta”), oldValue, newValue, appliesAtHeight.
Usage
The Accountability Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setDelta (Omission Accountability Contract)
Sets the delta protocol parameter of the Omission Accountability protocol’s configuration. The configuration change will take effect at epoch end (the end of epoch block height is logged in the function’s appliesAtHeight event parameter).
Constraint checks are applied:
- the
deltaneeds to be at least2(it cannot be 1 due to optimistic block building). - the epoch period needs to be greater than
delta+lookbackWindow-1.
Parameters
| Field | Datatype | Description |
|---|---|---|
_delta |
uint256 |
the new value for delta |
Response
No response object is returned on successful execution of the call.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“newOmissionDelta”), oldValue, newValue, appliesAtHeight.
Usage
The Omission Accountability Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setEip1559Params
Sets the EIP-1559 parameters for the next epoch: minBaseFee, gasLimitBoundDivisor, elasticityMultiplier and baseFeeChangeDenominator.
For detail on Autonity’s implementation of EIP-1559 see the Concept System model, EIP 1559 Transaction fee mechanism (TFM).
Constraint checks are applied:
- the new
gas limit bound divisormust be a positive integer greater than0. - the new
base fee change denominatormust be a positive integer greater than0. - the new
elasticity multipliermust be a positive integer greater than0.
Parameters
A _params object with fields:
| Field | Datatype | Description |
|---|---|---|
minBaseFee |
uint256 |
the new minimum base fee |
gasLimitBoundDivisor |
uint256 |
the new block gas limit bound divisor |
elasticityMultiplier |
uint256 |
the new elasticity multiplier |
baseFeeChangeDenominator |
uint256 |
the new base fee change denominator |
Response
No response object is returned on successful execution of the call.
Event
On a successful call the function emits am Eip1559ParamsUpdate event, logging the new minBaseFee, gasLimitBoundDivisor, elasticityMultiplier and baseFeeChangeDenominator.
Usage
aut governance set-eip1559-params [OPTIONS] MIN_BASE_FEE
BASE_FEE_CHANGE_DENOMINATOR
ELASTICITY_MULTIPLIER
GAS_LIMIT_BOUND_DIVISOR
setEpochPeriod
Sets a new value for the epochPeriod protocol parameter. The change will be applied at epoch end.
The epochPeriod period value must be less than the unbondingPeriod protocol parameter.
Constraint checks are applied:
- The new epoch period value cannot be
0. - If the new value is decreasing the current epoch period, checks the current chain head has not already exceeded the new epoch period window.
- The new epoch period value must be greater than the OFD
[Delta](/concepts/ofd/#delta-delta)+[lookbackWindow](/concepts/ofd/#lookback-window)-1. - The new epoch period is less than or equal to
votePeriod * 2(a check to ensure there is sufficient time for any oracle voter changes before epoch end).
Parameters
| Field | Datatype | Description |
|---|---|---|
_period |
uint256 |
a positive integer value specifying the number of blocks defining the duration of an epoch on the network. Value must respect the equation epochPeriod > delta+lookback-1 |
Response
No response object is returned on successful execution of the call.
The updated parameter can be retrieved using getEpochPeriod().
Event
On a successful call the function emits an EpochPeriodUpdated event, logging: period, appliedAtBlock.
Usage
aut governance set-epoch-period [OPTIONS] EPOCH_PERIOD
setFactors (Accountability Contract)
Sets the collusion, history, and jail punishment factor protocol parameters.
The new collusion and history factor values must not exceed the slashing rate scale factor of the Accountability Fault Detection protocol’s configuration. The jail factor is specified as a number of epochs.
Constraint checks are applied:
- the
collusion factorcannot exceed the slashing rate scale factor. - the
history factorcannot exceed the slashing rate scale factor.
Parameters
| Field | Datatype | Description |
|---|---|---|
_rates |
uint256 |
comma separated list of the new CollusionFactor, HistoryFactor and JailFactor values for the base slashing rates |
Response
No response object is returned on successful execution of the call.
Event
On a successful call the function emits an AccountabilityFactorsUpdate event, logging: old config.factors, new _factors.
Usage
The setFactors() function is not currently supported by the aut governance command group.
You can interact with the Accountability Contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setGasLimit
Sets the block gas limit.
Constraint checks are applied:
- the new
gas limitmust be a positive integer greater than0.
Parameters
| Field | Datatype | Description |
|---|---|---|
_gasLimit |
uint256 |
the new gas limit; a positive integer value |
Response
No response object is returned on successful execution of the call.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“gasLimit”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-gas-limit [OPTIONS] GAS_LIMIT
setInactivityThreshold (Omission Accountability Contract)
Sets the inactivityThreshold protocol parameter of the Omission Accountability protocol’s configuration. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Constraint checks are applied:
- the
inactivity thresholdcannot exceed the omission accountability scale factor. - the
inactivity thresholdneeds to be greater or equal topastPerformanceWeight.
Parameters
| Field | Datatype | Description |
|---|---|---|
_inactivityThreshold |
uint256 |
the new value for inactivity threshold |
Response
No response object is returned on successful execution of the call.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“inactivityThreshold”), oldValue, newValue, appliesAtHeight.
Usage
The Omission Accountability Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setInflationControllerContract
Sets a new value for the Inflation Controller Contract address. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
_address |
address |
the ethereum formatted address of the Stabilization Contract |
Response
None.
Event
On a successful call the function emits a ConfigUpdateAddress event, logging: configuration parameter name (“inflationControllerContract”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-inflation-controller-contract [OPTIONS] CONTRACT-ADDRESS
setInitialJailingPeriod (Omission Accountability Contract)
Sets the initialJailingPeriod protocol parameter of the Omission Accountability protocol’s configuration. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
_initialJailingPeriod |
uint256 |
the new value for the initial jailing period |
Response
No response object is returned on successful execution of the call.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“initialJailingPeriod”), oldValue, newValue, appliesAtHeight.
Usage
The Omission Accountability Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setInitialProbationPeriod (Omission Accountability Contract)
Sets the initialProbationPeriod protocol parameter of the Omission Accountability protocol’s configuration. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
_initialProbationPeriod |
uint256 |
the new value for the initial probation period |
Response
No response object is returned on successful execution of the call.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“initialProbationPeriod”), oldValue, newValue, appliesAtHeight.
Usage
The Omission Accountability Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setInitialSlashingRate (Omission Accountability Contract)
Sets the initialSlashingRate protocol parameter of the Omission Accountability protocol’s configuration. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Constraint checks are applied:
- the initial slashing rate cannot exceed the slashing rate scale factor.
Parameters
| Field | Datatype | Description |
|---|---|---|
_initialSlashingRate |
uint256 |
the new value for the initial slashing rate |
Response
No response object is returned on successful execution of the call.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“initialSlashingRate”), oldValue, newValue, appliesAtHeight.
Usage
The Omission Accountability Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setInnocenceProofSubmissionWindow (Accountability Contract)
Sets the innocence proof submission window protocol parameter. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
_window |
uint256 |
the new value for the window (in blocks) |
Response
No response object is returned on successful execution of the call.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name, oldValue, newValue, appliesAtHeight.
Usage
The setInnocenceProofSubmissionWindow() function is not currently supported by the aut governance command group.
You can interact with the Accountability Contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setInterestAuctionDiscount (ASM Auctioneer Contract)
Sets a new value for the interestAuctionDiscount protocol parameter. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
The interestAuctionDiscount value is set as a value between \([0,1)\) with \(10 \hat{\ } 18\) precision.
Constraint checks are applied:
InvalidParameter: the new interest auctiondiscountvalue cannot be>= 10^18.
Parameters
| Field | Datatype | Description |
|---|---|---|
discount |
uint256 |
an integer value specifying the discount rate for the starting price of an interest auction |
Response
No response object is returned on successful execution of the method call.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name, oldValue, newValue, appliesAtHeight.
Usage
The Auctioneer Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setInterestAuctionDuration (ASM Auctioneer Contract)
Sets a new value for the interestAuctionDuration protocol parameter. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
The interestAuctionDuration value is set as a number of blocks.
Constraint checks are applied:
InvalidParameter: the new interest auctiondurationvalue cannot be0.
Parameters
| Field | Datatype | Description |
|---|---|---|
duration |
uint256 |
a positive integer value specifying the duration in blocks |
Response
No response object is returned on successful execution of the method call.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name, oldValue, newValue, appliesAtHeight.
Usage
The Auctioneer Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setInterestAuctionThreshold (ASM Auctioneer Contract)
Sets a new value for the interestAuctionThreshold protocol parameter. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
The interestAuctionThreshold value is set as a value in Auton >0.
Constraint checks are applied:
InvalidParameter: the new interest auctionthresholdvalue cannot be0.
Parameters
| Field | Datatype | Description |
|---|---|---|
threshold |
uint256 |
a positive integer value specifying the total amount of ATN accumulated from interest payments required to trigger an interest auction |
Response
No response object is returned on successful execution of the method call.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name, oldValue, newValue, appliesAtHeight.
Usage
The Auctioneer Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setLiquidationAuctionDuration (ASM Auctioneer Contract)
Sets a new value for the liquidationAuctionDuration protocol parameter. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
The liquidationAuctionDuration value is set as a number of blocks.
Constraint checks are applied:
InvalidParameter: the new liquidation auctiondurationvalue cannot be0.
Parameters
| Field | Datatype | Description |
|---|---|---|
duration |
uint256 |
a positive integer value specifying the duration in blocks |
Response
No response object is returned on successful execution of the method call.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name, oldValue, newValue, appliesAtHeight.
Usage
The Auctioneer Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setLiquidationRatio (ASM Stabilization Contract)
Sets a new value for the liquidationRatio protocol parameter in the ASM Stabilization Contract configuration. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Constraint checks are applied:
- the ratio must be less than the minimum collateralization ratio parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
ratio |
uint256 |
an integer value specifying the liquidation ratio for ASM CDP’s |
Response
None.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name, oldValue, newValue, appliesAtHeight.
Usage
The ASM Stabilization Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setLiquidLogicContract
Sets a new value for the liquid newton logic contract address. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Constraint checks are applied:
- The provided address must not be the zero address.
The Liquid Newton contract implements a Proxy Pattern to ensure upgradability. The logic and state are separated in two separate contracts.
For more information on the Proxy Pattern, see https://docs.openzeppelin.com/upgrades-plugins/1.x/proxies.
Parameters
| Field | Datatype | Description |
|---|---|---|
_contract |
address |
the ethereum formatted address of the liquid logic contract |
Response
No response object is returned on successful execution of the call.
Event
On a successful call the function emits a ConfigUpdateAddress event, logging: configuration parameter name (“liquidLogicContract”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-liquid-logic-contract [OPTIONS] CONTRACT-ADDRESS
setLookbackWindow (Omission Accountability Contract)
Sets the lookbackWindow protocol parameter of the Omission Accountability protocol’s configuration. The configuration change will take effect at epoch end (the end of epoch block height is logged in the function’s appliesAtHeight event parameter).
Constraint checks are applied:
- the lookback window cannot be
0. - the epoch period needs to be greater than
delta+lookbackWindow-1.
Parameters
| Field | Datatype | Description |
|---|---|---|
_lookbackWindow |
uint256 |
the new value for the lookback window |
Response
No response object is returned on successful execution of the call.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“newLookbackWindow”), oldValue, newValue, appliesAtHeight.
Usage
The Omission Accountability Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setMaxScheduleDuration
Sets the max allowed duration of the protocol schedules. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
_newMaxDuration |
uint256 |
a positive integer value specifying the duration in seconds |
Response
No response object is returned on successful execution of the method call.
The updated parameter can be retrieved from state by calling the getMaxScheduleDuration() method.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“maxScheduleDuration”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-max-schedule-duration [OPTIONS] DURATION
setMinCollateralizationRatio (ASM Stabilization Contract)
Sets a new value for the minCollateralizationRatio protocol parameter in the ASM Stabilization Contract configuration. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Constraint checks are applied:
- the ratio must be a positive value
- the ratio must be greater than the liquidation ratio
- minimum collateralization ratio parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
ratio |
uint256 |
a positive integer value specifying the minimum collateralization ratio for ASM CDP’s |
Response
None.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name, oldValue, newValue, appliesAtHeight.
Usage
The ASM Stabilization Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setMinDebtRequirement (ASM Stabilization Contract)
Sets a new value for the minDebtRequirement protocol parameter in the ASM Stabilization Contract configuration. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
amount |
uint256 |
an integer value specifying the minimum debt requirement for ASM CDP’s |
Response
None.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name, oldValue, newValue, appliesAtHeight.
Usage
The ASM Stabilization Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setMinimumBaseFee
Sets a new value for the minBaseFee protocol parameter. The value is denominated in ton.
Parameters
| Field | Datatype | Description |
|---|---|---|
_price |
uint256 |
a positive integer value for the minimum gas price, denominated in ton |
Response
No response object is returned on successful execution of the method call.
The updated parameter can be retrieved from state by calling the getMinimumBaseFee() method.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“minBaseFee”), oldValue, newValue.
Usage
aut governance set-minimum-base-fee [OPTIONS] base-fee
setOmissionAccountabilityContract
Sets a new value for the Autonity Omission Accountability Contract address. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
_address |
address |
the ethereum formatted address of the Omission Accountability Contract |
Response
None.
Event
On a successful call the function emits a ConfigUpdateAddress event, logging: configuration parameter name (“omissionAccountabilityContract”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-omission-accountability-contract [OPTIONS] CONTRACT-ADDRESS
setOperatorAccount
Sets a new governance account address as the protocol parameter for the Autonity Protocol Contracts. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
_account |
address |
the ethereum formatted address of the operator governance account |
Response
No response object is returned on successful execution of the method call.
The updated parameter can be retrieved from state by a call to the operatorAccount() public variable.
Event
On a successful call the function emits a ConfigUpdateAddress event, logging: configuration parameter name (“operatorAccount”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-operator-account [OPTIONS] OPERATOR-ADDRESS
setOracleContract
Sets a new value for the Autonity Oracle Contract address. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
The Oracle Contract is called by the Autonity Protocol Contracts:
Parameters
| Field | Datatype | Description |
|---|---|---|
_address |
address |
the ethereum formatted address of the Oracle Contract |
Response
None.
Event
On a successful call the function emits a ConfigUpdateAddress event, logging: configuration parameter name (“oracleContract”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-oracle-contract [OPTIONS] CONTRACT-ADDRESS
setOracleRewardRate
Sets the oracle reward rate for the protocol policy configuration. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Constraint checks are applied:
- The reward rate must not exceed 100%.
- The proposer reward rate plus the oracle reward rate must not exceed 100%.
See config() for policy properties.
Parameters
| Field | Datatype | Description |
|---|---|---|
_oracleRewardRate |
uint256 |
the new reward rate for oracles (scaled by 10^4). |
Response
None.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“oracleRewardRate”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-oracle-reward-rate [OPTIONS] ORACLE_REWARD_RATE
setPastPerformanceWeight (Omission Accountability Contract)
Sets the pastPerformanceWeight protocol parameter of the Omission Accountability protocol’s configuration. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Constraint checks are applied:
- the
past performance weightcannot exceed the omission accountability scale factor. - the
past performance weightcannot be greater than theinactivity threshold.
Parameters
| Field | Datatype | Description |
|---|---|---|
_pastPerformanceWeight |
uint256 |
the new value for the past performance weight |
Response
No response object is returned on successful execution of the call.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“pastPerformanceWeight”), oldValue, newValue, appliesAtHeight.
Usage
The Omission Accountability Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setProceedAddress (ASM Auctioneer Contract)
Sets a new value for the proceedAddress protocol parameter value, the address to which auction proceeds are sent by the ASM Auctioneer Contract. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
proceedAddress_ |
address |
the ethereum formatted address to send proceeds to |
Response
No response object is returned on successful execution of the method call.
Event
On a successful call the function emits a ConfigUpdateAddress event, logging: configuration parameter name, oldValue, newValue, appliesAtHeight.
Usage
The Auctioneer Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setProposerRewardRate
Sets the block proposer reward rate for the protocol policy configuration. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Constraint checks are applied:
- The reward rate must not exceed 100%.
- The proposer reward rate plus the oracle reward rate must not exceed 100%.
See config() for policy properties.
Parameters
| Field | Datatype | Description |
|---|---|---|
_proposerRewardRate |
uint256 |
the new reward rate for the block proposer (scaled by 10^4). |
Response
None.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“proposerRewardRate”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-proposer-reward-rate [OPTIONS] PROPOSER_REWARD_RATE
setRange (Accountability Contract)
Sets the range protocol parameter of the Accountability protocol’s configuration. The configuration change will take effect at epoch end (the end of epoch block height is logged in the function’s appliesAtHeight event parameter).
Constraint checks are applied:
- the
gracePeriod == 0, the height range change is already in progress - the new
rangemodulo4 == 0, the height range must be a multiple of 4 - the new
rangeis greater thannewDelta, the height range needs to be greater thandelta
Parameters
| Field | Datatype | Description |
|---|---|---|
_range |
uint256 |
the new value for the height range (in blocks) |
Response
No response object is returned on successful execution of the call.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“range”), oldValue, newValue, appliesAtHeight.
Usage
The Accountability Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setSlasher
Sets a new value for the Accountability Slasher Contract address. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
_address |
address |
the ethereum formatted address of the Slasher Contract |
Response
None.
Event
On a successful call the function emits a ConfigUpdateAddress event, logging: configuration parameter name (“slasher”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-slasher [OPTIONS] SLASHER-ADDRESS
setSlashingConfig (Oracle Contract)
Sets the internal slashing and outlier detection penalty mechanism configuration for outlierSlashingThreshold, outlierDetectionThreshold, baseSlashingRate, and slashingRateCap.
For more detail on slashing in oracle voting see the Concept:
- Oracle Accountability Fault Detection (OAFD), Protocol configuration slashing penalty mechanism.
Parameters
| Field | Datatype | Description |
|---|---|---|
_outlierSlashingThreshold |
int256 |
Threshold for flagging outliers |
_outlierDetectionThreshold |
int256 |
Threshold for outlier slashing penalties, controlling the sensitivity of the penalty mode |
_baseSlashingRate |
uint256 |
The base slashing rate for outlier slashing penalties |
_slashingRateCap |
uint256 |
The maximum % slashing rate for oracle accountability slashing penalties |
Response
No response object is returned on successful execution of the call.
Event
On a successful call the function emits events:
- a
ConfigUpdateIntevent, logging: configuration parametername(“outlierSlashingThreshold”),oldValue,newValue,appliesAtHeight - a
ConfigUpdateIntevent, logging: configuration parametername(“outlierDetectionThreshold”),oldValue,newValue,appliesAtHeight - a
ConfigUpdateUintevent, logging: configuration parametername(“baseSlashingRate”),oldValue,newValue,appliesAtHeight - a
ConfigUpdateUintevent, logging: configuration parametername(“slashingRateCap”),oldValue,newValue,appliesAtHeight
Usage
The setCommitRevealConfig() function is not currently supported by the aut governance command group.
You can interact with the Accountability Contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setStabilizationContract
Sets a new value for the ASM Stabilization Contract address. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
_address |
address |
the ethereum formatted address of the Stabilization Contract |
Response
None.
Event
On a successful call the function emits a ConfigUpdateAddress event, logging: configuration parameter name (“stabilizationContract”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-stabilization-contract [OPTIONS] CONTRACT-ADDRESS
setSupplyControlContract
Sets a new value for the ASM Supply Control Contract address. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
supplyControl |
address |
the ethereum formatted address of the Supply Control Contract |
Response
None.
Event
On a successful call the function emits a ConfigUpdateAddress event, logging: configuration parameter name (“supplyControlContract”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-supply-control-contract [OPTIONS] CONTRACT-ADDRESS
setSymbols (Oracle Contract)
Sets a new value set for the currency pair symbols for which the Oracle Contract computes median price.
Note that the function overwrites the existing symbols; and does not update; the complete set of symbols for which oracles shall provide price reports must be provided.
Constraint checks are applied:
- the
_symbolsparameter cannot be empty; new symbols are provided - the current
roundnumber is not equal to the current symbol update (a) round number, and (b) round number + 1.
The symbol update is applied and oracle submissions for the new symbols are effective from the next round round+1.
Parameters
| Field | Datatype | Description |
|---|---|---|
symbols |
string array |
a comma-separated list of the new currency pair symbols for which price reports are generated |
Response
None.
Event
On a successful call the function emits a NewSymbols event, logging: a string array of the new currency pair _symbol and the following round number at which the new symbols become effective round+1.
Usage
The Oracle Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
aut contract tx --address 0x47e9Fbef8C83A1714F1951F142132E6e90F5fa5D setSymbols '["_symbol"]' | aut tx sign - | aut tx send -
setTreasuryAccount
Sets a new account address as the value of the treasuryAccount protocol parameter. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
_account |
address payable |
the ethereum formatted address of the Autonity Treasury Account for community funds |
Response
No response object is returned on successful execution of the method call.
The updated parameter can be retrieved from state by a call to config() to get the Autonity network configuration.
Event
On a successful call the function emits a ConfigUpdateAddress event, logging: configuration parameter name (“treasuryAccount”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-treasury-account [OPTIONS] treasury-address
setTreasuryFee
Sets a new value for the treasuryFee protocol parameter. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Parameters
| Field | Datatype | Description |
|---|---|---|
_treasuryFee |
uint256 |
a positive integer value specifying the percentage fee levied on staking rewards before redistribution |
Response
No response object is returned on successful execution of the method call.
The updated parameter can be retrieved from state by a call to config() to get the Autonity network configuration.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“treasuryFee”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-treasury-fee [OPTIONS] TREASURY-FEE
setVotePeriod (Oracle Contract)
Sets a new value set for the oracle voting round duration.
The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Constraint checks are applied:
- The new
votePeriod * 2is less than or equal to the current or a new pending epoch period value (a check to ensure there is sufficient time for any oracle voter changes before epoch end).
The vote period update is applied and is applied at the end of the voting rouond.
Parameters
| Field | Datatype | Description |
|---|---|---|
_votePeriod |
uint |
the new vote period as a number of blocks |
Response
None.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“votePeriod”), oldValue, newValue, appliesAtHeight.
Usage
The Oracle Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
setUnbondingPeriod
Sets a new value for the unbondingPeriod protocol parameter. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
The unbonding period specifies the length of time that bonded stake must wait before it can be redeemed for Newton after processing a stake redeem transaction. The period of time is defined as a number of blocks.
The unbondingPeriod period value must be greater than the epochPeriod protocol parameter. When the last block of an epoch is finalised, logic checks if the unbonding period for any pending unbonding requests for unbonding has expired and if so applies the staking transitions.
Parameters
| Field | Datatype | Description |
|---|---|---|
_period |
uint256 |
a positive integer value specifying the number of blocks defining the duration of an unbonding period |
Response
No response object is returned on successful execution of the method call.
The updated parameter can be retrieved from state by a call to config() to get the Autonity network configuration or getUnbondingPeriod().
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“unbondingPeriod”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-unbonding-period [OPTIONS] UNBONDING_PERIOD
setUpgradeManagerContract
Sets a new value for the Upgrade Manager Contract address. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
This is a development function only used for internal testing purposes. A value other than 0x3C368B86AF00565Df7a3897Cfa9195B9434A59f9 will break the upgrade function.
Parameters
| Field | Datatype | Description |
|---|---|---|
UpgradeManager |
_address |
the ethereum formatted address of the Upgrade Manager Contract |
Response
None.
Event
On a successful call the function emits a ConfigUpdateAddress event, logging: configuration parameter name (“upgradeManagerContract”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-upgrade-manager-contract [OPTIONS] CONTRACT-ADDRESS
setWithheldRewardsPool
Sets the address of the pool to which withheld Newton inflation rewards will be sent. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Constraint checks are applied:
- The provided address must not be the zero address.
See config() for policy properties.
Parameters
| Field | Datatype | Description |
|---|---|---|
_pool |
address payable |
the address of the withheld rewards pool |
Response
None.
Event
On a successful call the function emits a ConfigUpdateAddress event, logging: configuration parameter name (“setWithheldRewardsPool”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-withheld-rewards-pool -h
Usage: aut governance set-withheld-rewards-pool [OPTIONS] POOL_ADDRESS
setWithholdingThreshold
Sets the withholding threshold for the policy configuration. The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Constraint checks are applied:
- The threshold must not exceed 100%.
See config() for policy properties.
Parameters
| Field | Datatype | Description |
|---|---|---|
_withholdingThreshold |
uint256 |
the new withholding threshold (scaled by 10^4). |
Response
None.
Event
On a successful call the function emits a ConfigUpdateUint event, logging: configuration parameter name (“setWithholdingThreshold”), oldValue, newValue, appliesAtHeight.
Usage
aut governance set-withholding-threshold [OPTIONS] WITHHOLDING_THRESHOLD
updateBorrowInterestRate (ASM Stabilization Contract)
Updates the borrow interest rate. The new rate newInterestRate will take affect after the config.announcementWindow (in seconds). (See Reference, Protocol Parameters, ASM Stabilization Config.)
The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Constraint checks are applied:
NotRestricted: CDP Restrictions are enabled.
Parameters
| Field | Datatype | Description |
|---|---|---|
newInterestRate |
uint256 |
the new interest rate multiplied by \(10 \hat{\ } 18\). If it is 5% then it should be (5/100)*(10^18) = 50_000_000_000_000_000 |
Response
None.
Event
On a successful call the function emits:
- an
InterestRateUpdateAnnouncedevent, loggingnewInterestRate,_borrowInterestRate.nextActiveFrom,overridden. - a
ConfigUpdateUintevent, logging: configuration parametername(“borrowInterestRate”),oldValue,newValue,appliesAtHeight.
Usage
The ASM Stabilization Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
updateAnnouncementWindow (ASM Stabilization Contract)
Updates the announcement window. The new window will take affect after the config.announcementWindow (in seconds). (See Reference, Protocol Parameters, ASM Stabilization Config.)
The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Constraint checks are applied:
- the new
windowvalue is not equal to0 AnnouncementWindowPending: there is not a pending announcementwindowupdate
Parameters
| Field | Datatype | Description |
|---|---|---|
window |
uint256 |
the new announcement window measured in seconds |
Response
None.
Event
On a successful call the function emits:
- an
AnnouncementWindowUpdateAnnouncedevent, loggingwindow,_announcementWindow.nextActiveFrom,overridden. - a
ConfigUpdateUintevent, logging: configuration parametername(“announcementWindow”),oldValue,newValue,appliesAtHeight.
Usage
The ASM Stabilization Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
updateRatios (ASM Stabilization Contract)
Updates the minimum collateralization ratio and liquidation ratio for a CDP. The new ratios will take affect after the config.announcementWindow (in seconds). (See Reference, Protocol Parameters, ASM Stabilization Config.)
The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Constraint checks are applied:
lrOverridden: there is not a pending newliquidationRatioupdatemcrOverridden: there is not a pending newminCollateralizationRatioupdateInvalidParameter: the ratios are valid. ThenewLiquidationRatiomust be<thenewMinCollateralizationRatioand>= 1
Parameters
| Field | Datatype | Description |
|---|---|---|
newLiquidationRatio |
uint256 |
the new liquidation ratio |
newMinCollateralizationRatio |
uint256 |
the new minimum collateralization ratio |
Response
None.
Event
On a successful call the function emits:
- a
LiquidationRatioUpdateAnnouncedevent, loggingnewLiquidationRatio,_liquidationRatio.nextActiveFrom,lrOverridden`. - a
MinCollateralizationRatioUpdateAnnouncedevent, loggingnewMinCollateralizationRatio,_minCollateralizationRatio.nextActiveFrom,mcrOverridden. - a
ConfigUpdateUintevent, logging: configuration parametername(“liquidationRatio”),oldValue,newValue,appliesAtHeight. - a
ConfigUpdateUintevent, logging: configuration parametername(“minCollateralizationRatio”),oldValue,newValue,appliesAtHeight.
Usage
The ASM Stabilization Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
upgrade
Provides new contract creation code for an Autonity Protocol Contract.
The function calls an in-protocol EVM replace mechanism. The contract creation code is compiled and the new contract bytecode and abi appended to the contract storage buffer.
The contract storage buffer length is checked during block finalization and if a contract upgrade is ready it is applied - see finalize().
When an upgrade is initiated a getNewContract() method retrieves the compiled EVM bytecode and Contract ABI of the new Autonity Protocol Contract, and performs an upgrade.
Parameters
| Field | Datatype | Description |
|---|---|---|
_target |
address |
the target contract address to be updated |
_data |
string |
the contract creation code |
Response
None.
Event
On a successful call the function emits:
- an
upgradeResultevent, logging:_targetthe upgrade target contract address,successboolean indicating successful or failed upgrade.
useFixedGenesisPrices (ASM Stabilization Contract)
Toggles the use of the fixed genesis price state. Fixed genesis prices may be set for: NTN-ATN, NTN-USD, ACU-USD. For the default values set in the genesis configuration for the Stabilization Contract see Reference, Protocol Parameters, ASM Stabilization Config and DefaultNTNATNPrice, DefaultNTNUSDPrice, DefaultACUUSDPrice.
The configuration change will take effect at the block height logged in the function’s appliesAtHeight event parameter.
Note that governance can update the default values and set new fixed prices. See setDefaultNTNATNPrice(),setDefaultNTNUSDPrice(), setDefaultACUUSDPrice().
Parameters
| Field | Datatype | Description |
|---|---|---|
useFixed |
bool |
whether to use fixed genesis prices (true) or not (false) |
Response
None.
Event
On a successful call the function emits:
- an
ConfigUpdateBoolevent, logging: configuration parametername(“fixedGenesisPrices”),oldValue,newValue,appliesAtHeight.
Usage
The ASM Stabilization Contract Interface is not currently supported by aut.
You can interact with the contract using the aut contract command group. See aut contract tx -h for how to submit a transaction calling the interface function.
Protocol only
Functions with protocol contract access constraints can only be invoked by the Autonity protocol itself:
- Autonity Protocol Contract: for state finalization and committee selection
- Autonity Stabilization Contract: for Auton mint and burn.
burn (Supply Control Contract)
The Auton burn function, called by the Stabilization Contract stabilizer account address to burn Auton while processing a CDP repayment.
Burns the specified amount of Auton, taking it out of circulation.
Constraint checks are applied:
- the caller is the
stabilizeraccount, the Stabilization Contract address.
Parameters
| Field | Datatype | Description |
|---|---|---|
amount |
uint256 |
a non-zero integer value for the value amount being burned, denominated in Auton |
Response
No response object is returned on successful execution of the method call.
Event
On a successful call the function emits a Burn event, logging: value, the amount of Auton burned.
computeCommittee
Selects the consensus committee for the following epoch by selecting the validators with the highest amount of bonded stake.
The algorithm reads from the validatorList state variable to select the set of registered validators that are in an enabled state and with bonded stake greater than 0.
If the number of selected validators exceeds the maximum committee size, then the selected validators are sorted by bonded stake amount in ascending order. The top N where N is the maximum committee size, are then selected to be members of the consensus committee for the next epoch.
The consensus committee variables maintained in persistent storage are deleted and recreated:
committeeis assigned the array of newCommitteeMember’s, eachCommitteeMemberstruct recording the validator’s account address (_addr) and bonded stake amount (votingPower)committeeNodesis assigned the array of enode URL’s for the committee membersepochTotalBondedStakeis assigned the total amount of the stake bonded to the committee members.
Constraint checks:
validatorList.length > 0. A committee cannot be selected without registered validators.ValidatorState = 0(i.e. active). Validators must be in an active state to be included in the selection algorithm (validators in a paused, jailed, or jailbound state are excluded).bondedStake > 0. Validators must have a non-zero amount of bonded stake to be included in the selection algorithm.
Parameters
None.
Response
No response object is returned on successful execution of the method invocation.
The new committee can be retrieved from state by calling the getCommittee() method.
The new committee enode URL’s can be retrieved from state by calling the getCommitteeEnodes() method.
Returns the amount of stake token bonded to the new consensus committee members and securing the network during the epoch can be retrieved from state by a call to the epochTotalBondedStake() method.
distributeRewards (Accountability Contract)
The Accountability Contract reward distribution function, called at epoch finalisation as part of the state finalisation function finalize.
The function:
- distributes rewards for reporting provable faults committed by an offending validator to the reporting validator.
- if multiple slashing events are committed by the same offending validator during the same epoch, then rewards are only distributed to the last reporter.
- if funds can’t be transferred to the reporter’s
treasuryaccount, then rewards go to the autonity protocoltreasuryaccount for community funds (see also Protocol Parameters Reference).
After distribution, the reporting validator is removed from the beneficiaries array.
Parameters
| Field | Datatype | Description |
|---|---|---|
_validator |
address |
the address of the validator node being slashed |
Response
None.
Event
On successful reward distribution the function emits:
- for AFD slashing rewards distribution, a
ReporterRewardedevent for each slashing reward distribution, logging: reporting validator identifier_reporter.nodeAddress,_offendervalidator identifier node address, slashed_ntnRewardamount, slashed_atnRewardamount. - for OFD slashing rewards distribution, a
TotalProposerRewardsevent for the block proposer reward distribution, logging:_ntnRewardamount,_atnRewardamount.
finalize
The block finalisation function, invoked each block after processing every transaction within it. The function:
tests if the
bytecodeprotocol parameter is0length to determine if an Autonity Protocol Contract upgrade is available. If thebytecodelength is>0, thecontractUpgradeReadyprotocol parameter is set totruetests if the block number is the last epoch block number (equal to
lastEpochBlock + epochPeriodconfig) and if so sets theepochEndedboolean variable totrueorfalseaccordinglyinvokes finalize on the auxiliary protocol contracts, triggering the compute and apply of penalties for provable accountability and omission faults committed by validators, and distribute rewards for submitting provable fault accusations:
- Accountability Contract
finalize() - Omission Accountability Contract
finalize() - Oracle Contract
finalize()
- Accountability Contract
then, if
epochEndedistrue:- performs the staking rewards redistribution, redistributing the available reward amount per protocol and emitting a
Rewardedevent for each distribution - applies any staking transitions - pending bonding and unbonding requests tracked in
BondingRequestandUnbondingRequestdata structures in memory - applies any validator commission rate changes - pending rate change requests tracked in
CommissionRateChangeRequestdata structures in memory - selects the consensus committee for the following epoch, invoking the
computeCommittee()function - assigns the
lastEpochBlockstate variable the value of the current block number - increments the
epochIDby1 - emits a
NewEpochevent logging theepochIDof the new epoch
- performs the staking rewards redistribution, redistributing the available reward amount per protocol and emitting a
invokes the Oracle Contract
finalize()function, triggering the Oracle Contract to check it is the end of a voting round and if so:- calculate the median price of currency pairs
- re-set oracle voters and parameters ready for the next oracle voting round.
then, if the oracle has computed data and started a new voting round (
newRoundistrue), invokes the ACU Contractupdate()function to recompute the ACU value using the new price data.
Parameters
None.
Response
| Field | Datatype | Description |
|---|---|---|
contractUpgradeReady |
bool |
Set to true if an Autonity Protocol Contract upgrade is available |
committee |
CommitteeMember[] array |
the consensus committee that approved the block, each CommitteeMember struct recording the validator’s account address (_addr) and bonded stake amount (votingPower) |
If an upgrade is available for a protocol contract, this is executed by the protocol at epoch finalisation. After an upgrade has been completed the new Autonity Protocol Contract version can be retrieved from state by calling the getVersion() method.
Event
On successful reward distribution the function emits:
- a
Rewardedevent for each staking reward distribution, logging: recipient addressaddr,atnAmountandntnAmount. - a
NewEpochevent signalling the beginning of a new epoch, logging:epochID,inflationReserve,stakeCirculating.
finalize (Accountability Contract)
The Accountability Contract finalisation function, called at each block finalisation as part of the state finalisation function finalize(). The function checks if it is the last block of the epoch, then:
- On each block, tries to promote
Accusationswithout proof of innocence into misconducts.Accusationswithout a valid innocence proof are considered guilty of the reported misconduct and a new fault proof is created if the fault severity is higher than that of any previous fault already committed by the validator in the current epoch.
A validator can, of course, have more than one fault proven against it in an epoch. For example, a first fault is proven and then another fault for a higher severity is proven. Note that the protocol will only apply an accountability slashing to a validator for the fault with the highest severity committed in an epoch.
- On epoch end, performs slashing tasks and updates configuration.
promote guilty accusations
Accusations are placed into an accusation queue stored in memory. For each Accusation in the queue, the protocol checks if the proof submission window for the Accusation has expired and, if so, it attempts to promote the Accusation into a misbehaviour fault. If a fault with a higher severity than the Accusation already exists for the epoch, then the Accusation is dropped. Otherwise, a new FaultProof is created from the Accusation and the slashing history of the validator is updated to record this as the highest severity fault committed in the epoch.
The function takes each Accusation proof from the accusations queue and:
- Checks if the proof innocence window has closed. If the window is still open, the
Accusationremains in the queue. If the window has closed (the sum of the block number at which theAccusationwas reported and the number of blocks in the proof innocence window is greater than the current block number (_ev.reportingBlock + INNOCENCE_PROOF_SUBMISSION_WINDOW > block.number)), then theAccusationis removed from the queue (i.e. deleted) to determine if theAccusation'sshould be promoted to a fault. - Tries to promote the
Accusationto a fault or discards. The slashing history of the validator is checked to see if the validator already has a proven offence (i.e. aFaultProof) for the epoch with a severity>=to theAccusation. If true, then theAccusationis skipped as aFaultProofwith a higher severity has already been reported during the epoch. If false, then the validator’s slashing history is updated to record the new fault as the highest severity for the epoch. A newFaultProofis created for the validator and added to the slashing queue. - A
FaultProofevent is emitted logging the event.
The reported validator will be silenced and slashed for the fault at the end of the current epoch.
perform slashing tasks
For each fault the protocol performs slashing over faulty validators at the end of an epoch.
The function checks the total number of faults committed by all validators in the epoch, counting the number of fault proofs in the slashing queue, to quantify validator collusion. It then applies slashing for each fault in the slashing queue:
- Computes the slashing. The slashing rate and amount are computed taking into account the number of fault offences committed in the epoch by the offending validator and all validators globally. The slashing amount is calculated by the formula
(slashing rate * validator bonded stake)/slashing rate scale factor. - Applies the slashing penalty. Slashing is applied to the offending validator’s stake, subtracting the slashing amount from the validator’s bonded stake according to the protocol’s Penalty Absorbing Stake (PAS) model (self-bonded stake before delegated stake)
- Computes the jail period of the offending validator. If the validator stake slashing is 100% of bonded stake, permanent validator jailing is applied and the validator state is set to
jailbound. Else, jailing is temporary and a jail period is calculated, using the formulacurrent block number + jail factor * proven offence fault count * epoch periodto compute a jail release block number. The validator state is set tojailed. - Updates validator state. The validator’s proven fault counter is incremented by
1to record the slashing occurrence in the validator’s reputational slashing history. The jail release block number is recorded, set to the computed value ifjailedor set to0ifjailbound. Bonded stake amounts are adjusted for the slashing amount and the slashed stake token are transferred to the Autonity Protocol globaltreasuryaccount for community funding. - Updates global slashing state. The pending slashing fault queue is reset ready for the next epoch, and the reporting validator is added to the array of reward beneficiaries that will receive rewards for offence reporting
- A
SlashingEventevent is emitted for each validator that has been slashed.
Rewards for fault reporting are distributed to the treasury account of the reporting validator as the last block of the epoch is finalised. Reporting validator self-bonded and delegated stakeholders receive a share of the rewards pro rata to their bonded stake amount. If the rewards transfer to the validator treasury account fails, then the rewards are sent to the Autonity Protocol’s community treasury account.
The protocol adjusts the slashing rate according to the total number of fault offences committed in an epoch across all validators.
This mechanism applies a dynamic slashing rate mitigating collusion risk by Byzantine agents in an epoch.
update configuration
Checks to see if there are new values for gracePeriod, delta, range and updates the accountability configuration if so.
Changes to delta and range are applied at block finalization to avoid inconsistencies when processing multiple accusations in a block.
Parameters
| Field | Datatype | Description |
|---|---|---|
epochEnd |
Bool |
boolean value indicating if the current block is the last block of the epoch (true) or not (false) |
Response
None.
Event
The function emits events:
- on submission of a fault proof, a
NewFaultProofevent, logging:_offender,_severity,_id. - after a successful slashing, a
SlashingEventlogging:_val.nodeAddress,_slashingAmount,_val.jailReleaseBlock,isJailbound.
finalize (Oracle Contract)
The Oracle Contract finalisation function, called once per VotePeriod as part of the state finalisation function finalize(). The function checks if it is the last block of the vote period, if so then:
- checks for voters failing to commit-reveal, updates oracle voter non reveal count for any no reveal penalties, applies any no reveal slashing penalties, and resets the no reveal counter to
0 - executes the Oracle Contract’s on-chain aggregation routine to calculate the median of all price data points for each symbol submitted to the oracle, invoking the Oracle Contract
aggregateSymbolfunction - checks oracle voting performance during the round and updates the oracles’ voting performance score for the reward (epoch) period
- checks if there have been any oracle voter changes, if so then updates the oracle voter set for the following oracle voting round
- resets the
lastRoundBlockto the currentblock.number - increments the
roundcounter by1 - checks if there is a pending new vote period config change, if so then updates the oracle
votePeriodfor the following oracle voting round.
Parameters
None.
Response
Returns true if there is a new voting round and new symbol prices are available, false if not.
Event
On success the function emits:
- a
NewRoundevent for the new oracle voting period, logging: round numberround,block.timestamp, and vote period durationvotePeriod - a
NoRevealPenaltyevent for each non reveal penalty, logging validator oracle address_voter,round,nonRevealCount - a
CommitRevealMissedevent for each missed commit reveal, logging validator oracle address_address,round,nonRevealCount - a
Penalizedevent for each price outlier penalty, logging validator oracle addressvoter,_slashingAmount,_symbol,_priceMedian,price - a
TotalOracleRewardsevent for the total oracle ATN and NTN rewards distributed in the reward period (i.e. for the voting round), logging_totalNTN,_totalATN - a
PriceUpdatedevent for the oracle median price aggregation, logging_price,round,_symbol, boolean (true|false) if the symbol was updated or not,block.timestamp
handleEvent (Accountability Contract)
The accountability event handling function, invoked by protocol on submission of accountability event data to handle event processing.
Constraint checks are applied:
- the
msg.sendercaller is a registered validator identifier, else the transaction reverts. (Rewards for reporting a successful slashing event are distributed to the validator’streasuryaccount.) - the
msg.sendercalling the function and the slashing event reporter addresses are the same. - chunk segments are contiguous for oversize events that have been chunked for storage into a map. If an event’s raw proof data is above a floor byte size, then the event is
chunkedinto16kbsize chunks and stored in a map. Chunk id’s must be contiguous; i.e. a map can only contain chunks from one and not multiple events.
The function checks the event data:
- If the raw proof contains
>1chunk, then the function stores the event into a map and then returns.
The function then processes the event according to event type.
The function validates the accountability event proof, passing the event’s rawProof data to a precompiled contract for verification. The precompiled contract returns verification outcome to the method:
_success- boolean flag indicating if proof verification succeeded or failed_offender- validator identifier address of the fault offender_ruleId- ID of the accountability rule tested_block- number of the block in which the fault occurred_messageHash- cryptographic hash of the main fault evidence, therawProof.
Based on the verification outcome, constraint checks are applied:
the raw proof verification passed:
_successistruethere are no mismatches between the event data and the verified raw proof data fields:
- the returned
_offenderand eventoffenderaddress values match - the returned
_ruleIdand eventruleidentifier values match
- the returned
the
_blocknumber returned by the verification is less than the currentblock.number- the proof is for a historical and not future eventdepending on event type, specific constraint checks are applied:
- if
FaultProof, then:- the severity of the fault event is greater than the severity of the offender’s current slashing history for the epoch.
- if
Accusation, then:- the severity of the fault event is greater than the severity of the offender’s current slashing history for the epoch
- the validator does not have a pending accusation being processed.
- if
InnocenceProof, then:- the validator has an associated pending accusation being processed
- the innocence proof and associated accusation proof have matching: rule identifiers, block number, message hash.
- if
On successful constraint checking:
- The
eventdata object is updated using data returned by processing of the raw proof during proof verification processing:
| Field | Datatype | Description |
|---|---|---|
block |
uint256 |
assigned block number returned from verification in _block |
epoch |
uint256 |
assigned the identifier of the epoch in which the accountability event _block occurred |
reportingBlock |
uint256 |
assigned the current block number |
messageHash |
uint256 |
assigned the hash of the main evidence for the accountability event returned from verification in _messageHash |
- The event is added to the events queue and assigned an
_eventIdvalue reflecting its position in the event queue.
Then, depending on event type:
- If
FaultProof, then:- The record of validator faults is updated to add the new event ID.
- The event is added to the slashing queue.
- The slashing history of the validator for the epoch is updated to record the fault’s severity.
- If
Accusation, then:- The event is recorded as the validator’s pending accusation.
- The event is added to the accusation queue.
- If
InnocenceProof, then:- The accusation queue is checked and the associated accusation is removed.
- The validator’s pending accusation is reset to
0, indicating the validator has no pending accusations (so a new accusation can now be submitted against the validator).
Parameters
| Field | Datatype | Description |
|---|---|---|
_event |
Event |
event data object |
On proof submission an _event object data structure is constructed in memory, populated with fields ready for proof processing:
| Field | Datatype | Description |
|---|---|---|
chunks |
uint8 |
counter of the number of chunks in the accountability event (for oversize accountability event) |
chunkId |
uint8 |
chunk index to construct the oversize accountability event |
eventType |
EventType |
the accountability event type, one of: FaultProof (proven misbehaviour), Accusation (pending accusation), InnocenceProof (proven innocence) |
rule |
Rule |
the identifier of the accountability Rule defined in the Accountability Fault Detector (AFD) rule engine. Enumerated values are defined for each AFD Rule ID. |
reporter |
address |
the node address of the validator that reported this accountability event |
offender |
address |
the node address of the validator accused of the accountability event |
rawProof |
bytes |
the rlp encoded bytes of the accountability proof object |
block |
uint256 |
the number of the block at which the accountability event occurred. Assigned by protocol after proof verification. |
epoch |
uint256 |
the identifier of the epoch in which the accountability event occurred. Assigned by protocol after proof verification. |
reportingBlock |
uint256 |
the number of the block at which the accountability event was reported. Assigned by protocol after proof verification. |
messageHash |
uint256 |
hash of the main evidence for the accountability event. Assigned by protocol after proof verification. |
_validator |
address |
the address of the validator node being slashed |
Response
None.
Event
On success the function emits events for handling of:
- Fault proof: a
NewFaultProofevent, logging: round_offendervalidator address,_severityof the fault, and_eventId. - Accusation proof: a
NewAccusationevent, logging: round_offendervalidator address,_severityof the fault, and_eventId. - Innocence proof: an
InnocenceProvenevent, logging:_offendervalidator address,0indicating there are no pending accusations against the validator.
mint (Supply Control Contract)
The Auton mint function, called by the Stabilization Contract to mint Auton to recipients while processing a CDP borrowing.
Mints Auton and sends it to a recipient account, increasing the amount of Auton in circulation.
Constraint checks are applied:
- the caller is the
stabilizeraccount, the Stabilization Contract address - invalid recipient: the
recipientcannot be thestabilizeraccount, the Stabilization Contract address, or the zero address - invalid amount: the
amountis not equal to0or greater than the Supply Control Contract’s available Autonbalance.
When x amount of Auton is minted, then x is simply added to the account’s balance, increasing the total supply of Auton in circulation and reducing the supply of Auton available for minting.
Parameters
| Field | Datatype | Description |
|---|---|---|
recipient |
address |
the recipient account address |
amount |
uint256 |
amount of Auton to mint (non-zero) |
Response
No response object is returned on successful execution of the method call.
The new Auton balance of the recipient account can be returned from state using aut to Get the auton balance.
The new total supply of auton available for minting can be retrieved from state by calling the availableSupply() method.
Event
On a successful call the function emits a Mint event, logging: recipient, amount.
update (ACU Contract)
The Autonomous Currency Unit (ACU) Contract finalization function, called once per Oracle voting round as part of the state finalization function finalize(). The function checks if the Oracle Contract finalize() has initiated a new oracle voting round, if so then:
- it retrieves the latest prices from the Oracle Contract (i.e. the latest round data)
- checks price data completeness:
- if latest prices have been returned for all symbols in the ACU currency basket, then:
- computes the ACU index value
- resets the
roundto the index number of the oracle voting round that computed the retrieved latest prices. - returns status of
trueto the calling Autonity Protocol Contract
- else if one or more prices are unavailable from the Oracle, it will not compute the ACU value for that round, and returns status of
falseto the calling Autonity Protocol Contract.
- if latest prices have been returned for all symbols in the ACU currency basket, then:
Parameters
None.
Response
None.
Event
On success the function emits an Updated event for the new ACU value, logging: block.number, block.timestamp, oracle voting round number round, and the ACU index value calculated _value.