Adam Uhlíř
57e8cd5013
feat: expiry specified as duration ( #99 )
2024-05-06 15:13:32 +02:00
Mark Spanbroek
6c9f797f40
Explicit getters for token and config
...
Implicit getters have slightly different semantics when
it comes to ABI encoding their results.
2024-02-06 12:27:40 +01:00
Mark Spanbroek
70b22b241f
Refactor verifier contract: remove unnecessary conversions
2024-01-25 13:08:10 +01:00
Mark Spanbroek
c0ca508a6b
Refactor verifier contract: public input as dynamic array
2024-01-25 13:08:10 +01:00
Mark Spanbroek
f3e2186ec2
Update solidity to 0.8.23
2024-01-25 13:08:10 +01:00
Mark Spanbroek
33614ee218
Calculate public inputs for ZK proof verificition
2024-01-25 13:08:10 +01:00
Mark Spanbroek
38411c27ca
Move submitProof() function to Marketplace
2024-01-25 13:08:10 +01:00
Mark Spanbroek
e6a918fed9
Submit proof as Groth16Proof struct
2024-01-25 13:08:10 +01:00
Mark Spanbroek
ae03690d51
Submit proof as field elements, not bytes
2024-01-25 13:08:10 +01:00
Mark Spanbroek
e59f0f961e
Submit proofs as array of bytes
2024-01-25 13:08:10 +01:00
Mark Spanbroek
d29a259090
Fix linter warnings
2024-01-25 13:08:10 +01:00
Mark Spanbroek
327ae14112
Formatting with prettier
2024-01-25 13:08:10 +01:00
Mark Spanbroek
db124ddbd9
Re-arrange marketplace constructor parameters
...
first configuration, then contracts that we depend on
2024-01-25 13:08:10 +01:00
Adam Uhlíř
0d9b67bb31
feat: verifier integration
2024-01-25 13:08:10 +01:00
Adam Uhlíř
87461f6b83
fix: check expiration is before request end ( #77 )
2023-12-05 11:18:43 +01:00
Adam Uhlíř
14e453ac31
feat: partial payouts for cancelled requests ( #69 )
2023-10-16 11:14:02 +02:00
Eric Mastro
230e7276e2
Support slot queue ( #61 )
...
* feat: add request expiry to StorageRequested event
* add slot index to SlotFreed event
* copy slotIndex before delete for emit
* Update tests
2023-06-22 06:18:33 +10: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
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
Eric Mastro
6e66abbfcd
retreive active slot for sales state restoration ( #51 )
...
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íř
2b5d079882
feat: collateral fractions ( #47 )
...
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 ( #48 )
2023-03-08 17:19:49 +01:00
Adam Uhlíř
dfdbd16d5b
feat: collateral per slot ( #44 )
2023-03-08 12:02:34 +01:00
Eric Mastro
cde5436262
get request from slot id ( #34 )
...
* 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
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
b62eeb564a
[marketplace] test & fix slotState()
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
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
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
Mark Spanbroek
1316682a6f
[marketplace] remove slotMustAcceptProofs modifier
...
Replaced by checks on slot state
2023-01-23 15:10:23 +01:00
Mark Spanbroek
7d377a3739
[marketplace] remove requestMustAcceptProofs modifier
...
Is already covered by the slot state check later on
2023-01-23 15:10:23 +01:00
Mark Spanbroek
dd65133576
[marketplace] replace Slot.hostPaid with SlotState.Paid
2023-01-23 15:10:23 +01:00
Mark Spanbroek
c8dda37300
[marketplace] introduce SlotState
...
- replace proofEnd() by slotState()
- replace _slotAcceptsProofs() by slotState()
- remove _stopRequiringProofs()
2023-01-23 15:10:23 +01:00
Mark Spanbroek
de0595edb3
[marketplace] rename state(id) -> requestState(id)
2023-01-23 15:10:23 +01:00
Mark Spanbroek
10f88a62a7
[marketplace] Move RequestState enum to Requests.sol
2023-01-23 15:10:23 +01:00
Mark Spanbroek
bb0302afcb
[marketplace] inline function _notEqual
2023-01-23 15:10:23 +01:00
Mark Spanbroek
e496ac3550
[marketplace] remove _isCancelled and _isFinished
2023-01-23 15:10:23 +01:00
Mark Spanbroek
9aa4773392
[marketplace] remove unused _isSlotCancelled()
2023-01-23 15:10:23 +01:00
Mark Spanbroek
fffd0dcb86
[marketplace] remove dead code
2023-01-23 15:10:23 +01:00
Mark Spanbroek
de368708b2
[marketplace, proofs] simplify proofTimeout getter
2023-01-23 15:10:23 +01:00
Mark Spanbroek
6aa76257f8
[Marketplace] Move `slotId()` to `Requests` library
...
Co-authored-by: Eric Mastro <eric.mastro@gmail.com>
2023-01-12 13:57:44 +01:00