scribble icon indicating copy to clipboard operation
scribble copied to clipboard

Scribble instrumentation tool

Results 23 scribble issues
Sort by recently updated
recently updated
newest added

The typing logic for `SId` is split between several functions: `tcId`, `tcIdVariable`, `tcLetAnnotation`, `tcUserConstant`, `lookupFun`, `lookupVarDef`, `lookupTypeDef`, `tcIdBuiltinSymbol`, `tcIdImportUnitRef`. Whats worse, there are 2 redundant styles of checking types: a)...

Hi, I am encountering a compilation error in the Scribble generated `ReentrancyUtils` file. The file I am instrumenting has the following data structure: `mapping(address => uint256) private _valueMap;` I ran...

In our smart contracts, there are several properties dependent on the state variables which need to be initialized through the constructor. In one such instance, we need to check that...

Currently low-level tools (such as the Harvey fuzzer) report a bytecode offset where a user-provided assertion failure was detected. This is usually the offset of the `LOG1` instruction that corresponds...

As described in #163 we changed the scribble type-checker to reject annotations that talk about private state variables of base contracts. So for example it would reject samples such as...

enhancement

Is it possible to achieve something like this? ```solidity contract Vault { struct Account { uint256 id; uint256 shares; } mapping(address => Account) accounts; uint256 totalShares; /// #invariant unchecked_sum(accounts.shares) ==...

question

Scribble is sometimes used to instrument the code for local testing. When this is done in a Hardhat environment, people often use `console.log(...)` to print out various information. In this...

enhancement

We have use cases for comparing strings, arrays and structs in properties. However the base Solidity language doesn't support equality comparison of non-value types. We could add structural equality comparison...

enhancement

With #128 we added an internal yaml schema checker function in `yaml.ts`. This is overkill, and should be replaced with an external library (e.g. https://www.npmjs.com/package/yaml-schema-validator). Note that it would be...

good first issue
debt

Instrumentation turns the following terminating code into non-terminating code: ```solidity contract Foo { function double1(uint x) public view returns (uint) { return double2(x); } /// if_succeeds $result == double1(x); function...

enhancement