Socket
Book a DemoInstallSign in
Socket

@laborx/airdrop-contracts

Package Overview
Dependencies
Maintainers
5
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@laborx/airdrop-contracts

Provides Ethereum smart contract that allows to perform token airdrop using merkle tree and merkle proof to record and check allowance for token withdrawals.

latest
npmnpm
Version
1.0.1
Version published
Maintainers
5
Created
Source

Airdrop

Provides Ethereum smart contract that allows to perform token airdrop using merkle tree and merkle proof to record and check allowance for token withdrawals.

Using

Install package using npm or yarn package managers:

  • npm install @laborx/airdrop-contracts

or

  • yarn add @laborx/airdrop-contracts

Contracts

Import smart contract as you usually do with external libraries

import "@laborx/airdrop-contracts/contracts/Airdrop.sol";

contract ExtendedAirdrop is Airdrop {
	// ...
}

Airdrop smart contract

It allowes to:

  • provide basic token (ERC20 or ERC223 standards) that will be used for airdropping;
  • provide airdrop campaign name;
  • setting up merkle root of a Merkle tree that is based on list of records of allowed withdrawals
  • claiming tokens if you are allowed to do that; user needs to provide a merkle proof to finally withdraw tokens.

For managing Merkle trees for airdrops we use package @laborx/merkletree.

More information about Airdrop contract you can find in documentation;

ScopedAirdrop smart contract

  • introduces term of "program" that could be deposited by different (more than one at once) tokens;
  • allows to claim several tokens providing proof for each of them.

More information about ScopedAirdropInterface interface you can find in documentation;

Support

There are two main areas for support functionality:

  • deployment scripts
  • constants

Deployment scripts

Deployment of a contract could be run with truffle framework by providing deployment context from @truffle-types/deployment-context package.

const deployerAccount = "0x...";
const deploymentContext = new ContractDeploymentContext(
	web3,
	artifacts,
	undefined,
	"path to deployed-addresses.json file"
);
await AirdropDeployment.deployScopeAirdrop(
	deploymentContext,
	deployerAccount,
	{
		airdrop: "AirdropContractKey",
		airdropBackendProvider:
			"AirdropBackendProviderContractKey",
		airdropLib: "AirdropLibraryContractKey"
	},
	{
		airdrop: { redeploy: false, owners: [] },
		airdropBackendProvider: {
			redeploy: false,
			updateLib: false
		},
		airdropLib: { redeploy: false }
	}
);

Support constants

Provides the next constants:

  • revert reasons (AirdropRevertReasons, ScopedAirdropRevertReasons, BytesLibRevertReasons)
  • error codes (errorsLibrary)
  • names for deployed addresses file (ContractNames)

FAQs

Package last updated on 03 Jun 2019

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

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.