Skip to content

Commit

Permalink
Dashboard image
Browse files Browse the repository at this point in the history
  • Loading branch information
kevin-valerio committed Oct 16, 2024
1 parent 2e3432a commit 3209199
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 23 deletions.
Binary file added assets/dashboard.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 6 additions & 5 deletions book/documentation/INTRO.html
Original file line number Diff line number Diff line change
Expand Up @@ -187,20 +187,21 @@ <h2 id="overview-of-phink"><a class="header" href="#overview-of-phink">Overview
<p><strong>Phink</strong> is a blazing-fast⚡, property-based, coverage-guided fuzzer for ink! smart contracts. It enables developers to
embed inviolable properties into their smart contract testing workflows, equipping them with automatic tools to detect
vulnerabilities and ensure contract reliability before deployment.</p>
<h2 id="key-features"><a class="header" href="#key-features">Key Features</a></h2>
<h3 id="property-based-testing"><a class="header" href="#property-based-testing">Property-based Testing</a></h3>
<h3 id="dashboard-overview"><a class="header" href="#dashboard-overview">Dashboard Overview</a></h3>
<img src="https://raw.githubusercontent.com/srlabs/phink/refs/heads/main/assets/dashboard.png" alt="phink" width="250"/>
<h3 id="key-features"><a class="header" href="#key-features">Key Features</a></h3>
<h4 id="property-based-testing"><a class="header" href="#property-based-testing">Property-based Testing</a></h4>
<p>Phink requires developers to define properties directly within ink! smart contracts. By prefixing functions with
<code>phink</code>, such as <code>fn phink_assert_abc_always_true()</code>, developers create properties that
act as assertions. During testing, these properties are checked against every input (a set of ink! messages). If a
property’s assertion fails, it
triggers a panic, signaling that an invariant has been broken. This method ensures thorough validation of contract logic
and behavior.</p>
<h3 id="coverage-guided-fuzzing"><a class="header" href="#coverage-guided-fuzzing">Coverage-guided Fuzzing</a></h3>
<h4 id="coverage-guided-fuzzing"><a class="header" href="#coverage-guided-fuzzing">Coverage-guided Fuzzing</a></h4>
<p>In order to become coverage-guided, Phink needs to instrument the ink! smart contract. Although
currently adding feedback on each line executed, Phink is designed to evolve, eventually monitoring coverage across new
edges and code branches. Feedback is transmitted to the <code>pallet_contract</code> via the <code>debug_message</code>.</p>
<h2 id="why-use-phink"><a class="header" href="#why-use-phink">Why Use Phink</a></h2>
<h3 id="detect-security-vulnerabilities"><a class="header" href="#detect-security-vulnerabilities">Detect Security Vulnerabilities</a></h3>
<h3 id="why-use-phink"><a class="header" href="#why-use-phink">Why Use Phink</a></h3>
<p>Phink addresses security concerns by:</p>
<ul>
<li><strong>Automatically generating and testing</strong> a diverse range of inputs</li>
Expand Down
11 changes: 6 additions & 5 deletions book/documentation/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -187,20 +187,21 @@ <h2 id="overview-of-phink"><a class="header" href="#overview-of-phink">Overview
<p><strong>Phink</strong> is a blazing-fast⚡, property-based, coverage-guided fuzzer for ink! smart contracts. It enables developers to
embed inviolable properties into their smart contract testing workflows, equipping them with automatic tools to detect
vulnerabilities and ensure contract reliability before deployment.</p>
<h2 id="key-features"><a class="header" href="#key-features">Key Features</a></h2>
<h3 id="property-based-testing"><a class="header" href="#property-based-testing">Property-based Testing</a></h3>
<h3 id="dashboard-overview"><a class="header" href="#dashboard-overview">Dashboard Overview</a></h3>
<img src="https://raw.githubusercontent.com/srlabs/phink/refs/heads/main/assets/dashboard.png" alt="phink" width="250"/>
<h3 id="key-features"><a class="header" href="#key-features">Key Features</a></h3>
<h4 id="property-based-testing"><a class="header" href="#property-based-testing">Property-based Testing</a></h4>
<p>Phink requires developers to define properties directly within ink! smart contracts. By prefixing functions with
<code>phink</code>, such as <code>fn phink_assert_abc_always_true()</code>, developers create properties that
act as assertions. During testing, these properties are checked against every input (a set of ink! messages). If a
property’s assertion fails, it
triggers a panic, signaling that an invariant has been broken. This method ensures thorough validation of contract logic
and behavior.</p>
<h3 id="coverage-guided-fuzzing"><a class="header" href="#coverage-guided-fuzzing">Coverage-guided Fuzzing</a></h3>
<h4 id="coverage-guided-fuzzing"><a class="header" href="#coverage-guided-fuzzing">Coverage-guided Fuzzing</a></h4>
<p>In order to become coverage-guided, Phink needs to instrument the ink! smart contract. Although
currently adding feedback on each line executed, Phink is designed to evolve, eventually monitoring coverage across new
edges and code branches. Feedback is transmitted to the <code>pallet_contract</code> via the <code>debug_message</code>.</p>
<h2 id="why-use-phink"><a class="header" href="#why-use-phink">Why Use Phink</a></h2>
<h3 id="detect-security-vulnerabilities"><a class="header" href="#detect-security-vulnerabilities">Detect Security Vulnerabilities</a></h3>
<h3 id="why-use-phink"><a class="header" href="#why-use-phink">Why Use Phink</a></h3>
<p>Phink addresses security concerns by:</p>
<ul>
<li><strong>Automatically generating and testing</strong> a diverse range of inputs</li>
Expand Down
11 changes: 6 additions & 5 deletions book/documentation/print.html
Original file line number Diff line number Diff line change
Expand Up @@ -185,20 +185,21 @@ <h2 id="overview-of-phink"><a class="header" href="#overview-of-phink">Overview
<p><strong>Phink</strong> is a blazing-fast⚡, property-based, coverage-guided fuzzer for ink! smart contracts. It enables developers to
embed inviolable properties into their smart contract testing workflows, equipping them with automatic tools to detect
vulnerabilities and ensure contract reliability before deployment.</p>
<h2 id="key-features"><a class="header" href="#key-features">Key Features</a></h2>
<h3 id="property-based-testing"><a class="header" href="#property-based-testing">Property-based Testing</a></h3>
<h3 id="dashboard-overview"><a class="header" href="#dashboard-overview">Dashboard Overview</a></h3>
<img src="https://raw.githubusercontent.com/srlabs/phink/refs/heads/main/assets/dashboard.png" alt="phink" width="250"/>
<h3 id="key-features"><a class="header" href="#key-features">Key Features</a></h3>
<h4 id="property-based-testing"><a class="header" href="#property-based-testing">Property-based Testing</a></h4>
<p>Phink requires developers to define properties directly within ink! smart contracts. By prefixing functions with
<code>phink</code>, such as <code>fn phink_assert_abc_always_true()</code>, developers create properties that
act as assertions. During testing, these properties are checked against every input (a set of ink! messages). If a
property’s assertion fails, it
triggers a panic, signaling that an invariant has been broken. This method ensures thorough validation of contract logic
and behavior.</p>
<h3 id="coverage-guided-fuzzing"><a class="header" href="#coverage-guided-fuzzing">Coverage-guided Fuzzing</a></h3>
<h4 id="coverage-guided-fuzzing"><a class="header" href="#coverage-guided-fuzzing">Coverage-guided Fuzzing</a></h4>
<p>In order to become coverage-guided, Phink needs to instrument the ink! smart contract. Although
currently adding feedback on each line executed, Phink is designed to evolve, eventually monitoring coverage across new
edges and code branches. Feedback is transmitted to the <code>pallet_contract</code> via the <code>debug_message</code>.</p>
<h2 id="why-use-phink"><a class="header" href="#why-use-phink">Why Use Phink</a></h2>
<h3 id="detect-security-vulnerabilities"><a class="header" href="#detect-security-vulnerabilities">Detect Security Vulnerabilities</a></h3>
<h3 id="why-use-phink"><a class="header" href="#why-use-phink">Why Use Phink</a></h3>
<p>Phink addresses security concerns by:</p>
<ul>
<li><strong>Automatically generating and testing</strong> a diverse range of inputs</li>
Expand Down
2 changes: 1 addition & 1 deletion book/documentation/searchindex.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion book/documentation/searchindex.json

Large diffs are not rendered by default.

14 changes: 8 additions & 6 deletions book/src/INTRO.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,13 @@
embed inviolable properties into their smart contract testing workflows, equipping them with automatic tools to detect
vulnerabilities and ensure contract reliability before deployment.

## Key Features
### Dashboard Overview

### Property-based Testing
<img src="https://raw.githubusercontent.com/srlabs/phink/refs/heads/main/assets/dashboard.png" alt="phink" width="250"/>

### Key Features

#### Property-based Testing

Phink requires developers to define properties directly within ink! smart contracts. By prefixing functions with
`phink`, such as `fn phink_assert_abc_always_true()`, developers create properties that
Expand All @@ -22,15 +26,13 @@ property’s assertion fails, it
triggers a panic, signaling that an invariant has been broken. This method ensures thorough validation of contract logic
and behavior.

### Coverage-guided Fuzzing
#### Coverage-guided Fuzzing

In order to become coverage-guided, Phink needs to instrument the ink! smart contract. Although
currently adding feedback on each line executed, Phink is designed to evolve, eventually monitoring coverage across new
edges and code branches. Feedback is transmitted to the `pallet_contract` via the `debug_message`.

## Why Use Phink

### Detect Security Vulnerabilities
### Why Use Phink

Phink addresses security concerns by:

Expand Down

0 comments on commit 3209199

Please sign in to comment.