Technology Overview
First and foremost, Humble Donations is a decentralized application leveraging purely client-side rendering- no external servers, no database. If something needs to be stored beyond memory, then it is stored on-chain. "Let's keep this lightweight with fewer points of failure."
Utilized Web3 Technologies
In no specific order, Humble Donations uses
-
ChainLink oracles for live Forex price feeds of Ethereum & Fantom Opera,
-
various Uniswap V3 contracts including but limited to:
-
IV3SwapRouter for routing transactions
-
QuoterV2 for calculating slippage & quoting prices in USD & JPY,
-
V3 Staker & NonfungiblePositionManager for staking & liquidity
-
Swaps are handled using concentrated liquidity
-
-
OpenZeppelin for various contract operations including but limited to:
-
UUPS contracts
-
SafeERC20.sol
-
ReentrancyGuardUpgradeable.sol
-
-
IPFS & IPNS for hosting some application components
-
SIWE (Sign-in with Ethereum) for additional verification security
-
various Merkle Trees using keccak256 for various reasons
-
The Graph for decentralized event indexes and URQL for making GraphQL queries
-
Wagmi and ethersJS for making blockchain calls through the application and more
-
DuneSQL for metrics
Honorable mentions to HardHat. Hardhat environments using Common & Modern JavaScript were primarily used to develop and rigorously test contracts.
Frontend
The frontend framework is React, comprising of Modern JavaScript and TypeScript. There are no UI dependencies (Figma, Material UI, etc.), everything was built from the ground up using plain old React and CSS. Not a single button, or modal, or UI element uses an external package/dependency.
Contracts are deployed on Arbitrum Sepolia and will be deployed on Arbitrum One in the near future. Once the Stylus network upgrade occurs, we will migrate our contract data to WASM contracts.