NDRS-{186,187}: Bonding auctions#129
Conversation
04bc0b3 to
63a0699
Compare
Itertools is not fully compatible with no_std because it does not implement `group_by` functionality without this switch.
63a0699 to
f0bbaf9
Compare
| /// | ----------------| ----------------------------------------------------------------| | ||
| /// | [1, 64511] | all except reserved system contract error ranges defined below. | | ||
| /// | [64512, 64767] | `Auction` | | ||
| /// | [64768, 65023] | `ContractHeader` | |
There was a problem hiding this comment.
contract header gets its own custom range?
| /// The function returns a tuple of the (new) unbonding purse key and the new | ||
| /// quantity of motes remaining in the bid. If the target bid does not exist, | ||
| /// The arguments are the public key and amount of motes to remove. | ||
| fn withdraw_bid(&mut self, account_hash: AccountHash, quantity: U512) -> Result<(URef, U512)> { |
There was a problem hiding this comment.
Are we testing anywhere if caller is allowed to make this request?
There was a problem hiding this comment.
There is matching to founder/non-founder validators/bidders - anyone can call this, in principle, it'll just fail, as far as I can see, if they're neither, as expected.
There was a problem hiding this comment.
it'll just fail, as far as I can see, if they're neither, as expected.
but it fails if you want to withdraw for account_hash that is not in founder_validators. What if you are in that set and I'm not and I call this method? There's no check as far as I can see that validates that only selected keys can.
There was a problem hiding this comment.
Are we testing anywhere if caller is allowed to make this request?
Anyone can make this request
There was a problem hiding this comment.
Do we verify that the caller is allowed to withdraw from account_hash ?
This also adds tests for that feature with founding validators set on genesis to the auction contract.
Co-authored-by: Mateusz Górski <goral09@users.noreply.github.com>
Co-authored-by: Fraser Hutchison <190532+Fraser999@users.noreply.github.com>
Co-authored-by: Fraser Hutchison <190532+Fraser999@users.noreply.github.com>
EdHastingsCasperAssociation
left a comment
There was a problem hiding this comment.
I had a discussion w/ Michal yesterday and will be submitting some commits to this PR tomorrow with revisions.
Co-authored-by: edhastings <ed@casperlabs.io>
5ea9258 to
e77f56c
Compare
|
Optimistic approval, assuming last remaining loose ends are cleaned up. |
Feature flag `enable-bonding` goes away too.
d1e1dbb to
094bea1
Compare
Conflicts: Cargo.lock node/src/components/block_executor.rs node/src/crypto/asymmetric_key.rs
Fix delegations when delegators cap is reached
Unoptimized contracts use a lot of gas. Bump max gas limit as a temporary measure to alleviate issues.
* Initial commit * Add test and format CI. (#2) * Feature: Initial Binary Merkle Tree Implementation (#1) * Initial Merkle Tree Implementation * Delete verify.rs * Remove unimplemented asmut * Unpin dependencies * Remove mod verify * Add default implementation * Remove IDE specifics from gitfile * Pin minimum versions in dependencies * Fix format with fmt * Feature: Binary Merkle proof set and Verify (#3) * Initial Merkle Tree Implementation * Delete verify.rs * Remove IDE specifics from gitfile * Proof set * Remove unused line * fmt * Implement proof and tests * Refactor * Simplify loop * Update merkle_tree.rs * Convert next_height and next_data to return options * Refactor proof set * Clippy * Verify * Format fix * Update merkle_tree.rs * Update verify.rs * Semver for Bytes * Clean up tests * Format * Tests * Refactor tests * Update toolchain to stable in cargo_test.yml (#9) * Remove license. (#13) * Chore: Refactor binary hash functions into separate file (#11) * Refactor hash functions into separate file for BMT * Update merkle_tree.rs * Refactor NODE and LEAF as u8 * Remove generics * Remove commented line * Update mod.rs * Remove deprecated files * Lazy static empty sum * Update Cargo.toml * Update Cargo.toml * Update hash.rs * Return ref to empty sum * Feat: Position struct and tests (#18) * Position struct and tests * Comment * Update table comment * Document * Update position.rs * Update comments * Update comment again * Fix tests * Update position.rs * `Storage` trait and concrete `StorageMap` struct (#20) * `Storage` trait and concrete `StorageMap` struct * Remodel trait after fuel-vm store trait * Revert names to storage and storage_map * Change Storage's Key to require `Clone` instead of `Copy` * Feat: use `fuel-data` `storage` trait for `storage_map` (#27) * Use fuel-data storage trait * Update storagemap impl * Update storage_map against updated storage trait * Update cargo_test.yml * Fetch with cli in CI * Chore: Switch `fuel-data` to `fuel-storage` (#33) * Refactor: move `binary` directory with BMT implementation to `test-helpers` (#30) * Refactor `binary` to `tests` * Cleanup Test imports * Convert to internal crate `fuel-merkle-test-helpers` * Format * Add helper tests to CI * Update cargo_test.yml * Fix Run helper tests args * Clean up test-helpers dependencies * Update test_data.rs * Feat: Binary Merkle Tree with Storage Backing (#23) * Replace ProofSet wrapper with Vec (#34) * Feat: Path iterator, MSB, and node traits (#39) * Path iterator * Create node.rs * Add node to common * Refactor SZ to SIZE * Minor adjustment to comments * Remove unnecessary Debug req for AsPathIterator * Feedback * Msb get_bit_at_index_from_msb returns option * Feat: SMT `node` struct (#40) * Sparse node and hash * Add hex to cargo.toml * Derive `StorageError clone` * Run cargo sort on workspace (#43) * Create LICENSE (#47) * Feat: `Position` methods for `left_child` and `right_child` (#48) * Position methods for left and right child * Update position.rs * Use constants for left and right child directions * Update comment * Bump bytes from ~1.0 to ~1.1 (#49) * Bump bytes from ~1.0 to ~1.1 * Update Cargo.toml Co-authored-by: John Adler <adlerjohn@users.noreply.github.com> Co-authored-by: John Adler <adlerjohn@users.noreply.github.com> * Update manifest (#50) * Update author. * Add more fields. * Update author. * Crates.io publishing (#52) * crates.io workflow * Fix overly restrictive semver requirements (#53) make bytes dep compatible with async-graphql * Remove cargo git fetch from CI (#54) * Feat: Binary Merkle Sum Tree root calculation (#44) * Binary Merkle Sum * Clean up * Format * Update verify.rs * Replace Hash struct and impl with template functions * Update hash.rs * refactor * Refactor join_data_pair to accept fee before data * Format * Remove generics from Merkle sum tree * Refactor join_data_pair and split_data_pair * White space * assert sizes in join and split data pair * BMST lazy static empty sum * Update lib.rs * Update to use storage backing * Path iterator for sum node (WIP) * Node fmt * Isolate `root` logic * Remove unused code * Refactor * Simplify lifetimes * u64 (8 byte) fee * Remove extraneous variables * Consolidate on `common` types * Simplify * Cosmetic * Remove unnecessary references to hash * Fix node fmt * Update node.rs * Update node.rs * Include leaf fee in leaf sum calculation * update hash comment * Update sum Node `left_child` and `right_child` to return `Result` * Remove unused lifetime param * Return fee in BMST `root` call * Remove unused `StorageNode` * Feat: Add `PositionPath` and `PositionPathIter` to calculate the path and side positions from root to leaf (#55) * Path set * Add `height` to `common::Node` interface, add `Position::path_set` * Position path_set tests * Move position_iter to new file * Clean up use statements * Move position_iter to position_path * Comments * Update comments * Update comments * PR feedback * Refactor binary node interface (#58) * Feat: BMT prove uses position path (#61) * BMT prove uses position path * Format * Remove unnecessary storage inserts * Remove unnecessary mut from Node::create_node * Remove unnecessary functions * Update version for breaking change * Change unnecessary `node_mut()` to `node()` in `join_subtrees()` * Revert "Update version for breaking change" This reverts commit db3460510b6861805b5e4a2f3b5eb24d704b10f4. * Feat: Binary merkle tree load from storage (#62) * Implement `load` for BMT * Move p2_under to common * Format * Build tree from leaf nodes * Test load error * Alphabetical order for errors * remove unnecessary mut * Simplify * Remove unnecessary cast * Feat: Add height to sparse node (#64) * Add height to sparse node * Update tests * Fix: Remove hashing from leaf keys in SMT Node (#69) * Remove hashing from leaf keys * Format * Revert height change * Revert changes unrelated to leaf keys! * Undo change * Refactor: Add method to SMT node to set prefix (#70) * Minor SMT node refactor * Undo assert change * Feat: Add height to SMT node debug (#71) * Add height to SMT node debug * Traits * Minor refactor * Fix: SMT Node `left_child` and `right_child` return placeholder when key is zero sum (#72) * Return placeholder when key is zero sum * Tests * Set height to be the greater height of left and right children (#73) * Docs: Create Sparse Merkle Tree test spec (#66) * Create sparse_merkle_tree_tests.md * Typo * Remove language hints for pseudocode * Additional tests * Additional tests * Abstract * Wording * Wording * Update test pseudocode * Correction to Update 2 Delete 1 * Additional test and revisions * Update sparse_merkle_tree_tests.md * Clean up spec * Add last test to TOC * Update sparse_merkle_tree_tests.md * Typos * Convert key inputs to 32 byte keys * Remove deprecated description * Specify big endian * Missed characters * Docs: Fix expected root in SMT root test pseudocode example (#74) * Fix expected root in pseudocode example * Date * White space * Create nightly-cargo-audit.yml (#75) * Feat: Sparse Merkle Tree with `Update` and `Delete` (#41) * Squashed commit of the following: commit 22daac34b6932a71841d76fa91be36896b42d5b4 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Sun Nov 14 20:52:23 2021 -0500 Comment out test commit de2bcadcdda2c6b83639584f4b6340ec8a219b7f Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Fri Nov 12 01:06:59 2021 -0500 Path iterator comments commit 5de45ab00ea22f93582158e8b9d2f3b162283b42 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Fri Nov 5 17:40:13 2021 -0400 Minor refactor commit 6d8c4d60f1f0e7a60dc846d69b93239fb2603aa8 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Fri Nov 5 17:32:04 2021 -0400 Update Cargo.toml commit ac570d6e97b98d42a112a2fae3111c998749e218 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Fri Nov 5 17:28:19 2021 -0400 SMT delete commit 66c858a118ece81ea24fc09358c72d338d9f8024 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Thu Nov 4 12:49:12 2021 -0400 Comments commit 0594a9948b8bf4565e905f50317549914020e269 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Wed Nov 3 14:50:15 2021 -0400 Use 0 as zero buffer commit 4993aba67c61d7ab2ed2791f746e1f23d87f5b34 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Wed Nov 3 14:41:49 2021 -0400 Typo commit 57cfda43e3be393088b82b756c4b4dca5e1216df Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Wed Nov 3 14:36:42 2021 -0400 Update path iter comments commit 933810c982d410888a948a6b016a735b18042dc3 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Wed Nov 3 14:32:45 2021 -0400 Update path iter comments commit b1dd4f22668881994764b9deed07781f408db5be Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Wed Nov 3 14:25:14 2021 -0400 Format commit c43371247d99d94439693b643460457fedcc762a Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Wed Nov 3 14:11:57 2021 -0400 Minor refactor commit 69b1fe602f086ec7ed60dd65c0ff7f64494c6c96 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Wed Nov 3 13:51:18 2021 -0400 Update comment commit a9aaf740a3ed4b7c1dafcdaa714c2ee1e05be221 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Wed Nov 3 13:40:56 2021 -0400 Fix node leaf_key commit 07485e4be36735d95000561875120139894db033 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Mon Nov 1 17:15:54 2021 -0400 Tests commit d77365dcf1150946cfe32cf32bc83c9a39bb0a14 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Mon Nov 1 10:45:39 2021 -0400 Remove unused subtree code commit 29af99b9c852a9f6936a9924ef742d24b79dc494 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Mon Nov 1 10:44:25 2021 -0400 SMT update with path nodes and side nodes WIP commit a6d3ac21a14037fde9e23e3287b44482abdb3742 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Mon Nov 1 10:36:21 2021 -0400 Simplify commit 3089439afc957385fb3e6ac86332638358fa63e2 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Mon Nov 1 00:15:38 2021 -0400 Update node commit d652f79ffea7b7bf8d3dfc0b952ddad9f92a4fd2 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Sun Oct 31 18:35:14 2021 -0400 Impl node trait for sparse Node commit 3309c740cd2f5da247ef46287288d63008dcd09f Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Sun Oct 31 18:34:56 2021 -0400 MSB and iterator tests commit 59e415e0b3dd1dbfbd0e82530ed7ab24fa725641 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Thu Oct 28 15:19:41 2021 -0400 Refactor tests commit c4daa9d639f7368a1273a89650279772c0b363f9 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Wed Oct 27 01:33:24 2021 -0400 Typo commit da341056398ad947b6b7d69b3dbdca0e9d93c835 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Wed Oct 27 01:29:54 2021 -0400 Refactor test commit 4791a65519512b2e64a6637ea472f35e08b9168f Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Wed Oct 27 01:14:15 2021 -0400 Update commit f0d3911ffbbfe0dce6afc8e3acccebc264e200f2 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Wed Oct 27 01:10:06 2021 -0400 Comments commit 33935daa7f475aa1c68bdbf703ed40d54f139707 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Wed Oct 27 00:55:53 2021 -0400 Tests commit 7b5c330d5a4be4f50762e82edd0851ba1ea9ab4b Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Mon Oct 25 22:06:44 2021 -0400 Format commit 4e2a5c64d4b0752f4bc17cca9c6aa77c8af4e318 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Mon Oct 25 12:25:00 2021 -0400 SMT update_for_root commit 751339ee9ffc43ba15b74a1a9cbaee7d21e8ba68 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Fri Oct 22 17:05:10 2021 -0400 Lookup prefix size using size_of Bytes1 commit a690029bff909ef780228f6b942ca3eb40c3afea Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Fri Oct 22 17:02:13 2021 -0400 Fix formatting commit e57c2389a1583cd049c1bbd95c755458b204342e Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Fri Oct 22 17:00:08 2021 -0400 Node tests commit 3715bb8d5b55fe1a29bd3db3486999a069ea9774 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Thu Oct 21 23:34:10 2021 -0400 Test update commit a2515ca1facc3ee66c3951991245238b0e379474 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Thu Oct 21 19:50:00 2021 -0400 Clean up commit 2e9c36eadd5fa0133580af888f588ef0d68fce2b Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Thu Oct 21 19:40:49 2021 -0400 Generic key types commit 648648fa57272664aaa4267c556ef635834f0aac Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Thu Oct 21 19:10:15 2021 -0400 Update common.rs commit ac4ab42a931d0324cbf4fc19b7668ec8671ed72f Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Thu Oct 21 18:49:30 2021 -0400 Add panic test for msb commit c99ce9c49bd6b251b4b2a18b6848d0f85ea9735d Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Thu Oct 21 18:37:50 2021 -0400 Clean up commit 1049b770ad10d03b60c4be679e1421fc3c52e89f Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Thu Oct 21 17:36:38 2021 -0400 Update sparse node commit c535ebab613c7d4378d89e29e9a8d2bcce6e1151 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Thu Oct 21 01:06:53 2021 -0400 Sparse node iterator commit 3ac3f89d47448f63ed76415227c6475aad4c7638 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Wed Oct 20 12:47:33 2021 -0400 Const BUFFER_SZ commit 93b7ea918474154a424b670082560cf27c166b4f Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Wed Oct 20 12:38:55 2021 -0400 Sparse node commit ba893daf3b40fdcf3fdcf849dc9022211cafb4d3 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Wed Oct 20 12:38:49 2021 -0400 Path iterator commit 557e6755000094e9a5300f8131d7618956b11ac9 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Mon Oct 18 12:57:34 2021 -0400 Sparse node commit 32e1a48e34702fd4365a8e48c848347d064dd6b9 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Wed Oct 13 13:24:36 2021 -0400 Format commit a1387caad401604b9a8a0796a748c46096075040 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Wed Oct 13 13:21:05 2021 -0400 Generic path iterator commit 8616e701bf72e68a76e506fcffda3f32c6a0fc5f Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Tue Oct 12 16:58:36 2021 -0400 Update leaf.rs commit 8fe009b1022b78764a79ba85518e0db590852a14 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Tue Oct 12 15:54:56 2021 -0400 Additional `position` methods and tests commit 274744b317969b20b5212fbc28f1487013de71ca Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Tue Oct 12 12:35:33 2021 -0400 Format commit ab95d7f24d529e89636c515212ac690e16f9a7d5 Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Tue Oct 12 11:51:19 2021 -0400 Update comments commit 71f590c0f72f9f6d6b12fb048e6cba7676bf164f Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Mon Oct 11 18:26:00 2021 -0400 Expand documentation commit aa6847c61c76314f180ce63b109e3fea89871b4b Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Mon Oct 11 17:43:28 2021 -0400 Updated position comments commit cbf5269c7152936e8d1c87ecdba2b85ef8d2ed2c Author: Brandon Vrooman <brandon.vrooman@gmail.com> Date: Fri Oct 8 13:55:24 2021 -0400 Sparse Merkle Tree skeleton * Revert position changes * Incorporate upstream changes * Format * Update tests * Update merkle_tree.rs * Add leaf node buffer on update to storage * Undo bad conflict fix * Format after merge * Update to new node interface * Fix tests * Format * Remove println statement * Use results * SMT new returns Result * Format * Remove comment * Additional tests * Return empty sum to sparse module * Format * Revert delete comment * Format tests * Remove `let _` from tests * Additional tests and simplifications * Format * Move leaf key hashing to client side * Format * Rearrange sum calls on test keys * Update tests to match spec * Fix expected root string * Refactor: Simplify SMT algorithms (#76) * Merge * Merge fix * Update merkle_tree.rs * Update comments based on feedback * Feat: smt data driven test framework (#79) * Data driven test framework * Impl ToString for Test to generate test names * revert unrelated change * Stable * Format * Data test stable * undo change to smt * Use `?` instead of `unwrap` * Reorder dependencies * Use constants and enums for actions and encodings (#82) * Load SMT from storage and root (#83) * Feat: Refactor BMT and SMT interfaces to use `anyhow::Result` (#86) * Add anyhow to cargo * Update SMT interface to use anyhow Result * Update BMT to use anyhow result * Chore: Refactor comment length to maximum of 80 (#87) * path_iterator * Update position.rs * Update position_path.rs * Update merkle_tree.rs * Update node.rs * Update verify.rs * Add no-std support (#88) It is desirable to have no-std support so the consumers will have more flexibility of use with this library, provided an appropriate storage backend. This functionality will support the usage of contracts in fuel-tx, since its id is calculated with a binary merkle tree, according to fuel specs. * Bump to v0.2.0 (#90) * Debt: Refactor Merkle tree error propagation and handling (#94) * Refactor error handling * Format * Support for no std config * Fix storage error display attribute * Fix warnings * Remove commented out code * Remove commented out code * Refactor sparse `StorageNode` error * Use `hashbrown::hashmap` (#96) * Use infallible error for `StorageMap` error type (#98) * Run tests without std during CI (#99) * Run tests without std during CI * Remove lazy static from test-helpers * Rearrange ci workflows * Update ci.yml * Update ci.yml * Feat: Infallible in-memory SMT (#100) * In memory SMT * Format * In memory SMT tests * Tree ptr * Use Option for delayed SMT initialization * Use alloc box * Strongly typed self as Pin in interface * Use core phantompinned * Format * Use in-memory Merkle tree for data driven tests * Remove block * Relax constraint on Storage (#101) * Relax constraint on Storage * sum tree, and cleanup * relax storage for binary Co-authored-by: rakita <rakita@users.noreply.github.com> * cargo clippy lints (#103) * cargo clippy lints * nit comment * Feat: In-memory binary Merkle tree (#104) * In memory binary merkle tree * Add `prove` to in memory binary merkle tree * Format * No-std compat * Use `Option` instead of `Result` in `prove` * Update test names * Feat: Implement Default for in-memory Merkle trees (#105) * Impl Default for in-memory Merkle trees * Formatting * Add clippy job to CI (#106) * Add clippy job to CI * Formatting * Update clippy args * Release 0.3.0 (#108) Create Release 0.3.0 * Use `check` in CI (#109) * Use `check` in CI * Clippy warnings * Refactored usage of storage traits (#111) * Refactored usage of storage traits. * Make clippy happy=) * Changed `fuel-storage` to ues release `0.3` * Removed redundant lifetime from impl. * Proper naming for the tables. Added detailed description * Apply suggestions from code review Co-authored-by: Brandon Vrooman <brandon.vrooman@gmail.com> * Renamed table description for tests * Update src/binary/merkle_tree.rs Co-authored-by: Brandon Vrooman <brandon.vrooman@gmail.com> Co-authored-by: Brandon Vrooman <brandon.vrooman@gmail.com> * Bump version to 0.4.0 (#112) * debt: Remove first leaf from BMT proof set (#115) Remove first leaf from BMT proof set * Revert #115 (#116) Revert "debt: Remove first leaf from BMT proof se] t (#115)" This reverts commit bf201991ae06353259d980f2633ba764a17980f2. * feat: BMT integration tests (#36) * Replace ProofSet wrapper with Vec * Initial integration test folder * BMT `root` and `proof` tests * Storage integration tests * binary merkle tree integration test struct * Revert "debt: Remove first leaf from BMT proof set (#115)" This reverts commit bf201991ae06353259d980f2633ba764a17980f2. * Revert changes to proof set * Whitespace * chore: Minor clean up (#121) * Clean up comments and code * Additional comment format * Minor comment formatting * Update comment text * Simplify test storage maps * Simplify sparse test storage maps * feat: Load BMT from MMR peaks (#123) * WIP * Simplify * Clean up * Replace unwraps with error * Remove unused code * Fix test import * Refactor BMT integration tests * BMT build inline docs * Update inline comment for consistency * Update test imports * Minor refactor * Update src/common/position_path.rs Co-authored-by: Green Baneling <XgreenX9999@gmail.com> * Refactor and add test * Appease clippy Co-authored-by: Green Baneling <XgreenX9999@gmail.com> * Release 0.4.1 (#127) * Clippy and dependency upgrades (#130) * Cliipy * Dep Upgrades * feat: Data-driven BMT test generation and framework (#125) * BMT data tests * Additional tests * Fixed rand seed for test data gen * Update test pass fail return * Additional negative tests * Update test cases * Manual cargo fmt * Remove unused roottest struct * Use verifyDigest * Update binary.rs * Upgrade serde yaml * fix warning * Use serialized enums over strings * Rename tests * Add test descriptions * refactor into separate fns * Update tests * refactor: Add `Prefix` enum and buffer error checking (#131) * Prefix enum * Simplify * Revert accidental change * Clippy * impl AsRef * Update prefix.rs * Error handling * Error checks * Collapse use statements * Manual impl From StorageError * Manual from prefix error * Update node.rs * Revert renaming Internal to Node * Update binary_proofs.rs * Revert "Update binary_proofs.rs" This reverts commit d9996de6072072d73e6b5c0fd7d6fcfe939cf625. * Update node.rs * feat: ParentNode fallible interface (#133) * ParentNode fallible interface Merge * ChildReturn alias * Warnings * Refactor * Update node.rs * Clean up * Remove unnecessary trait restrictions * Update path_iterator.rs * Comments and test * Rename to child error * ChildError * Add Key to ChildError * Simplify * Simplify * Update merkle_tree.rs * Refactor * StroageNodeError * NodeIsLeaf error for leaf nodes * thiserror for StorageNodeError and ChildError * Minor refactor common use statements * Remove extern crate core * Clean up use statements * Update path_iterator.rs * Update path_iterator.rs * refactor: Introduce `Path` trait and `Instruction` (#134) * Add path trait and instruction * Comparable path * Appease Lord Clippy * Update msb.rs * Simplify * feat: BMT node buffer and table definition update (#136) * BMT Node buffer * Refactor buffer, add buffer views * Simplify Node interface * Clippy * Remove unnecessary node clones * Add safety comments * Cosmetic * Return hash as ref * Replace Schema with constants * Update safety notes in BMT buffer * Replace Buffer with Primitive * Remove Primitive trait * Refactor primitive * Simplify * Make node members private * Use as ref * feat: SMT node primitive update (#137) * BMT Node buffer * Refactor buffer, add buffer views * Simplify Node interface * Clippy * Remove unnecessary node clones * Add safety comments * SMT node buffer update * Simplify * Minor * Simplify * Simplify * Fix warning * Simplify * Return references instead of copies * Cosmetic * Return hash as ref * Replace Schema with constants * Replace Schema with constants * Update safety notes in BMT buffer * Replace Buffer with Primitive * Replace Buffer with Primitive (WIP) * Passing tests * cliipy * clippy for real tho * Remove Primitive trait * Refactor primitive * Refactor primitive * Simplify * Simplify * Clean up * Make node members private * Make Node members private * Use as ref * revert * Rename uses of buffer to primitive * Rename uses of buffer to primitive in tests * Use into for insertion in test * feat: Configurable storage table for BMTs and SMTs (#129) * Configurable storage table * refactor sum tree * Minor * Update Cargo.toml * Update position.rs * Update storage_map.rs * Refactor nodes tables * Update binary.rs * Fmt * Use core over std * Update binary_proofs.rs * Revert "Update binary_proofs.rs" This reverts commit ba38107c6cff3462041b3dbe8b6255431b056dc8. * Merge fixes * Fix warnings * Clean up * Clean up * Update merkle_tree.rs * consistency * Use match over if else * Revert "Use match over if else" This reverts commit c74337a448f48c9eec89d7b436aa03a80e00e886. * Rearrangement * BMT Node buffer * Refactor buffer, add buffer views * Simplify Node interface * Clippy * Remove unnecessary node clones * Add safety comments * SMT node buffer update * Simplify * Minor * Simplify * Simplify * Fix warning * Simplify * Return references instead of copies * Cosmetic * Return hash as ref * Use Binary node buffer for tables * Replace Schema with constants * Replace Schema with constants * Remove serde feature * Update lib exports * Clean up * Update safety notes in BMT buffer * Replace Buffer with Primitive * Replace Buffer with Primitive (WIP) * Passing tests * cliipy * clippy for real tho * Remove Primitive trait * Refactor primitive * Refactor primitive * Simplify * Simplify * Clean up * Make node members private * Make Node members private * Use as ref * Replace uses of Buffer with Primitive * revert * Rename uses of buffer to primitive * Rename uses of buffer to primitive in tests * Use into for insertion in test * Fix imports * Use hex values in test * chore: Update test table names (#139) Update table names * Fix import * Fix merge side effects * feat: Make BMT `root` available to immutable trees (#141) * Refactor * Refactor * Infallible storage trait and impl * Parallel trait usage for getting side nodes * nostd compliance * Clippy * Infallible root * Add comment docs to root_node * Fix root_node doc line breaks * Whitespace * Fix typo * Whitespace again * Remove returned assigned values * fix ci for fuel-merkle * fmt merkle * toml lint * toml lint * toml lint * version bump * fix lifetime issues * Revert "version bump" This reverts commit df268a976f03b31f5366f522ebfc67101baac096. * Use `{ workspace = true }` * clippy fixes * always enable alloc in fuel-merkle to support all targets * Revert "always enable alloc in fuel-merkle to support all targets" This reverts commit 7afdd79e234d13f1f50d7a5faa8bdb254043251b. * Revert "clippy fixes" This reverts commit 83acb2108b1af51c2af8bb4b3f90f91b69c26f40. * Remove lifetime from the `Mappable::Key` (#319) * Removed `'a` lifetime from `Mappable::Key`. Renamed `GetValue` with `OwnedValue`. Added the same `OwnedKey` for `Key` to unblock: ```rust type Key = Self::OwnedKey; type OwnedKey = u64; type Value = Self::OwnedValue; type OwnedValue = Primitive; ``` Defined two double storage key for `ContractsAssets` and `ContractsState`. Replaced `(&'a ContractId, &'a AssetId)` with corresponding double storage keys. * Make clippy happy * Make clippy happy * Make clippy happy * Fix `no_std` compilation * Remove `AsRef` and `From` for `$first` and `$second` * remove unused ci folder from fuel-merkle Co-authored-by: John Adler <adlerjohn@users.noreply.github.com> Co-authored-by: Brandon Vrooman <brandon.vrooman@gmail.com> Co-authored-by: rakita <rakita@users.noreply.github.com> Co-authored-by: Brandon Kite <brandonkite92@gmail.com> Co-authored-by: Elliot <eyaghoobia@gmail.com> Co-authored-by: Victor Lopes <vhrlopes@gmail.com> Co-authored-by: GreenBaneling | Supercolony <XgreenX9999@gmail.com> Co-authored-by: Brandon Vrooman <brandon.vrooman@fuel.sh> Co-authored-by: Tom <tomrgowan@gmail.com>
First revision of auction contract.
Still needs some work to iron missing pieces out which I'll add tickets for later. Most important piece here is the auction stuff with delegate/undelegate/add_bid/withdraw_bid/run_auction stuff. Mostly based on the spec with changes required to make it work on our platform.
This PR also the changes to the
run_auctioncode proposed in #141 so it should unblock the integration effort.