Fordefi Web3 提供者
概览
此提供者类工具 EIP-1193 (英语) 由电源驱动 福尔迪·API。 。 。 .
它提供了一个 请求( ) 函数以执行 JSON RPC 方法并释放相关的 事件。 。 。 .
安装
使用线条 :
yarn add @fordefi/web3-provider
使用 npm :
npm add --save @fordefi/web3-provider
使用量
创建提供者
每个实例管理一个特定链条上的单一地址(断层).
跟着 API 参考 以下为可用配置 选项.
import {
FordefiWeb3Provider,
FordefiProviderConfig,
} from "@fordefi/web3-provider";
const config: FordefiProviderConfig = {
chainId: 11155111,
address: "0x1234567890123456789012345678901234567890",
apiUserToken: process.env.FORDEFI_API_USER_TOKEN,
apiPayloadSignKey: process.env.FORDEFI_API_PAYLOAD_SIGNING_KEY,
};
const provider = new FordefiWeb3Provider(config);
连接
光谱要求提供者是 已连接 提交 请求.
当新实例出现时, 此提供者会自动连接到 Fordefi
已建造并发射a connect 事件一旦与 Fordefi 通信
平台已经建立.
订阅此活动:
// callback to act upon a `connect` event
const onConnect = ({ chainId }: ProviderConnectInfo) => {
console.log(`Connected to chain ${chainId}`);
};
// option 1: subscribe using a callback
provider.on("connect", onConnect);
// option 2: wait for a promise to be resolved
const result = await provider.waitForEmittedEvent("connect");
onConnect(result);
// or
provider.waitForEmittedEvent("connect").then(onConnect);
详情见 活动。 。 。 .
提交 JSON RPC 请求
这个 request({ method, params }) 方法将 JSON RPC 请求发送给
供养. 它回报了一个承诺 解决了请求的结果.
所有与创造和(或)签署交易有关的方法一旦解决 交易已成功签名 API 签名器。 。 。 .
样本代码显示如何发送交易 :
const txHash = await provider.request({
method: "eth_sendTransaction",
params: [
{
from: "0x1234567890123456789012345678901234567890",
to: "0x1234567890123456789012345678901234567890",
value: 1_500_000_000_000n,
},
],
});
console.log(`Transaction hash: ${txHash}`);
API 参考
API 参考文献全文见: 福德维网络3 提供者文件站点。 。 。 .
配置
详情见 失败者配置 接口.
interface FordefiProviderConfig {
/**
* Chain ID as a number or a named chain.
*
* For example, assuming Ethereum Sepolia chain:
* - Numeric value: 11155111.
* - Named chain: 'evm_ethereum_sepolia'.
*/
chainId: number | string;
/**
* EVM address.
*
* For example: '0x1234567890123456789012345678901234567890'.
*/
address: Address;
/**
* Fordefi API user token (base64 encoded) issued via the Fordefi Web Console.
* See: https://app.fordefi.com/user-management
*
* For example: 'eyJWthEAdEr.eyJwTPaYLoad.SiGNAtUrEBase64=='
*/
apiUserToken: string;
/**
* Private key in PEM format used to sign the body of requests sent to the Fordefi API.
* This is the content the private `.pem` file.
* See: https://docs.fordefi.com/reference/pair-an-api-client-with-the-api-signer
*
* Example of a private ECDSA `.pem` file:
* -----BEGIN EC PRIVATE KEY-----
* PrivateKeyBase64==
* -----END EC PRIVATE KEY-----
*/
apiPayloadSignKey: string;
/**
* Fallback JSON-RPC HTTP node url.
* Methods not implemented by this provider will pass through and be handled by this node.
*
* For example: 'https://rpc.sepolia.org'.
*/
rpcUrl?: string;
/**
* Fordefi API base url (used for development), defaults to production API url.
*
* For example: 'https://api.fordefi.com'.
*/
apiBaseUrl?: string;
/**
* Total duration in ms of polling for transaction lifecycle status changed after a transaction was submitted. By default, it would stop after 24 hours.
*/
timeoutDurationMs?: number;
/**
* Duration in ms between checks for transaction lifecycle status updates after a transaction was submitted. The minimum value is 500, and by default it's 5000.
*/
pollingIntervalMs?: number;
}
活动
使用 on(eventName, callback) 方法 :
// emitted once during the connection process with the `address` you provided.
provider.on("accountsChanged", (accounts: Address[]) => {
/* handle event here */
});
// emitted once during connection process with the `chainId` you provided
provider.on("chainChanged", (chainId: string) => {
/* handle event here */
});
// provider becomes connected
provider.on("connect", (connectInfo: ProviderConnectInfo) => {
/* handle event here */
});
// provider becomes connected
provider.on("disconnect", (error: ProviderRpcError) => {
/* handle event here */
});
使用 removeListener(eventName, callback) 方法,
,并提供事件名称和先前用于
订阅此事件 。 例如:
provider.removeListener("connect", onConnect);
混合 waitForEmittedEvent(eventName) 帮助方法返回 a
你应许,那件事情将随一件事情而判决
载荷。 例如:
provider
.waitForEmittedEvent("connect")
.then((connectInfo: ProviderConnectInfo) => {
console.log(`Connected to chain ${connectInfo.chainId}`);
});
实例
检查使用示例 e2e 测试。 。 。 .
关于福德菲
拒绝 是一个区块链安全公司,提供 机构级MPC(多党计算)非拘禁钱包 专为分权金融而建.
Fordefi侧重于加强交易的安全和效率 通过创新使用MPC技术进行关键管理和 交易签名,并提供一个安全和方便用户的界面 通过各种客户:
- Fordefi 浏览器扩展 用于与 dApps 交互.
- Fordefi 网络控制台 安全履行 行政业务,例如制定交易政策规则和 用户管理,这需要获得管理人员法定人数的批准.
- 福尔迪·API 用于开发者 与福德菲基础设施互动.