🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Sign inDemoInstall
Socket

brainchrusher-package-number-uno

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

brainchrusher-package-number-uno

TODO

0.0.1
latest
Source
npm
Version published
Maintainers
1
Created
Source

ChainSafe's Hardhat Plugin for Multichain Deployment with Sygma

Unlock the full potential of Hardhat with Sygma: the premier plugin for effortlessly deploying your Ethereum smart contracts across multiple blockchain networks. Leveraging the Sygma protocol, this tool revolutionizes your deployment process, making it efficient, streamlined, and truly multi-chain. With ChainSafe's plugin, you're not just deploying contracts—you're exploring new possibilities within the blockchain ecosystem.

Installation

To install, run:

npm install --save-dev @chainsafe/hardhat-plugin-multichain-deploy @buildwithsygma/sygma-sdk-core

Importing the Plugin

For JavaScript users, add this line to your hardhat.config.js:

require("@chainsafe/hardhat-plugin-multichain-deploy");

For TypeScript users, include it in your hardhat.config.ts:

import "@chainsafe/hardhat-plugin-multichain-deploy";

Environment Extensions

The plugin adds a multichain namespace to the Hardhat Runtime Environment (HRE), introducing new methods for deployment:

async deployMultichain<Abi extends ContractAbi = any>(
    contractName: string,
    networkArgs: NetworkArguments<Abi>,
    options?: DeployOptions
): Promise<{
   deploymentInfo: DeploymentInfo[];
   receipt: Transaction;
} | void>

async deployMultichainBytecode<Abi extends ContractAbi = any>(
    contractBytecode: string,
    contractAbi: Abi,
    networkArgs: NetworkArguments<Abi>,
    options?: DeployOptions
): Promise<{
   deploymentInfo: DeploymentInfo[];
   receipt: Transaction;
} | void>
  • contractName: Name of the contract for deployment.
  • contractBytecode: Compiled bytecode of the contract.
  • contractAbi: Contract ABI, detailing methods and structures for interaction.
  • networkArgs: Maps network identifiers to deployment arguments. Refer to NetworkArguments.md for more.
  • options: Optional deployment settings. Details in DeployOptions.md.

Environment Variable

  • ADAPTER_ADDRESS: Address of the adapter, facilitating deployment across chains with Sygma. Use this if deploying custom adapters.

Configuration

To utilize the Multichain Deployment plugin, specific settings are required:

  • multichain namespace: Configures deployment settings.
    • environment: Defines the Sygma environment. Use Environment from @buildwithsygma/sygma-sdk-core for constants.

Example Configuration

import { Environment } from "@buildwithsygma/sygma-sdk-core";

const config: HardhatUserConfig = {
    // Other configurations...
    defaultNetwork: "goerli",
    networks: {
        sepolia: { ... },
        goerli: { ... },
        optimisticGoerli: { ... },
    },
    multichain: {
        environment: Environment.TESTNET,
    },
};

Usage

With the setup complete, let’s deploy an ERC20 contract across multiple chains:

const networkArgs = {
   sepolia: {
     args: [name, symbol, decimals],
   },
   goerli: {
      args: [name, symbol, decimals],
   },
};
const options = {
   salt: "0xcafe00000000000000000000000000000000000000000000000000000000cafe",
};

this.hre.multichain.deployMultichain("MySuperToken", networkArgs, options);

Contribution

To contribute to this project, please see the monorepo readme for guidelines.

Keywords

ethereum

FAQs

Package last updated on 12 Feb 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