Group typographical errors (#5443)
Co-authored-by: futreall <86553580+futreall@users.noreply.github.com> Co-authored-by: Marco <wudmytrotest200@gmail.com> Co-authored-by: Dmitry <98899785+mdqst@users.noreply.github.com> Co-authored-by: Dmytrol <46675332+Dimitrolito@users.noreply.github.com> Co-authored-by: Noisy <125606576+donatik27@users.noreply.github.com> Co-authored-by: Danil <37103154+Danyylka@users.noreply.github.com> Co-authored-by: CrazyFrog <anna.shuraeva13@gmail.com> Co-authored-by: Bryer <0xbryer@gmail.com> Co-authored-by: Viktor Pavlik <160131789+Vikt0rPavlik@users.noreply.github.com> Co-authored-by: Skylar Ray <137945430+sky-coderay@users.noreply.github.com> Co-authored-by: Brawn <nftdropped@gmail.com> Co-authored-by: fuder.eth <139509124+vtjl10@users.noreply.github.com> Co-authored-by: FT <140458077+zeevick10@users.noreply.github.com> Co-authored-by: Ann Wagner <chant_77_swirly@icloud.com> Co-authored-by: Hopium <135053852+Hopium21@users.noreply.github.com> Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com> Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
This commit is contained in:
@ -2,14 +2,14 @@
|
||||
|
||||
These instructions detail the process for running Certora Verification Tool on OpenZeppelin Contracts.
|
||||
|
||||
Documentation for CVT and the specification language are available [here](https://certora.atlassian.net/wiki/spaces/CPD/overview).
|
||||
Documentation for CVT and the specification language is available [here](https://certora.atlassian.net/wiki/spaces/CPD/overview).
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Follow the [Certora installation guide](https://docs.certora.com/en/latest/docs/user-guide/getting-started/install.html) in order to get the Certora Prover Package and the `solc` executable folder in your path.
|
||||
|
||||
> **Note**
|
||||
> An API Key is required for local testing. Although the prover will run on a Github Actions' CI environment on selected Pull Requests.
|
||||
> An API Key is required for local testing. Although the prover will run on a GitHub Actions' CI environment on selected Pull Requests.
|
||||
|
||||
## Running the verification
|
||||
|
||||
|
||||
@ -176,7 +176,7 @@ rule renounceRoleEffect(env e, bytes32 role) {
|
||||
|
||||
/*
|
||||
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||||
│ Rule: defaultAdmin is only affected by accepting an admin transfer or renoucing │
|
||||
│ Rule: defaultAdmin is only affected by accepting an admin transfer or renouncing │
|
||||
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||||
*/
|
||||
rule noDefaultAdminChange(env e, method f, calldataarg args) {
|
||||
@ -188,7 +188,7 @@ rule noDefaultAdminChange(env e, method f, calldataarg args) {
|
||||
f.selector == sig:acceptDefaultAdminTransfer().selector ||
|
||||
f.selector == sig:renounceRole(bytes32,address).selector
|
||||
),
|
||||
"default admin is only affected by accepting an admin transfer or renoucing";
|
||||
"default admin is only affected by accepting an admin transfer or renouncing";
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -18,7 +18,7 @@ methods {
|
||||
*/
|
||||
ghost mapping(address => mathint) trackedMintAmount;
|
||||
ghost mapping(address => mathint) trackedBurnAmount;
|
||||
ghost mapping(address => mapping(address => mathint)) trackedTransferedAmount;
|
||||
ghost mapping(address => mapping(address => mathint)) trackedTransferredAmount;
|
||||
|
||||
function specUpdate(address from, address to, uint256 amount) {
|
||||
if (from == 0 && to == 0) { assert(false); } // defensive
|
||||
@ -28,7 +28,7 @@ function specUpdate(address from, address to, uint256 amount) {
|
||||
} else if (to == 0) {
|
||||
trackedBurnAmount[from] = amount;
|
||||
} else {
|
||||
trackedTransferedAmount[from][to] = amount;
|
||||
trackedTransferredAmount[from][to] = amount;
|
||||
}
|
||||
}
|
||||
|
||||
@ -51,5 +51,5 @@ rule checkMintAndBurn(env e) {
|
||||
|
||||
assert trackedMintAmount[receiver] == to_mathint(amount);
|
||||
assert trackedBurnAmount[receiver] == amount + to_mathint(recipient == 0 ? fees : 0);
|
||||
assert (fees > 0 && recipient != 0) => trackedTransferedAmount[receiver][recipient] == to_mathint(fees);
|
||||
assert (fees > 0 && recipient != 0) => trackedTransferredAmount[receiver][recipient] == to_mathint(fees);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user