1.3.50 • Published 8 months ago

@airdao/airdao-node-contracts v1.3.50

Weekly downloads
-
License
-
Repository
-
Last release
8 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.50

8 months ago

1.3.32

1 year ago

1.3.33

1 year ago

1.3.39

12 months ago

1.3.37

1 year ago

1.3.42

9 months ago

1.3.43

9 months ago

1.3.40

11 months ago

1.3.41

9 months ago

1.3.46

8 months ago

1.3.47

8 months ago

1.3.44

9 months ago

1.3.45

8 months ago

1.3.49

8 months ago

1.3.30

1 year ago

1.3.29

1 year ago

1.3.28

1 year ago

1.3.24

1 year ago

1.3.25

1 year ago

1.3.22

1 year ago

1.3.23

1 year ago

1.3.26

1 year ago

1.3.27

1 year ago

1.3.17

1 year ago

1.3.18

1 year ago

1.3.16

1 year ago

1.3.19

1 year ago

1.3.20

1 year ago

1.3.21

1 year ago

1.3.10

1 year ago

1.3.13

1 year ago

1.3.14

1 year ago

1.3.11

1 year ago

1.3.12

1 year ago

1.3.15

1 year ago

1.3.9

1 year ago

1.3.8

1 year 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

1 year ago

1.3.6

1 year ago

1.3.5

1 year ago

1.3.4

1 year ago

1.3.3

1 year ago

1.3.1

1 year ago

1.3.1-beta.0

1 year ago

1.2.29

2 years ago

1.2.28

2 years ago

1.2.27

2 years ago

1.2.24

2 years ago

1.2.25

2 years ago

1.2.23

2 years ago

1.2.21

2 years ago

1.2.20

2 years ago

1.2.19

2 years ago

1.2.17

2 years ago

1.2.18

2 years ago

1.2.16

2 years ago

1.2.15

2 years 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

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

0.0.39

3 years ago