Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Manta Core Libraries API Redesign #13

Merged
merged 276 commits into from
Mar 2, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
276 commits
Select commit Hold shift + click to select a range
4c3e8b1
WIP: converge on type-level constraints
bhgomes Sep 12, 2021
ca9d52d
finish type-level constraints
bhgomes Sep 12, 2021
ec2aad7
update verified set proofs, add proofs to ledger
bhgomes Sep 13, 2021
5a8467f
WIP: implement pedersen/blake2s backend
bhgomes Sep 13, 2021
62576ca
WIP: finish identity-ps-config backend impl
bhgomes Sep 14, 2021
cd79028
WIP: universal transfers done, fix set variables
bhgomes Sep 14, 2021
cb655c8
WIP: finish type-check for ark, some impls remain
bhgomes Sep 15, 2021
adcd3b8
WIP[broken]: fixing constraint system
bhgomes Sep 15, 2021
1dcbfd1
clean up constraint system APIs
bhgomes Sep 16, 2021
9ba9e14
prepare for groth 16 proving system tests
bhgomes Sep 16, 2021
c00a18a
fix proof systems to make them groth16-compatible
bhgomes Sep 16, 2021
6f494bb
implement groth16 backend, cocoon wallet adapters
bhgomes Sep 17, 2021
a87b596
simplify MT interfaces, start IMT integration
bhgomes Sep 17, 2021
848d0a1
improve naming conventions; move items to utils
bhgomes Sep 18, 2021
c7ef7c2
start building unit testing framework for transfers
bhgomes Sep 18, 2021
6a84569
fix dependencies, solve tag size issue
bhgomes Sep 19, 2021
cc66e21
fix some cocoon interfaces
bhgomes Sep 19, 2021
b781809
improve key interface, start transaction test framework
bhgomes Sep 19, 2021
035e813
add optimization paths for asset encryption
bhgomes Sep 20, 2021
b487c54
WIP: add preliminary merkle tree abstraction
bhgomes Sep 20, 2021
8a9e77f
WIP: merkle tree implementations
bhgomes Sep 21, 2021
1b00b67
WIP: add implementation for client merkle tree
bhgomes Sep 21, 2021
e610ad1
WIP: update merkle tree implementations
bhgomes Sep 21, 2021
a80fbc6
some cleanup; setup manta-pay to build dusk-plonk backend
bhgomes Sep 21, 2021
254c45f
WIP: remove old merkle tree wrapper from manta-pay
bhgomes Sep 22, 2021
a5b5736
WIP: clean up merkle tree
bhgomes Sep 22, 2021
52e52f2
WIP: fixing ledger/wallet abstraction
bhgomes Sep 22, 2021
2f36be8
rewrite of ledger abstraction, enforcing validation order
bhgomes Sep 23, 2021
196689c
start wallet-ledger interaction interface
bhgomes Sep 23, 2021
f5beddf
WIP: build abstractions for signer/wallet/ledger
bhgomes Sep 23, 2021
34515ed
WIP: start local ledger simulations
bhgomes Sep 24, 2021
b27c756
WIP: add pop and extend_slice optimization paths in merkle tree
bhgomes Sep 24, 2021
7121744
WIP: refactor merkle trees
bhgomes Sep 25, 2021
0eb70c0
WIP: start working on merkle tree forking mechanism
bhgomes Sep 26, 2021
2ebaee8
WIP: try using Rc/Weak for forking mechanism
bhgomes Sep 26, 2021
a663920
WIP: fix pointer-family interface for forking mechanism
bhgomes Sep 27, 2021
c5fda1a
WIP: simplify implementation of single-leaf MT
bhgomes Sep 27, 2021
b4084bf
WIP: rewrite single-leaf MT, start CompressedPath
bhgomes Sep 28, 2021
498c98b
WIP: add more interfaces to InnerTree, working on Fork impl
bhgomes Sep 28, 2021
b13edca
WIP: start partial MT impl for fork mechanism
bhgomes Sep 29, 2021
30eaa0f
WIP: working on CurrentPath abstraction
bhgomes Sep 29, 2021
2280e49
finish CurrentPath and Fork abstractions
bhgomes Sep 30, 2021
c4f2587
fixes and cleanup for fork impl
bhgomes Sep 30, 2021
a89f928
WIP: coin selection abstractions for batched transfers
bhgomes Sep 30, 2021
7398ec1
WIP: redesign asset map abstractions
bhgomes Oct 1, 2021
81f59af
WIP: refactoring keys interfaces to save the key index for later use
bhgomes Oct 1, 2021
28ae766
WIP: add KeyOwned wrapper type
bhgomes Oct 1, 2021
bba5b5b
WIP: work on async interfaces between signer/state/ledger
bhgomes Oct 2, 2021
773bea0
WIP: work on signer<->state APIs
bhgomes Oct 3, 2021
2f9b99b
WIP: wallet <-> ledger APIs
bhgomes Oct 5, 2021
938304f
WIP: simplified signer/ledger; finalizing wallet design
bhgomes Oct 6, 2021
c605220
WIP: start implementing sync/pull methods
bhgomes Oct 6, 2021
4fd52eb
add wallet/ledger sync implementation
bhgomes Oct 7, 2021
23df88e
implement ledger posting
bhgomes Oct 7, 2021
19e26bf
WIP: add commit/rollback interfaces
bhgomes Oct 7, 2021
dc2e6ce
WIP: implement transaction building algorithm
bhgomes Oct 8, 2021
4696199
WIP: moving asset distribution to the signer
bhgomes Oct 8, 2021
d5250be
WIP: implementing signing algorithm
bhgomes Oct 9, 2021
81df23f
WIP: add balance state impls, improve interfaces/docs
bhgomes Oct 10, 2021
f44de41
WIP: work on signing implementation
bhgomes Oct 11, 2021
3d7d30b
WIP: fixing some spec issues with signer/ledger
bhgomes Oct 11, 2021
701e3b4
WIP: finish main signing algorithm
bhgomes Oct 11, 2021
661a253
WIP: cleaning up signing algorithm impl
bhgomes Oct 11, 2021
6d95e7f
fix VerifiedSet interfaces
bhgomes Oct 12, 2021
6f717eb
WIP: remove explicit dependence on rand crate
bhgomes Oct 12, 2021
47b8f8d
finish signer implementation
bhgomes Oct 12, 2021
f773df6
WIP: interface between MerkleTree and VerifiedSet
bhgomes Oct 12, 2021
404b33f
WIP: improve merkle tree interfaces
bhgomes Oct 13, 2021
54711b7
port test sampling from manta-api
bhgomes Oct 13, 2021
6470ca0
fix!: correct "fixed asset sampling" algorithm for \`Transfer\`
bhgomes Oct 13, 2021
212141f
wip: setting up testing framework for circuits
bhgomes Oct 14, 2021
bffb162
wip: fix circuit public input handling logic
bhgomes Oct 15, 2021
66812bd
feat: start prototyping manta-cli
bhgomes Oct 17, 2021
2a4f552
fix: move to new universal transfer protocol
bhgomes Oct 17, 2021
466b071
feat: add public input generation for `Transfer` circuits
bhgomes Oct 17, 2021
dd867c8
wip: finishing proof-checking tests
bhgomes Oct 17, 2021
9ee7702
wip: add tests for proof verification for all transfers
bhgomes Oct 18, 2021
85b494c
fix: restructure asset id/value variables to match native computation
bhgomes Oct 19, 2021
5f2e720
feat: add transfer circuit benchmarks and size measurements
bhgomes Oct 19, 2021
7cd6a40
wip: optimize circuits
bhgomes Oct 20, 2021
5f1fd31
feat(docs): add comments about some special cases of signer behavior
bhgomes Oct 23, 2021
d38eaad
fix(docs): fix previous comments
bhgomes Oct 23, 2021
999bf37
wip: start rewrite to new spec
bhgomes Nov 10, 2021
fcee857
chore: update version number
bhgomes Nov 10, 2021
bdb68de
wip: add Accumulator abstractions
bhgomes Nov 11, 2021
9e4cc68
feat: replace VerifiedSet/Verifier with Accumulator/Verifier using co…
bhgomes Nov 11, 2021
210a234
feat: add abstractions for encryption primitives
bhgomes Nov 11, 2021
fa582ec
fix: ensure all KDF constraints are fixed
bhgomes Nov 11, 2021
13143a1
wip: start multi-use address system
bhgomes Nov 11, 2021
b4e67c9
fix: simplify key interfaces and abstractions
bhgomes Nov 12, 2021
5be7c04
feat: rename AssetBalance to AssetValue to better reflect semantics
bhgomes Nov 12, 2021
e6ce9e8
wip: start new transfer protocol
bhgomes Nov 13, 2021
2fa8ef4
wip: build transfer protocol
bhgomes Nov 13, 2021
f9c20be
wip: optimize proof system abstractions for transfer
bhgomes Nov 13, 2021
cfa5afd
wip: start rewrite of proof system abstraction
bhgomes Nov 14, 2021
721efaf
wip: fix Accumulator interface
bhgomes Nov 14, 2021
258df6a
wip: remove old implementations
bhgomes Nov 14, 2021
9aced27
wip: continue removing old implementations
bhgomes Nov 15, 2021
b5dd8b5
wip: optimize some of the transfer interfaces
bhgomes Nov 15, 2021
2a2081d
wip: start rewriting signer
bhgomes Nov 15, 2021
2eea013
wip: merge identity module into transfer module
bhgomes Nov 15, 2021
7226055
wip: finish merging indentity into transfer
bhgomes Nov 16, 2021
73bf730
wip: implement suggestions/changes from meeting
bhgomes Nov 21, 2021
8101ea0
feat: add some optimization paths for hybrid encryption
bhgomes Nov 21, 2021
42c16a3
wip: add hierarchical keys to signer
bhgomes Nov 22, 2021
f831668
wip: clean up changes from accounting/key
bhgomes Nov 22, 2021
272b766
wip: update to new constraint system abstraction
bhgomes Dec 12, 2021
26edddd
wip: start updating transfer trait
bhgomes Dec 12, 2021
76fe73e
fix: update to new transfer protocol
bhgomes Dec 15, 2021
0a6d1fa
wip: start moving signer core algorithm to transfer
bhgomes Dec 15, 2021
ca0d6dc
wip: move batch implementation to transfer, modularize
bhgomes Dec 15, 2021
af01155
wip: move to concurrency-friendly algortithms
bhgomes Dec 19, 2021
f6384a2
wip: improve accumulator/merkle-forest interface
bhgomes Dec 19, 2021
42fb14e
wip: improve decoupling between signer/wallet-state
bhgomes Dec 20, 2021
e1981c3
wip: implement batching system
bhgomes Dec 20, 2021
b25a581
feat: finish setting up draft of new signer protocol
bhgomes Dec 21, 2021
9ae29c5
wip: start moving to new crypto system
bhgomes Dec 27, 2021
75ff3d7
wip: adding concrete implementations
bhgomes Dec 28, 2021
231c27f
wip: move to new compiler model
bhgomes Dec 28, 2021
30cb283
wip: implement concrete protocol
bhgomes Dec 28, 2021
a24f0d7
wip: add poseidon in circuit
bhgomes Dec 29, 2021
6a9c634
wip: move to new transfer config abstraction
bhgomes Dec 30, 2021
318a193
wip: add arkworks implementations
bhgomes Dec 30, 2021
ccd3f52
fix: move to new spec, improve some ergonomics
bhgomes Jan 2, 2022
95b06d0
wip: move to new protocol
bhgomes Jan 3, 2022
78277c6
fix: update to new spec
bhgomes Jan 4, 2022
14da558
wip: make merkle tree circuit-friendly
bhgomes Jan 4, 2022
d04d7b7
feat: add merkle tree path variable verification
bhgomes Jan 5, 2022
1e4af94
fix: correct conditional select order for swap
bhgomes Jan 5, 2022
132e098
feat: add in-circuit accumulator model construction for MT
bhgomes Jan 5, 2022
b1879b8
wip: improve merkle-tree hash interfaces
bhgomes Jan 5, 2022
be24899
wip: finish merkle tree related trait impls
bhgomes Jan 5, 2022
359f571
feat: move to more efficient constraint system abstraction
bhgomes Jan 6, 2022
562cd49
wip: prepare for final configuration
bhgomes Jan 6, 2022
724d293
feat: finish transfer configuration
bhgomes Jan 6, 2022
407f333
feat: setup proving/verifying key generation tests
bhgomes Jan 6, 2022
0ef3b28
wip: add proof verification tests
bhgomes Jan 6, 2022
49c8016
fix: make sure padding is counted in encryption ciphertext size
bhgomes Jan 7, 2022
40bef05
wip: fixing circuit issues
bhgomes Jan 7, 2022
702a33f
fix: correct conditional swap parity issue
bhgomes Jan 7, 2022
4b71f02
wip: prepare to implement concrete signer/ledger
bhgomes Jan 7, 2022
64e6b00
wip: start building concrete wallet
bhgomes Jan 7, 2022
81a8989
wip: setup new signer/wallet
bhgomes Jan 7, 2022
5179fa0
fix: solved issues in merkle tree forking mechanism
bhgomes Jan 8, 2022
95c1d51
wip: starting implementing end-to-end internal tests
bhgomes Jan 8, 2022
0a03a79
feat: add ledger implementation
bhgomes Jan 8, 2022
d13db74
wip: setup ledger abstraction in pallet-manta-pay
bhgomes Jan 8, 2022
3ca4cbd
wip: move serdes traits to manta-util
bhgomes Jan 8, 2022
d1edc38
wip: start moving to more resource-specific optimizations
bhgomes Jan 10, 2022
95390bd
feat: simplify signer::Connection and add provingkey cache
bhgomes Jan 10, 2022
11fe290
fix: update ledger/signer primitives, add serde impls
bhgomes Jan 11, 2022
00d1a70
wip: add on-disk caching of the proving keys
bhgomes Jan 11, 2022
8258efa
wip: setup signer/ledger tests
bhgomes Jan 11, 2022
61f8099
wip: working on signer/ledger tests
bhgomes Jan 12, 2022
a994c0f
fix: make sure that all void numbers are checked in signer sync
bhgomes Jan 12, 2022
04a51df
feat: add back some synchronization checks between wallet/signer
bhgomes Jan 12, 2022
4a81599
fix: use affine as basic coordinates for groups
bhgomes Jan 12, 2022
48e9af8
fix: use correct removal implementation for signer sync
bhgomes Jan 12, 2022
d42e4a0
fix: improve robustness of signer and make ledger test user-friendly
bhgomes Jan 13, 2022
3a05ea2
feat: add AssetList sorted asset vector
bhgomes Jan 13, 2022
c592cc0
fix: move to correct key schedule
bhgomes Jan 14, 2022
066f88a
fix: correct some issues uncovered during simulation
bhgomes Jan 17, 2022
ac33048
feat: generalize simulation test
bhgomes Jan 18, 2022
9424b42
fix: improve signer edge-cases and speed up sync algorithm
bhgomes Jan 18, 2022
34164f5
feat: improve interface consistency and docs
bhgomes Jan 18, 2022
e8a303d
fix: make codebase rust-stable compatible
bhgomes Jan 18, 2022
ba92a62
feat: add scale encode/decode to arkworks primitive types
bhgomes Jan 18, 2022
c976c68
wip: start adding parameter generation for sdk
bhgomes Jan 19, 2022
6b5e9b8
fix: add shim for large verifiying key serde
bhgomes Jan 20, 2022
21d4c85
wip: start building parameter generation script
bhgomes Jan 20, 2022
339c02e
fix: add ArkReader/Writer for Encode/Decode impls
bhgomes Jan 21, 2022
43a46cf
fix: add encode/decode impls and remove dead code
bhgomes Jan 23, 2022
8ca50f5
chore: bump license year
bhgomes Jan 23, 2022
9ddfb95
fix: add more aliases to manta_pay::config
bhgomes Jan 24, 2022
68ba441
fix: correct the decode/encode type for proving contexts
bhgomes Jan 24, 2022
d756ce8
fix: add new sampling method
bhgomes Jan 25, 2022
2362905
fix: move bip32 dependency out of the default feature-set
bhgomes Jan 25, 2022
6c38d4d
fix: sharpen async-std dependency
bhgomes Jan 25, 2022
d8e3505
fix: remove some inconsistencies in codec and improve feature selection
bhgomes Jan 26, 2022
76384f9
wip: start removing asynchronous protocols
bhgomes Jan 26, 2022
2878cfc
feat: remove async in favor of synchronous
bhgomes Jan 27, 2022
096b11e
wip: start building websocket signer client/server
bhgomes Jan 27, 2022
d250e91
feat: add optimization paths for posting multiple posting keys
bhgomes Jan 27, 2022
84f313d
feat: add more transfer sampling and generation methods
bhgomes Jan 27, 2022
b2d80c5
feat: add UTXO indpendence checks in (Pre)Sender/Receiver
bhgomes Jan 27, 2022
e45d479
feat: add message-passing interface abstraction
bhgomes Jan 28, 2022
3b28ac2
wip: start building server/client abstractions for signer
bhgomes Jan 28, 2022
99c53e7
fix: move to sync-request system
bhgomes Jan 28, 2022
c3c6713
fix: move to simpler hd wallet model
bhgomes Feb 2, 2022
0def7a0
feat: start moving to serde-based encoding system
bhgomes Feb 3, 2022
5d3ebf7
wip: add more serde structure and improve ecc interface
bhgomes Feb 5, 2022
fdf63b7
fix: add Box import
bhgomes Feb 5, 2022
929dd97
fix: add Vec import
bhgomes Feb 5, 2022
05733f1
fix: simplify and correct dependency/feature structure
bhgomes Feb 6, 2022
c3dcf06
feat: improve wallet error states and docs
bhgomes Feb 6, 2022
3913c69
fix: use new wallet creation interface
bhgomes Feb 6, 2022
243d79a
feat: add serde-compatible array wrappers
bhgomes Feb 7, 2022
88be0ed
fix: clean up manta-pay arkworks directory organization
bhgomes Feb 7, 2022
7ad7ce5
fix: remove unstable default-const argument
bhgomes Feb 7, 2022
06b4e2a
feat: add serde (de)serialization for arkworks types
bhgomes Feb 7, 2022
65fb850
chore: bump dependencies
bhgomes Feb 8, 2022
abb372b
feat: optimize dependencies and features
bhgomes Feb 8, 2022
cfe6ca9
chore: downgrade parity-scale-codec to 2.3.1
bhgomes Feb 8, 2022
c825a09
feat: upgrade receiving_keys API for more advanced queries
bhgomes Feb 8, 2022
c41925d
fix: add missing Vec import
bhgomes Feb 8, 2022
191082a
wip: start building encrypted serde infrastructure
bhgomes Feb 9, 2022
0d26590
fix: correct the test feature selection
bhgomes Feb 9, 2022
4769934
feat: add serialization for encrypted file system
bhgomes Feb 10, 2022
453be1d
feat: add encrypted serde-deserialization
bhgomes Feb 10, 2022
93de189
fix(doc): correct spelling mistake for persistence
bhgomes Feb 10, 2022
512ca7b
feat: move simulation out of Rust testing into a binary
bhgomes Feb 10, 2022
e1cdb00
feat: add scale-info implementations for crypto types
bhgomes Feb 10, 2022
3ab3c64
fix: bounds check for RunIter when all channels are disconnected
bhgomes Feb 12, 2022
39e9cc4
fix: remove proving context caching for signer
bhgomes Feb 13, 2022
194431a
feat: add some rudimentary measurement infrastructure
bhgomes Feb 13, 2022
4c81259
feat: add testing framework for fs/serde
bhgomes Feb 13, 2022
b56d0b4
feat: hook fs save/load into the signer
bhgomes Feb 13, 2022
55ab6dc
feat: add basic recovery mechanism
bhgomes Feb 13, 2022
0c2ae73
feat: add gap-limit enforcement at the key-generation level
bhgomes Feb 14, 2022
392d5e9
feat: add (de)serialization for ledger::Connection
bhgomes Feb 14, 2022
5e3cd42
fix: update for manta-signer
bhgomes Feb 15, 2022
6138113
feat: remove reference-counting from ForkedTree implementation
bhgomes Feb 15, 2022
6a3f42b
feat: add password hashing, refactor encryption for aead support
bhgomes Feb 15, 2022
fc1e203
feat: add SIV for some extra nonce protection in AES
bhgomes Feb 15, 2022
6b66d6e
feat: move save/load API to fs
bhgomes Feb 15, 2022
993ac21
wip: start upgrading for polkadot-v0.9.16 compatibility
bhgomes Feb 16, 2022
02012b4
fix: include implementations of MaxEncodedLen
bhgomes Feb 17, 2022
f4d94f0
fix: change name of randomness in commitment schemes from trapdoor
bhgomes Feb 18, 2022
89c3b14
fix: correct feature selection
bhgomes Feb 18, 2022
ac77eb9
feat: add shape command for Transaction
bhgomes Feb 18, 2022
389f229
feat: move Mnemonic into manta-pay::key to improve featureset
bhgomes Feb 21, 2022
874f670
feat: add cloning methods for signer state
bhgomes Feb 21, 2022
f99b8c0
wip: start working on ledger simulation service
bhgomes Feb 25, 2022
cba8d5a
feat: add ledger simulation http client
bhgomes Feb 26, 2022
b03aa7f
feat: add back workflows
bhgomes Feb 27, 2022
b731f79
fix: derive correct error trait for serde
bhgomes Feb 27, 2022
de0e956
feat: remove empty benchmarks and unused global library
bhgomes Feb 27, 2022
71a7027
fix: simplify testing/checking pipeline
bhgomes Feb 27, 2022
dcb84ad
fix: include serde feature for http
bhgomes Feb 27, 2022
51930a1
fix: match features
bhgomes Feb 27, 2022
d8d8372
Merge branch 'main' into setup-manta-rs
bhgomes Feb 27, 2022
5b09e92
fix: use better naming
bhgomes Feb 27, 2022
05994e2
fix: move Checkpoint to signer module out of simulation
bhgomes Feb 28, 2022
165f741
fix: replace reqwest::blocking with futures::executor::block_on
bhgomes Feb 28, 2022
7db8b78
fix: update documentation
bhgomes Feb 28, 2022
d88c099
feat: add asset metadata for transaction summaries
bhgomes Feb 28, 2022
257e0d7
feat: add more derive implementations
bhgomes Feb 28, 2022
31881fe
feat: add more serde implementations
bhgomes Feb 28, 2022
0668ba8
fix: address documentation and naming comments
bhgomes Mar 1, 2022
cbe41aa
fix: rename ticker to symbol to match other conventions
bhgomes Mar 1, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 4 additions & 17 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,23 +1,10 @@
root = true

[*.rs]
indent_style=tab
indent_size=tab
tab_width=4
end_of_line=lf
charset=utf-8
trim_trailing_whitespace=true
max_line_length=100
insert_final_newline=true

[*.yml]
indent_style=space
indent_size=2
tab_width=8
end_of_line=lf
insert_final_newline=true
max_line_length=100
tab_width=4
trim_trailing_whitespace=true

[*.sh]
indent_style=space
indent_size=2
tab_width=8
end_of_line=lf
2 changes: 1 addition & 1 deletion .github/workflows/audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v2.4.0
- uses: actions-rs/audit-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
19 changes: 8 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,15 @@ jobs:
os:
- macos-latest
- ubuntu-latest
- wasm32-unknown-unknown
- windows-latest
channel:
- stable
- nightly
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v2.4.0
- run: rustup update ${{ matrix.channel }} --no-self-update && rustup default ${{ matrix.channel }}
- run: cargo install cargo-hack
- run: cargo hack test --feature-powerset --workspace
- run: cargo hack test --feature-powerset --workspace --release
- run: cargo test --all-features --workspace --release
lint:
name: Lint (${{ matrix.os }})
strategy:
Expand All @@ -41,22 +38,22 @@ jobs:
- nightly
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v2.4.0
- run: rustup update ${{ matrix.channel }} && rustup default ${{ matrix.channel }} && rustup component add clippy
- run: cargo install cargo-hack
- run: cargo hack clippy --feature-powerset --tests --workspace
- run: cargo hack clippy --feature-powerset --bins --examples --tests --workspace
format:
name: Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions/checkout@v2.4.0
- run: rustup update nightly && rustup default nightly && rustup component add rustfmt
- run: cargo fmt --all -- --check
docs:
name: Docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v2.4.0
- run: rustup update nightly && rustup default nightly
- run: RUSTDOCFLAGS="-D warnings --cfg doc_cfg" cargo doc --workspace --all-features --no-deps
bench:
Expand All @@ -67,6 +64,6 @@ jobs:
- ubuntu-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v2.4.0
- run: rustup update nightly && rustup default nightly
- run: cargo bench --workspace --all-features
- run: cargo bench --no-run --workspace --all-features
3 changes: 1 addition & 2 deletions .rustfmt.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
hard_tabs=true
imports_granularity="Crate"
imports_granularity = "Crate"
license_template_path = "FILE_TEMPLATE"
9 changes: 9 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[workspace]
resolver = "2"
members = [
"manta-accounting",
"manta-crypto",
"manta-pay",
"manta-util",
]

2 changes: 1 addition & 1 deletion FILE_TEMPLATE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2019-2021 Manta Network.
// Copyright 2019-2022 Manta Network.
// This file is part of manta-rs.
//
// manta-rs is free software: you can redistribute it and/or modify
Expand Down
69 changes: 69 additions & 0 deletions manta-accounting/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
[package]
name = "manta-accounting"
version = "0.4.0"
edition = "2021"
authors = ["Manta Network <contact@manta.network>"]
readme = "README.md"
license-file = "LICENSE"
repository = "https://github.com/Manta-Network/manta-rs"
homepage = "https://github.com/Manta-Network"
documentation = "https://github.com/Manta-Network/manta-rs"
categories = [""]
keywords = [""]
description = "Accounting Primitives for Manta."
publish = false

[package.metadata.docs.rs]
# To build locally:
# RUSTDOCFLAGS="--cfg doc_cfg" cargo +nightly doc --all-features --open
all-features = true
rustdoc-args = ["--cfg", "doc_cfg"]

[badges]
is-it-maintained-issue-resolution = { repository = "Manta-Network/manta-rs" }
is-it-maintained-open-issues = { repository = "Manta-Network/manta-rs" }
maintenance = { status = "actively-developed" }

[features]
# Encrypted Filesystem
fs = ["bitflags"]

# Cocoon Filesystem Adapter
cocoon-fs = [
"cocoon/std",
"fs",
"manta-crypto/getrandom",
"rand_chacha",
"std",
]

# Parallel Execution
parallel = ["crossbeam/std", "rayon"]

# Serde
serde = ["manta-crypto/serde"]

# Standard Library
std = ["manta-crypto/std", "manta-util/std"]

# Testing Frameworks
test = ["indexmap", "parking_lot", "rand/alloc", "statrs"]

[dependencies]
bitflags = { version = "1.3.2", optional = true, default-features = false }
cocoon = { version = "0.3.0", optional = true, default-features = false }
crossbeam = { version = "0.8.1", optional = true, default-features = false }
derivative = { version = "2.2.0", default-features = false, features = ["use_core"] }
derive_more = { version = "0.99.16", default-features = false, features = ["add", "add_assign", "display", "from", "sum"] }
indexmap = { version = "1.8.0", optional = true, default-features = false }
manta-crypto = { path = "../manta-crypto", default-features = false }
manta-util = { path = "../manta-util", default-features = false, features = ["alloc"] }
parking_lot = { version = "0.12.0", optional = true, default-features = false }
rand = { version = "0.8.4", optional = true, default-features = false }
rand_chacha = { version = "0.3.1", optional = true, default-features = false }
rayon = { version = "1.5.1", optional = true, default-features = false }
statrs = { version = "0.15.0", optional = true, default-features = false }

[dev-dependencies]
rand = "0.8.4"

1 change: 1 addition & 0 deletions manta-accounting/LICENSE
1 change: 1 addition & 0 deletions manta-accounting/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# manta-accounting
bhgomes marked this conversation as resolved.
Show resolved Hide resolved
Loading