openzeppelin-contracts-upgradeable
fe
Our great sponsors
openzeppelin-contracts-upgradeable | fe | |
---|---|---|
10 | 43 | |
928 | 1,556 | |
1.6% | 1.0% | |
9.4 | 8.6 | |
4 days ago | 1 day ago | |
JavaScript | Rust | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
openzeppelin-contracts-upgradeable
-
Solidity digest / mar 2023
v4.8.2 of OpenZeppelin contracts and contracts-upgradeable bug fix for ERC721Consecutive that could cause a balance overflow when _mintConsecutive was used for batches of size 1 breaking changes to ERC721: the internal function _beforeTokenTransfer will no longer update balances when batchSize is greater than 1
-
Nuances of Using Upgradeable Smart Contracts
Most smart contracts developers have used Openzeppelin/contracts. Those developers dabbling in Upgradeable smart contracts use its sister project Openzeppelin/contracts-upgradeable. The two are the same albeit the constructor in the contract is replaced by the initializer.
-
Contract example with best practices?
Here’s a few references: - https://openzeppelin.com/contracts/ - https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable (highly recommended)
-
It costs $436 to deploy a smartcontract on Ethereum
https://github.com/OpenZeppelin/openzeppelin-contracts-upgra...
For KYC you'll need to implement your own ERC20 compatible token with some checks in the transfer functions. The CMTA is the Swiss contract reference and proposes one:
fe
-
Fe or Solidity, which is better?
For more information check the official Fe and foundry installation guide.
wget https://github.com/ethereum/fe/releases/download/v0.26.0/fe_amd64 mv fe_amd64 fe chmod +x fe
-
fe: A tiny, embeddable language implemented in ANSI C
Not to be confused with Fe, the Ethereum language: https://fe-lang.org/
- Fe: next generation smart contract language for Ethereum
- Daily General Discussion - September 30, 2022
-
Are there any serious alternatives to Solidity in 2022?
Fe? But no one is talking about it, even if its repo is from the official Ethereum account
-
Hacker News top posts: Dec 5, 2021
Fe – An emerging smart contract language for the Ethereum blockchain\ (9 comments)
-
fe: Emerging smart contract language for the Ethereum blockchain
For those not familiar with Solidity, there is a peculiarity in the "ABI" that makes it a bit painful to interact with other languages.
In solidity, there are types called "contracts" which are like classes in other languages. When you call a function in a different contract, the dispatch is routed using the first few bytes of the has of the signature [1].
For example, to transfer ERC-20 tokens you dispatch using `hash(transfer(address, uint256))[:4]`, meaning that you put those first four bytes at the beginning of the data that you pass to the receiving contract.
Just like the native world, this causes a problem when you try to interface between different languages. In Fe, the types have different names so this hashing scheme can't work without a translation layer. I'm not how they solve it, but from some of the issues it looks like interoperability may be a problem [2]. That's not a problem if you write all the contracts that your dApp interacts with, but as time goes on dApps interact and call into one another more and more often.
There are probably also lots of opportunities here for exploiting confusion at these boundaries, so if you're inclined and know how to use tornado you may be able to make quite a bit money off contracts that use Fe.
[1] https://docs.soliditylang.org/en/v0.8.10/abi-spec.html#funct...
Yeah looking at elements.rs, it appears that they have the translation layer I alluded to:
https://github.com/ethereum/fe/blob/bfeffe82b4f8623330c1ebb1...
It's not obvious to me though and I couldn't find documentation for ABI compatibility. For example, does delegatecall to solidity work? That requires that Fe also use the same "binary" layout for storage in which slot index is used to generate the storage hash:
https://docs.soliditylang.org/en/v0.8.10/internals/layout_in...
What are some alternatives?
openzeppelin-contracts - OpenZeppelin Contracts is a library for secure smart contract development.
smart-contract-best-practices - A guide to smart contract security best practices
foundry - Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.
cardano-node - The core component that is used to participate in a Cardano decentralised blockchain.
openzeppelin-contracts-upgra
l2beat - L2BEAT is an analytics and research website about Ethereum layer two (L2) scaling solutions.
CMTA20 - Smart contract to tokenize a Swiss corporation's shares on Ethereum
chains - provides metadata for chains
plutus - The Plutus language implementation and tools