Commit Graph

276 Commits

Author SHA1 Message Date
Mark Spanbroek e1ef2a2216 Request storage using Marketplace contract 2022-03-15 10:01:12 +01:00
Mark Spanbroek b15f4e749b Fix test name 2022-03-01 09:38:53 +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 61c41e415d Fix test file name 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 7bcf3fe92c Run linter before tests 2022-02-10 07:46:03 +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 41fd33ac7a Add license 2022-01-10 11:16:47 +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 a794141308 Add `npm start` to start development node
It also creates a JSON file with addresses
of the deployed contracts.
2021-11-18 13:56:12 +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 9b957b9663 Add hardhat-deploy-ethers plugin 2021-11-18 13:56:12 +01:00
Mark Spanbroek ce4760608b Add deployment scripts for TestToken and Storage 2021-11-18 13:56:12 +01:00
Mark Spanbroek 3431f77c82 Add hardhat-deploy plugin 2021-11-18 13:56:12 +01:00
Mark Spanbroek f499b8453d Add Readme 2021-11-08 16:07:43 +01:00
Mark Spanbroek 0c0ee0fad6 MIT license 2021-11-08 16:03:32 +01:00
Mark Spanbroek 2277fd1366 Add TODO 2021-11-04 14:28:02 +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 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