@appliedblockchain/silentdatarollup-hardhat-plugin-fireblocks v1.0.1
Silent Data Rollup Providers - Hardhat Plugin Fireblocks Package
Table of Contents
Introduction
Custom providers for integrating Silent Data Rollup with Hardhat and Fireblocks.
Prerequisites
- Node.js (version 18 or higher)
- Hardhat v2
- npm
- Basic knowledge of Ethereum and smart contracts
Integration
Hardhat Integration
Installing Hardhat Integration Dependencies
npm install @appliedblockchain/silentdatarollup-core @appliedblockchain/silentdatarollup-hardhat-plugin-fireblocks @nomicfoundation/hardhat-ignition-ethers@0.15.7
Hardhat Integration Example
To integrate the Silent Data Rollup Provider with Hardhat, you need to configure your Silent Data network in the hardhat.config.ts
file. Below is an example of how to set it up, and note that a silentdata
property is needed on the network config to enable it. This property can be an empty object to apply defaults, or you can specify the configurations.
import {
ApiBaseUrl,
ASSETS,
ChainId,
} from '@fireblocks/fireblocks-web3-provider'
import '@nomicfoundation/hardhat-ignition-ethers'
import '@appliedblockchain/silentdatarollup-hardhat-plugin-fireblocks'
import { SilentDataSignatureTypeRollupProvider } from '@appliedblockchain/silentdatarollup-core'
const RPC_URL = 'SILENT_DATA_ROLLUP_RPC_URL'
const FIREBLOCKS_API_KEY = 'FIREBLOCKS_API_KEY'
const fireblocksConfig = {
privateKey: 'FIREBLOCKS_PATH_TO_PRIVATE_KEY',
apiKey: FIREBLOCKS_API_KEY,
assetId: ASSETS[ChainId.SEPOLIA].assetId,
vaultAccountIds: 'FIREBLOCKS_VAULT_ACCOUNT_ID', // Note: Currently, only one vault account can be passed to the configuration.
chainId: ChainId.SEPOLIA,
apiBaseUrl: ApiBaseUrl.Sandbox, // If using a sandbox workspace
rpcUrl: RPC_URL,
}
export default {
solidity: '0.8.21',
defaultNetwork: 'sdr',
networks: {
hardhat: {},
sdr: {
url: RPC_URL,
fireblocks: fireblocksConfig,
silentdata: {
authSignatureType: SignatureType.EIP712, // Optional, defaults to RAW
},
},
},
}
Note: With the above configuration, you can deploy a contract using Hardhat Ignition. For a detailed example, including a sample contract and an Ignition module, please refer to the Hardhat Ignition Getting Started Guide.
To deploy your contract using Hardhat Ignition, run the following command:
npx hardhat ignition deploy ignition/modules/Apollo.ts --network sdr
Troubleshooting
If you encounter any issues, please check the following:
- Ensure you're using the correct RPC URL for your desired network.
- Verify that your private key is correctly set and has sufficient funds.
- Ensure that your token is still active on the SilentData AppChains dashboard.
- If using Fireblocks, validate your user and API keys.
License
This project is licensed under the MIT License.