299 Commits

Author SHA1 Message Date
Mark Spanbroek
f530bc5081 [fuzzing] Only use docker image on x86_64 machines
The echidna docker image does not support ARM
Macs, for example.
2023-06-19 14:58:47 +02:00
Mark Spanbroek
b396f13359 [fuzzing] Fix CI 2023-06-19 14:58:47 +02:00
Mark Spanbroek
05ef48bf7f [fuzzing] Add suggestions for a long test run 2023-06-19 14:58:47 +02:00
Mark Spanbroek
d4fc6bbf7c [fuzzing] update to Echidna 2.2.0 2023-06-19 14:58:47 +02:00
Mark Spanbroek
a7dd840eaa [fuzzing] transfers out of the contract should always pass
When a transfer of tokens from the contract fails, then the
fuzzer has found a bug. Changing `require` to `assert`
ensures that the fuzzer considers this a test failure.
2023-06-19 14:58:47 +02:00
Mark Spanbroek
03e5546121 [marketplace] formatting 2023-06-19 14:58:47 +02:00
Mark Spanbroek
42d4778dcc [fuzzing] compile contracts before invoking docker
Ensures that `npm run fuzz` will succeed whether or
not the contracts were compiled beforehand.
2023-06-19 14:58:47 +02:00
Mark Spanbroek
c1b412c589 [fuzzing] allow fuzz.sh to be called from any directory 2023-06-19 14:58:47 +02:00
Mark Spanbroek
25f52c72b1 [ci] Run fuzzing in CI 2023-06-19 14:58:47 +02:00
Mark Spanbroek
3390e21071 [fuzzing] Enable fuzzing for Marketplace
Replaces runtime invariant checks with fuzzing tests,
simplifying the contract code and lowering gas costs.
2023-06-19 14:58:47 +02:00
benbierens
d57cfc69cd Fix "invalid value undefined" in hardhat configuration 2023-06-19 10:49:40 +02:00
Eric Mastro
c7b69893a1 only mint tokens when on local hardhat network 2023-06-19 10:49:40 +02:00
benbierens
312a3eee55 Sets workdir, adds readme 2023-06-19 10:49:40 +02:00
benbierens
ff6eb147c6 Waits for token mint transaction. 2023-06-19 10:49:40 +02:00
benbierens
f69f9cf7fe debugging deployment of contract to geth node 2023-06-19 10:49:40 +02:00
benbierens
a9a1882ed3 Setting up start script. 2023-06-19 10:49:40 +02:00
Slava
ee70b64b15
Add Docker builds () 2023-05-25 22:00:56 +03:00
Slava
7b7773c436
Update links to codex-storage organization () 2023-05-25 12:56:04 +03:00
Adam Uhlíř
30affa0da8
build: make sure marketplace is on predefined address () 2023-04-26 09:44:55 +02:00
Eric Mastro
6e66abbfcd
retreive active slot for sales state restoration ()
Store slotIndex in slot struct and expose the slot via getActiveSlot. This is to be used when restoring state in the sales module after a node restart.
2023-04-14 09:28:39 +10:00
Adam Uhlíř
63d8ec786a
build: funds localhost env. accounts () 2023-04-03 10:39:48 +02:00
Adam Uhlíř
2b5d079882
feat: collateral fractions ()
Co-authored-by: Eric Mastro <github@egonat.me>
2023-03-30 11:11:21 +02:00
Adam Uhlíř
8b39ef8f4a
fix: reset missed counter when slot is freed () 2023-03-08 17:19:49 +01:00
Adam Uhlíř
dfdbd16d5b
feat: collateral per slot () 2023-03-08 12:02:34 +01:00
Mark Spanbroek
fcc28b3931 [readme] update readme with slots, add references 2023-02-01 11:20:27 +01:00
Mark Spanbroek
7c9ebb3c31 [test] tweak test settings
- stop on first failure (quick feedback)
- do not warn about slow test before 100 ms
  (solidity tests are inherently slow)
- set test timeout to 30 seconds
2023-01-30 14:48:03 +01:00
Mark Spanbroek
24ef30bd2a [proofs] improve test to check proof probability
- avoid bias due to pointer downtime
- use statistical binomial test
2023-01-30 14:47:37 +01:00
Mark Spanbroek
e89bfcbaae [build] add library for statistical binomial tests 2023-01-30 14:47:37 +01:00
Mark Spanbroek
c9b51695aa [proofs] support probability 1 (proofs always required) 2023-01-30 14:47:37 +01:00
Eric Mastro
cde5436262
get request from slot id ()
* get request from slot id

- Add public function to get request from slot id.
- Add chai test assertion that compares requests. Usage: `expect(await marketplace.getRequestFromSlotId(slotId(slot))).to.be.request(request)`

This is used when restoring active sales, and a node calls `mySlots`, then iterates the slots and needs originating request details.

* merge upstream changes
2023-01-24 15:59:56 +11:00
Mark Spanbroek
be38c54622 [style] enforce _ prefix for private names
Co-authored-by: Eric Mastro <eric.mastro@gmail.com>
2023-01-23 15:10:23 +01:00
Mark Spanbroek
b81e6e6532 [marketplace] better wording
Avoids the word 'expired' which is associated
with cancelling a request

Co-authored-by: Eric Mastro <eric.mastro@gmail.com>
2023-01-23 15:10:23 +01:00
Mark Spanbroek
b3855c4ba3 [style] Use _ for private and internal functions
Co-authored-by: Eric Mastro <eric.mastro@gmail.com>
2023-01-23 15:10:23 +01:00
Mark Spanbroek
3bb077db7a [marketplace] reordering
Co-authored-by: Eric Mastro <eric.mastro@gmail.com>
2023-01-23 15:10:23 +01:00
Mark Spanbroek
019c1c34c0 [marketplace] rewrite slot freeing test
To make it independent of values chosen in exampleRequest().
Uses the recently introduced slotState().
2023-01-23 15:10:23 +01:00
Mark Spanbroek
b62eeb564a [marketplace] test & fix slotState() 2023-01-23 15:10:23 +01:00
Mark Spanbroek
70d8967f26 [deployment] use new configuration struct 2023-01-23 15:10:23 +01:00
Mark Spanbroek
334da1144d [marketplace] renaming and reshuffling of request state test 2023-01-23 15:10:23 +01:00
Mark Spanbroek
ae70fd7c6f [marketplace] introduce MarketplaceConfiguration struct
Container for all configuration values, replaces separate
constructor parameters and getters.
2023-01-23 15:10:23 +01:00
Mark Spanbroek
91ccc82d49 [proofs] remove dead code 2023-01-23 15:10:23 +01:00
Mark Spanbroek
bd284acce3 [examples] remove dead code 2023-01-23 15:10:23 +01:00
Mark Spanbroek
2dbdd0028d [marketplace] move price calculations to Requests.sol 2023-01-23 15:10:23 +01:00
Mark Spanbroek
7aa162b526 [marketplace] move proofPeriod() getter to Proofs.sol 2023-01-23 15:10:23 +01:00
Mark Spanbroek
8c6891f1e2 [marketplace] slotIsNotFree() modifier
Replaces _slot getter
2023-01-23 15:10:23 +01:00
Mark Spanbroek
944e9c9da2 [marketplace] requestIsKnown() modifier
Replaces _request() getter
2023-01-23 15:10:23 +01:00
Mark Spanbroek
6eab9fee9a [marketplace] remove wrappers around proof functions
No longer required; slot state is checked in Proofs.sol
2023-01-23 15:10:23 +01:00
Mark Spanbroek
55ef97687e [proofs] Remove outdated comment 2023-01-23 15:10:23 +01:00
Mark Spanbroek
97af6f7484 [marketplace] remove dead code 2023-01-23 15:10:23 +01:00
Mark Spanbroek
32b137a427 [marketplace] inline _context() 2023-01-23 15:10:23 +01:00
Mark Spanbroek
e828529e90 [marketplace] inline the requestAcceptsProofs() function
It was only used in one place
2023-01-23 15:10:23 +01:00