constructor
To initialize a FireblocksSigner
, you must provide a set of parameters detailed below.
Usage
import { FireblocksSigner } from "@alchemy/aa-signers/fireblocks";
import { ChainId } from "@fireblocks/fireblocks-web3-provider";
// instantiates using every possible parameter, as a reference
const fireblocksSigner = new FireblocksSigner({
apiKey: "API_KEY",
privateKey: "PATH_TO_FILE_WITH_PRIVATE_KEY",
chainId: ChainId.SEPOLIA,
rpcUrl: "ALCHEMY_RPC_URL",
vaultAccountIds: ["VAULT_ID"],
apiBaseUrl: "FIREBLOCKS_API_URL",
note: "note",
pollingInterval: 1000,
oneTimeAddressesEnabled: true,
externalTxId: "1",
userAgent: "test-header",
assetId: "1",
logTransactionStatusChanges: true,
logRequestsAndResponses: true,
enhancedErrorHandling: true,
gaslessGasTankVaultId: 1,
});
Returns
FireblocksSigner
A new instance of a FireblocksSigner
.
Parameters
params: FireblocksProviderConfig | { inner: FireblocksWeb3Provider }
You can either pass in a constructed FireblocksWeb3Provider
object, or directly pass into the FireblocksSigner
the FireblocksProviderConfig
used to construct a FireblocksWeb3Provider
object. These parameters are listed on the Fireblocks repo as well.
FireblocksProviderConfig
takes in the following parameters:
apiKey: string
-- a Fireblocks API Key. You can get one at the Fireblocks Developer Dashboard.privateKey: string
-- Fireblocks API private key for signing requests.chainId: ChainId
-- Fireblocks API private key for signing requests. Required ifrpcUrl
is not provided.rpcUrl: ChainId
-- Url to which to transport JSON-RPC requests. Required ifchainId
is not provided.vaultAccountIds: number | number[] | string | string[]
-- [optional] list of Fireblocks vaults to provide for the Signer. By default, the first 20 vault accounts are dynamically loaded from the Fireblocks API.apiBaseUrl
-- [optional] base Url for querying the Fireblocks API. By default, it uses the Fireblocks API production endpoint.fallbackFeeLevel: FeeLevel = "LOW" | "MEDIUM" | "HIGH"
-- [optional] fallback fee for requests. Default Medium.note: string
-- [optional] By default, the note is set to "Created by Fireblocks Web3 Provider."pollingInterval: number
-- [optional] The interval in which the Fireblocks API is queried to check the status of transactions. Default is 1 second.oneTimeAddressesEnabled: boolean
-- [optional] Flag to determine if one time addresses are enabled in your Fireblocks workspace. Default true.externalTxId: (() => string) | string
-- [optional] External ID you can use to associate with transactions.userAgent: string
-- [optional] Additional appended product string to theUser-Agent
header on requests.assetId: string
-- [optional] custom ID for a Fireblocks asset, used with custom or private EVM chains.logTransactionStatusChanges: boolean
-- [optional] Flag to determine if every transaction status change will be logged to the console. Default false.logRequestsAndResponses: boolean
-- [optional] Flag to determine if every request and response processed by the provider will be logged to the console. Default false.enhancedErrorHandling: boolean
-- [optional] Flag to determine verbosity of failed transaction information. Default true.gaslessGasTankVaultId: number
-- [optional] If set, all transactions sent gaslessly, relayed via the provided vault ID. Default true.