Defender SDK 和 API

Defender SDK (以前的 defender-client 软件包)是一个 node 软件包,允许开发者使用 Javascript/Typescript 以编程方式与 Defender 交互。

有关更多详细信息,请参阅 sdk 仓库SDK 和 API 文档

安装

您可以使用 NPM 或您喜欢的任何包管理器来安装整个软件包

npm install @openzeppelin/defender-sdk

或者您可以安装单个子包

npm install @openzeppelin/defender-sdk-deploy-client
有关设置、示例和用法的更多信息,请访问 Github 中的 Defender SDK README 文件。

API 密钥

为了使用 SDK 或 API 操作您的 Defender 帐户,Defender 需要在仪表板中生成的 API 密钥和密钥来验证请求。

创建 API 密钥时,您还可以指定以天、小时和分钟为单位的过期时间。

Defender 中的 API 密钥过期配置

Defender 会在 API 密钥过期前 3 天过期时发出通知。

一旦密钥过期,发送到 Defender API 的任何请求都将抛出 API Key is either expired or invalid 错误。

Relayer API 密钥

Relayer API 密钥在 Relayer 详细信息页面中生成,专门用于管理该 Relayer 的签名者操作,例如发送或查询交易、获取 nonce 或签名数据。

const creds = {
  relayerApiKey: <RELAYER_API_KEY>,
  relayerApiSecret: <RELAYER_API_SECRET>,
};
const client = new Defender(creds);

const txResponse = await client.relaySigner.sendTransaction({
  to: '0x179810822f56b0e79469189741a3fa5f2f9a7631',
  value: 1,
  speed: 'fast',
  gasLimit: '21000',
});
使用 relayerApiKeyrelayerApiSecret 进行身份验证时,只有 client.relaySigner 包可用。

Admin API 密钥

Admin API 密钥在 管理 → API 密钥中生成,用于操作 Defender 中的所有其他资源,包括 relayers 的 CRUD 操作。

const creds = {
  apiKey: <API_KEY>,
  apiSecret: <API_SECRET>,
};
const client = new Defender(creds);

const proposals = await client.proposal.list({
  limit: 10,
  next: undefined,
});