55 Commits

Author SHA1 Message Date
Mark Spanbroek
f9cc73d62f Rename invariants to avoid name clashes 2022-03-15 10:01:12 +01:00
Mark Spanbroek
e1ef2a2216 Request storage using Marketplace contract 2022-03-15 10:01:12 +01:00
Mark Spanbroek
e963a25c94 Replace Stakes with Collateral
Removes the old Stakes implementation in favor of the
new Collateral implementation.
2022-03-01 09:38:53 +01:00
Mark Spanbroek
1f01704afd Document the account locking design 2022-03-01 09:38:53 +01:00
Mark Spanbroek
91a976a007 Prevent withdrawal of locked collateral 2022-03-01 09:38:53 +01:00
Mark Spanbroek
c5fab40535 Account locking 2022-03-01 09:38:53 +01:00
Mark Spanbroek
ab38473688 Slash collateral 2022-03-01 09:38:53 +01:00
Mark Spanbroek
2f59927b30 Check result of ERC20 transferFrom call 2022-03-01 09:38:53 +01:00
Mark Spanbroek
9e0d05965d Update collateral totals and balance at the same time 2022-03-01 09:38:53 +01:00
Mark Spanbroek
c86fdfbec1 Withdraw collateral 2022-03-01 09:38:53 +01:00
Mark Spanbroek
3d50e56fe7 Collateral invariant 2022-03-01 09:38:53 +01:00
Mark Spanbroek
6e0aded775 Deposit collateral 2022-03-01 09:38:53 +01:00
Mark Spanbroek
f7af18eb2d Lint with solhint 2022-02-10 07:46:03 +01:00
Mark Spanbroek
78755ecaa2 Format using prettier 2022-02-10 07:46:03 +01:00
Mark Spanbroek
0fedd8875f Use standard ABI encoding instead of the non-standard
packing mode.
2021-11-24 11:43:31 +01:00
Mark Spanbroek
b9a9be350a Simplify signature of TestToken.mint
To be compatible with nim-web3, which doesn't
support arrays in a method signature.
2021-11-23 14:35:00 +01:00
Mark Spanbroek
a69a6d6975 Use deployment fixture for Storage contract tests 2021-11-18 13:56:12 +01:00
Mark Spanbroek
7b16841534 Change test token to allow arbitrary minting 2021-11-18 13:56:12 +01:00
Mark Spanbroek
8bb8441bce Slash host stake when too many proofs are missing 2021-11-04 14:19:58 +01:00
Mark Spanbroek
50bab88447 Allow slashing of stake 2021-11-04 13:16:11 +01:00
Mark Spanbroek
38fee6d83a Pay host when contract is finished 2021-11-04 11:55:47 +01:00
Mark Spanbroek
d2a3cc4a89 Client pays price when creating contract 2021-11-04 11:40:03 +01:00
Mark Spanbroek
afad0e49ec Mint test tokens for both client and host 2021-11-04 11:32:21 +01:00
Mark Spanbroek
54cc2987df Ensure that finishing a contract can only be done once 2021-11-04 11:18:05 +01:00
Mark Spanbroek
aa673ff71c Unlock host stake at end of contract 2021-11-04 10:19:23 +01:00
Mark Spanbroek
6de82709ca Only host can call start on a contract 2021-11-04 10:00:41 +01:00
Mark Spanbroek
376962322d Only expect proofs when the contract is started 2021-11-04 10:00:41 +01:00
Mark Spanbroek
c0fb0c725c Do not require proofs before start of contract 2021-11-03 17:15:03 +01:00
Mark Spanbroek
8efa9fe162 Stop requiring proofs when contract has ended 2021-11-03 17:02:12 +01:00
Mark Spanbroek
2784800c3e Add end time to proofs based on contract duration 2021-11-03 17:01:11 +01:00
Mark Spanbroek
3326c4fe74 Make isProofRequired() work for the current block
The block hash of the current block is not known yet, so
we use the block hash of the previous block to determine
whether a proof is required for a block.
2021-11-03 13:20:40 +01:00
Mark Spanbroek
e7f3dc3dae Define contract duration in number of blocks
This makes calculation with duration in Solidity simpler
and less prone to errors.
2021-11-03 11:10:42 +01:00
Mark Spanbroek
65c3cacb66 Host stake is locked up when contract is created 2021-11-02 12:50:20 +01:00
Mark Spanbroek
d49c75a74b Make amount of stake configurable 2021-11-02 12:45:53 +01:00
Mark Spanbroek
8736e5a1aa Host has to put up stake before entering into a contract 2021-11-02 11:25:01 +01:00
Mark Spanbroek
3b6ec4126d Fix comments 2021-11-02 11:22:34 +01:00
Mark Spanbroek
7b6c6c2fc5 Rename: StorageContracts -> Storage 2021-11-01 16:34:01 +01:00
Mark Spanbroek
eefa23ff02 Change parameter order
Move parameters belonging to the bid together.
2021-11-01 16:23:37 +01:00
Mark Spanbroek
650f5d1f1a Checking of new storage contracts is moved to Contracts.sol 2021-11-01 16:17:42 +01:00
Mark Spanbroek
aa0def1127 Move timeout validity check to Proofs contract 2021-11-01 15:28:22 +01:00
Mark Spanbroek
d5dede6e6b Change visibility of stake functions to 'internal'
This ensures that any contract that inherits from Stakes
doesn't expose its functions by default.
2021-11-01 15:17:19 +01:00
Mark Spanbroek
d1f5ce0786 Extract logic around proofs into separate contract 2021-11-01 15:12:05 +01:00
Mark Spanbroek
c013a37229 Add contract for keeping track of stakes in ERC20 tokens 2021-10-21 14:09:37 +02:00
Mark Spanbroek
23887f9190 Do not mark proof as missing twice 2021-10-21 10:32:29 +02:00
Mark Spanbroek
c3e85c675a Use bid hash as contract id
Adds nonce to storage request to ensure uniqueness.
2021-10-20 14:30:31 +02:00
Mark Spanbroek
08cedae4bf Multiple storage contracts in solidity contract 2021-10-20 14:30:31 +02:00
Mark Spanbroek
d005bf7c3c Rename StorageContract -> StorageContracts 2021-10-20 10:59:08 +02:00
Mark Spanbroek
4913edb6ce Allow anyone to mark missing proofs 2021-10-19 09:37:03 +02:00
Mark Spanbroek
47f0746f06 Add expiration time to bids 2021-10-18 15:31:19 +02:00
Mark Spanbroek
71efdd36c7 Add (dummy) proof submission 2021-10-18 14:55:59 +02:00