1.3.30 • Published 9 months ago

@airdao/airdao-node-contracts v1.3.30

Weekly downloads
-
License
-
Repository
-
Last release
9 months 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.3.30

9 months ago

1.3.29

9 months ago

1.3.28

9 months ago

1.3.24

9 months ago

1.3.25

9 months ago

1.3.22

9 months ago

1.3.23

9 months ago

1.3.26

9 months ago

1.3.27

9 months ago

1.3.17

10 months ago

1.3.18

10 months ago

1.3.16

10 months ago

1.3.19

10 months ago

1.3.20

10 months ago

1.3.21

10 months ago

1.3.10

11 months ago

1.3.13

11 months ago

1.3.14

11 months ago

1.3.11

11 months ago

1.3.12

11 months ago

1.3.15

11 months ago

1.3.9

11 months ago

1.3.8

11 months ago

1.3.0-alpha.0

1 year ago

1.3.0-alpha.2

1 year ago

1.3.0-alpha.1

1 year ago

1.3.0-alpha.4

1 year ago

1.3.0-alpha.3

1 year ago

1.3.7

11 months ago

1.3.6

12 months ago

1.3.5

12 months ago

1.3.4

12 months ago

1.3.3

12 months ago

1.3.1

12 months ago

1.3.1-beta.0

12 months ago

1.2.29

1 year ago

1.2.28

1 year ago

1.2.27

1 year ago

1.2.24

1 year ago

1.2.25

1 year ago

1.2.23

1 year ago

1.2.21

1 year ago

1.2.20

1 year ago

1.2.19

1 year ago

1.2.17

1 year ago

1.2.18

1 year ago

1.2.16

1 year ago

1.2.15

1 year ago

1.2.14

2 years ago

1.2.12

2 years ago

1.2.13

2 years ago

1.2.10

2 years ago

1.2.11

2 years ago

1.2.9

2 years ago

1.2.8

2 years ago

1.2.7

2 years ago

1.2.6

2 years ago

1.2.0

2 years ago

1.2.5

2 years ago

1.2.4

2 years ago

1.2.3

2 years ago

1.2.2

2 years ago

1.2.1

2 years ago

1.1.1

2 years ago

1.0.19

2 years ago

1.0.18

2 years ago

1.0.17

2 years ago

1.0.16

2 years ago

1.0.9

2 years ago

1.1.7

2 years ago

1.0.8

2 years ago

1.1.6

2 years ago

1.0.7

2 years ago

1.1.5

2 years ago

1.0.6

2 years ago

1.1.4

2 years ago

1.0.5

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

1.0.22

2 years ago

1.0.21

2 years ago

1.0.20

2 years ago

1.0.26

2 years ago

1.0.25

2 years ago

1.0.24

2 years ago

1.0.23

2 years ago

1.0.29

2 years ago

1.0.28

2 years ago

1.0.27

2 years ago

1.0.33

2 years ago

1.0.11

2 years ago

1.0.32

2 years ago

1.0.10

2 years ago

1.0.31

2 years ago

1.0.30

2 years ago

1.0.15

2 years ago

1.0.14

2 years ago

1.0.35

2 years ago

1.0.13

2 years ago

1.0.34

2 years ago

1.0.12

2 years ago

1.0.4

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.0.39

2 years ago