Socket
Socket
Sign inDemoInstall

@floki-inu/contracts

Package Overview
Dependencies
Maintainers
0
Versions
59
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@floki-inu/contracts

We use hardhat for local development.


Version published
Weekly downloads
16
decreased by-46.67%
Maintainers
0
Weekly downloads
 
Created
Source

FlokiFi-contracts

We use hardhat for local development.

For deployment and contract verification, we use hardhat-deploy.

The relevant folders are:

  • contracts: for all our smart contracts.
  • deploy: contains scripts for deploying smart contracts.
  • deployments: contains the artifacts of deployed smart contracts.
  • src: contains typescript types for our smart contracts.
  • test: contains our tests, which run against mainnet forks.

There is a file src/config.ts which contains config for all the networks we support, for all projects (e.g. Locker, Staking, Token Launcher).

This file should not have sensitive data, as this is committed to git. Any setup required for deployment or testing that may change between one network and another should be in this file.

Deploy the contracts

There is a .env.example file. Duplicate it and rename it to .env, this file is in gitignore and should never be committed.

For deploying, it requires three variables:

  • DEPLOYER_ADDRESS: The wallet address used for deploying contracts. This is for all chains.
  • REMOTE_SIGNER_HOST: The host of the Floki Signer App, used for remotely signing transactions.
  • SIGNER_TOKEN: An AWS Cognito access token for authenticating with the Signer App.

You can ask another dev for the first two. The third one we'll see soon.

We do not keep private keys locally as it's not safe. So we extend hardhat using a custom provider which sends transactions to the signer app, which runs in an isolated environment without internet access within our cluster.

AWS Cognito Setup

The Signer App requires authentication. First, you need to create a user on AWS Cognito.

Go to our Sign Up page and register. If it shows an error message after you register, you can ignore.

Ask an AWS admin to approve your Cognito account.

Once approved, you can login through the Sign In page.

You'll be required to setup MFA. You can use Authy, Google Authenticator or some other TOTP app on your smartphone (or some other device).

Scan the QR Code on the app, provide the code generated by the app, and give your device a name (e.g. My Smartphone). If the login succeeds, you should be redirected to flokifi.com.

Generate Tokens

With your login working and MFA enabled, you can now generate tokens for deploying contracts.

You need AWS CLI installed.

We have a bash script .auth.sh to make it easier generating tokens. You can use it like this:

yarn auth

The script will prompt you for your Cognito Username, Password, and the MFA Code which you can get from the TOTP app you used (e.g. Authy).

This script will update the SIGNER_TOKEN key from the .env file with an access token from Cognito, which is valid for 1 hour.

Now you can proceed to deploying with hardhat.

Deploy commands

yarn hardhat deploy --network goerli --tags Locker
yarn hardhat deploy --network goerli --tags Staking
yarn hardhat deploy --network goerli --tags TokenLauncher

Verify the contracts

yarn hardhat etherscan-verify --network goerli

Run the tests

yarn test:locker
yarn test:staking
yarn test:token-launcher

Creating Diamond Implementation contract

Facets Names

Add the names of your facets to the facetsNames variable in the generateImplementation.ts file.

Run the following command:

yarn hardhat deploy --network goerli --tags DiamondImplementation

Keywords

FAQs

Package last updated on 01 Aug 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc