All Projects β†’ akropolisio β†’ akropolis

akropolisio / akropolis

Licence: AGPL-3.0 license
πŸ’₯ Akropolis+Yearn

Programming Languages

python
139335 projects - #7 most used programming language
solidity
1140 projects

Projects that are alternatives of or similar to akropolis

TZComet
Contract Metadata Viewer on Tezos
Stars: ✭ 24 (+Infinity%)
Mutual labels:  smart-contracts
fcl-js
FCL (Flow Client Library) - The best tool for building JavaScript (browser & NodeJS) applications on Flow 🌊
Stars: ✭ 302 (+Infinity%)
Mutual labels:  smart-contracts
solidity-diagram-gen
UML class diagram generator for solidity contracts
Stars: ✭ 33 (+Infinity%)
Mutual labels:  smart-contracts
bloqly
Bloqly: JavaScript Smart Contracts Engine + SQL database
Stars: ✭ 29 (+Infinity%)
Mutual labels:  smart-contracts
uniswap-arbitrage-flash-swap
Uniswap flash swap arbitrage solidity contracts
Stars: ✭ 341 (+Infinity%)
Mutual labels:  smart-contracts
rgb-core
RGB Core Library: consensus validation for private & scalable client-validated smart contracts on Bitcoin & Lightning
Stars: ✭ 99 (+Infinity%)
Mutual labels:  smart-contracts
create-ether-dapp
A template for building Full-Stack Blockchain Dapps using Next.js (React), TypeScript, Tailwind CSS, Hardhat, Solidity, and many more!
Stars: ✭ 100 (+Infinity%)
Mutual labels:  smart-contracts
tinlake
Smart contracts for Tinlake, the on-chain securitization protocol for real-world assets
Stars: ✭ 85 (+Infinity%)
Mutual labels:  smart-contracts
flow-ft
The Fungible Token standard on the Flow Blockchain
Stars: ✭ 120 (+Infinity%)
Mutual labels:  smart-contracts
clarinet
Clarinet is a simple, modern and opinionated runtime for testing, integrating and deploying Clarity smart contracts.
Stars: ✭ 209 (+Infinity%)
Mutual labels:  smart-contracts
framework
Lightweight, open source and magic-free framework for testing solidity smart contracts.
Stars: ✭ 36 (+Infinity%)
Mutual labels:  smart-contracts
web3j-example
Android web3j example
Stars: ✭ 27 (+Infinity%)
Mutual labels:  smart-contracts
ipfs-eth-database
An example of usage IPFS in Ethereum Smart Contracts
Stars: ✭ 55 (+Infinity%)
Mutual labels:  smart-contracts
pact-todomvc
Demo of integrating a JS webapp with the Pact smart contract langauge
Stars: ✭ 20 (+Infinity%)
Mutual labels:  smart-contracts
ether-swr
Ether-SWR is a React hook that fetches Ethereum data. It streamlines the chores to keep the internal state of the Decentralized App (DApp), batches the RPC calls to an Ethereum node and cache the responses
Stars: ✭ 125 (+Infinity%)
Mutual labels:  smart-contracts
blockchain-development
A complimentary course for an understanding of blockchain and its development like custom blockchain, dapps, etc.
Stars: ✭ 71 (+Infinity%)
Mutual labels:  smart-contracts
flow-protocol-ethereum
Flow Protocols powering synthetic asset and margin trading
Stars: ✭ 18 (+Infinity%)
Mutual labels:  smart-contracts
prb-math
Solidity library for advanced fixed-point math
Stars: ✭ 404 (+Infinity%)
Mutual labels:  smart-contracts
koinos-gui-miner
The Koinos Miner (GUI) provides a sleek and functional user interface that allows users to mine the KOIN ERC-20 which will be used to deliver an equitable initial token distribution on the Koinos blockchain.
Stars: ✭ 26 (+Infinity%)
Mutual labels:  smart-contracts
awesome-solidity-patterns
πŸš€Awesome Solidity patterns to make life easier ✌️
Stars: ✭ 73 (+Infinity%)
Mutual labels:  smart-contracts

Akropolis+Yearn

Solidity contracts used in Akropolis Delphi yearn pools.

Testing and Development

Dependencies

Delphi contracts are compiled using [Solidity], however installation of the required Solidity versions is handled by Brownie.

Setup

To get started, first create and initialize a Python virtual environment. Next, clone the repo and install the developer dependencies:

git clone https://github.com/akropolisio/delphi-yearn.git
cd contracts
pip install -r requirements.txt

Run the command:

npm install

It executes several intallation steps:

  • install all npm dependencies
  • install all python dependencies (if not installed yet) including Brownie framework
  • install Brownie dependency packages (openzeppelin and yearn)
  • copy these packages to the working directory (see explanation below)
  • compile contracts
  • generate abi artifaacts (if needed)

Due to the existing bug in Brownie framework you may need to install the packages manually:

npm run clone-packages

Running the Tests

To run the entire suite:

brownie test

Security tools

See the instruction for running security tools upon Akropolis Delphi protocol. Slither, Echidna and Manticore are integrated.

Deployment

Create .env file with DEPLOYER_PRIVATE_KEY filled up. .env file also should contain ADMIN_PRIVATE_KEY in case of human-admin or PROXY_ADMIN_ADDRESS in case of AdminProxy contract already deployed. Leave both variables empty if new AdminProxy contract should be deployed.

For the local deployment run the command:

npm run deploy:devV1

or

brownie run deploy_vault_savingsV1.py

For the Rinkeby deployment firstly export Infura id:

export WEB3_INFURA_PROJECT_ID=b20c30c9e04c4a6bb1cd728ff589a15e

and run:

npm run deploy:rinkebyV1

or

brownie run deploy_vault_savingsV1.py --network rinkeby

Fork Mainnet

In order to perform mainnet-fork testing in automatic way you should perform next actions:

  1. If you want to work with Alchemy node (instead of slow Infurra node), first of all export host address (for example):
export ALCHEMY_ARCHIVE_NODE=https://eth-mainnet.alchemyapi.io/v2/3MsO_qdMuAz1ILi6KhiNZ-UO6lqq5mtA
  1. Infura project ID
export WEB3_INFURA_PROJECT_ID=<YOUR_PROJECT_ID>
  1. Also you need to export Etherscan token in order to be able to fetch the data (to get enough requests attempts):
export ETHERSCAN_TOKEN=<YOUR_ETHER_SCAN_TOKEN>
  1. After that add it to the mainnet-fork configuration:
npm run test:add-fork

Now you can run the test:

npm run test:swap-mainnet

Or you can run the console with the free emulation:

brownie console --network mainnet-fork

License

Copyright (c) 2020 A Labs Ltd., AGPL V3.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].