Skip to content

Commit 6c2955d

Browse files
dovgopolyArvolearmllwchrry
authored
Feat/u512 (#128)
* init * rm comments * wip * wip * fixed add & added test * wip (passed ecdsa check) 17.8kk * fix * opt * -500k * 15.8kk 2p * 15.3kk * rm shl 15.48kk * wip * wip * added test vectors, tests are failed * fixed ecdsa512 impl 22.2kk * 20.4kk * added assert * small fixes * refactored * typo * added crazy optimization with bit skipping 20.1kk * 13.86kk & typos * remove opt 384 libs * add tests for U512 * add natspec * add operator overloading * modify moddiv test * rm ops and fixed tests * added assign & call & bitwise ops * added modexpU256 & tested gas * typo * small adjustments * add U512 usage example and fix tests * fix natspec * fixed comment * add toBytes to natspec * typos * typos * typos * small adjustments * update readme --------- Co-authored-by: Artem Chystiakov <[email protected]> Co-authored-by: mllwchrry <[email protected]>
1 parent b947571 commit 6c2955d

File tree

12 files changed

+4051
-826
lines changed

12 files changed

+4051
-826
lines changed

.solcover.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
module.exports = {
2-
skipFiles: ["interfaces/", "mock/"],
2+
skipFiles: ["interfaces/", "mock/", "libs/crypto/ECDSA512.sol", "libs/crypto/ECDSA384.sol"],
33
configureYulOptimizer: true,
44
};

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,15 @@
1010
Solidity modules and utilities that **go far beyond mediocre solidity**.
1111

1212
- Implementation of the [**Contracts Registry**](https://eips.ethereum.org/EIPS/eip-6224) pattern
13-
- State-of-the-art cryptography primitives (**ECDSA over 256-bit and 384-bit curves**, **RSASSA-PSS**)
13+
- State-of-the-art cryptography primitives (**ECDSA over 256-bit, 384-bit, and 512-bit curves**, **RSASSA-PSS**)
1414
- Advanced data structures (**Vector**, **DynamicSet**, **PriorityQueue**, **AVLTree**)
1515
- ZK-friendly [**Cartesian Merkle Tree**](https://medium.com/@Arvolear/cartesian-merkle-tree-the-new-breed-a30b005ecf27), [**Sparse Merkle Tree**](https://docs.iden3.io/publications/pdfs/Merkle-Tree.pdf), and [**Incremental Merkle Tree**](https://github.com/runtimeverification/deposit-contract-verification/blob/master/deposit-contract-verification.pdf) implementations
1616
- Versatile access control smart contracts (**Merkle whitelists**, **RBAC**)
1717
- Enhanced and simplified [**Diamond**](https://eips.ethereum.org/EIPS/eip-2535) pattern
1818
- Flexible finance instruments (**Staking**, **Vesting**)
1919
- Robust UniswapV2 and UniswapV3 oracles
2020
- Lightweight SBT implementation
21+
- Hyperoptimized **uint512** BigInt library
2122
- Utilities to ease work with memory, types, ERC20 decimals, arrays, sets, and ZK proofs
2223

2324
Built leveraging [OpenZeppelin Contracts](https://github.com/OpenZeppelin/openzeppelin-contracts) (4.9.6).

0 commit comments

Comments
 (0)