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
8fbb99630c
Ensure that starting a contract can only be done once
2021-11-04 10:23:00 +01:00
Mark Spanbroek
aa673ff71c
Unlock host stake at end of contract
2021-11-04 10:19:23 +01:00
Mark Spanbroek
d0a22afc3d
Extract mining test helpers to separate module
2021-11-04 10:18:09 +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
7bb949a5cc
Wording
2021-11-03 17:20:33 +01:00
Mark Spanbroek
b865d0f4c9
Decrease chance of incidental test failure
2021-11-03 17:15:24 +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
5eb571fe1c
Use 'request' and 'bid' objects in tests
2021-11-02 09:45:49 +01:00
Mark Spanbroek
a5e05018ad
Move example values for tests into separate file
2021-11-02 09:04:51 +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
973b70734f
Make test less dependent on exact timing of block timestamp
2021-10-18 16:20:30 +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
Mark Spanbroek
01e18ee494
Add continuous integration
2021-10-14 14:56:06 +02:00
Mark Spanbroek
04b2a31f74
Add hash of data that is to be stored to the contract
2021-10-14 14:49:29 +02:00
Mark Spanbroek
23a4b84816
Add proof period and timeout to request for storage
2021-10-14 14:01:28 +02:00
Mark Spanbroek
cbf34df013
Require proofs on average once every proof period
2021-10-14 12:37:14 +02:00
Mark Spanbroek
550fcf4afe
Add proof period and timeout to contract
2021-10-14 09:10:57 +02:00
Mark Spanbroek
31807dfe58
Add TODO's as suggested by Tanguy
2021-10-13 10:21:03 +02:00
Mark Spanbroek
6ef71f0419
Introduces StorageContract
...
A StorageContract can only be instantiated when a request
for storage and a bid have been signed.
2021-10-12 16:59:34 +02:00
Mark Spanbroek
545ed4b011
Add OpenZeppelin contracts
2021-10-12 13:35:41 +02:00
Mark Spanbroek
44433926bf
Hardhat setup
2021-10-12 08:35:24 +02:00