1.2.27 • Published 7 days ago

@airdao/airdao-node-contracts v1.2.27

Weekly downloads
-
License
-
Repository
-
Last release
7 days ago

Airdao node contracts

Smart contracts used in Airdao.
+Javascript SDK, that can be imported for convenient communication with deployed contracts.

Contracts documentation

Can be found here

Development

Run npm run test or npm run coverage to test contacts;

Run npm run sourcify:test or npm run sourcify:main to verify deployed contracts;

Run make run in amb-node-cluster folder to launch local amb network in your docker;

Deployment

Provide your private key as PRIVATEKEY_OWNER_AMB env var or put it in .env file.

Run npx hardhat run ./scripts/deploy_multisig.ts --network test to deploy masterMultisig contract in testnet network;
Run npx hardhat run ./scripts/deploy_finance.ts --network main to deploy finance contracts (with their multisigs) in mainnet network;
And so on...

SDK

Installing

Add @airdao/airdao-node-contracts to your dependencies

Usage

It contains deployed contract addresses for both (testnet and mainnet) networks and convenient methods to use it.
It also contains AmbErrorProvider - use it instead of default provider to get human-readable errors from contracts.

Examples:

import { AmbErrorProviderWeb3, Contracts, ContractNames, Multisig } from "airdao-node-contracts";

const provider = new AmbErrorProviderWeb3(window.ethereum); // for human-readable errors
const signer = provider.getSigner();
const chainId = (await provider.getNetwork()).chainId;

// signer can be undefined, if you dont want to call methods
// chainId must be testnet or mainnet network; Received contract addresses depends on it
const contracts = new Contracts(signer, chainId);
// `contracts` contains all deployed contracts
// you can get contract instance (ethers) via `getContractByName` or `getContractByAddress`,
// but in most cases you doesn't need to use this;
// PLEASE, use `ContractNames` enum for contract names! real value can be changed!

// get all multisig permissions
const { users, groups } = await Multisig.getPermissions(contracts);

// get all transactions
const txs = await Multisig.getTransactionsFromContracts(contracts);

// you can use map like this to display contract names that you want
const contractsNames = {
  [contracts.getContractByName(ContractNames.MasterMultisig).address]: "Permissions",
  [contracts.getContractByName(ContractNames.FinanceRewards).address]: "Finance: Rewards",
};
const nameToDisplay = contractsNames[txs[0].calledContractAddress];

// Create multisig tx, that withdraw 420 amb (wei) from FinanceMaster contract to signer
await Multisig.financeWithdraw(contracts, ContractNames.FinanceMaster, await signer.getAddress(), 420);
1.2.27

7 days ago

1.2.24

2 months ago

1.2.25

2 months ago

1.2.23

2 months ago

1.2.21

3 months ago

1.2.20

3 months ago

1.2.19

3 months ago

1.2.17

3 months ago

1.2.18

3 months ago

1.2.16

3 months ago

1.2.15

4 months ago

1.2.14

5 months ago

1.2.12

6 months ago

1.2.13

6 months ago

1.2.10

6 months ago

1.2.11

6 months ago

1.2.9

6 months ago

1.2.8

6 months ago

1.2.7

6 months ago

1.2.6

6 months ago

1.2.0

7 months ago

1.2.5

7 months ago

1.2.4

7 months ago

1.2.3

7 months ago

1.2.2

7 months ago

1.2.1

7 months ago

1.1.1

8 months ago

1.0.19

9 months ago

1.0.18

9 months ago

1.0.17

9 months ago

1.0.16

9 months ago

1.0.9

10 months ago

1.1.7

7 months ago

1.0.8

10 months ago

1.1.6

7 months ago

1.0.7

10 months ago

1.1.5

7 months ago

1.0.6

10 months ago

1.1.4

7 months ago

1.0.5

10 months ago

1.1.3

8 months ago

1.1.2

8 months ago

1.0.22

9 months ago

1.0.21

9 months ago

1.0.20

9 months ago

1.0.26

9 months ago

1.0.25

9 months ago

1.0.24

9 months ago

1.0.23

9 months ago

1.0.29

9 months ago

1.0.28

9 months ago

1.0.27

9 months ago

1.0.33

8 months ago

1.0.11

9 months ago

1.0.32

8 months ago

1.0.10

9 months ago

1.0.31

8 months ago

1.0.30

9 months ago

1.0.15

9 months ago

1.0.14

9 months ago

1.0.35

8 months ago

1.0.13

9 months ago

1.0.34

8 months ago

1.0.12

9 months ago

1.0.4

11 months ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

0.0.39

1 year ago