API参考 - OpenZeppelin 文档

本文档是 GSN Provider 的 API 参考,GSN Provider 已被弃用,不再开发新功能或解决问题。文档详细介绍了 GSNProvider 的基本选项和高级选项,包括 useGSN、signKey、approveFunction、fixedGasPrice、fixedGasLimit 等,以及交易参数的设置。

GSN Provider 已弃用。 我们不再开发新功能或解决问题。 阅读此处了解更多信息。

API 参考

基本选项

GSNProvider 的多个设置可以在创建时设置:

const options = { useGSN: true, fixedGasLimit: 10000 }; // 其中
new GSNProvider("http://localhost:8545", options);

这些在下面有记录。

useGSN

useGSN (bool)

是否默认发送 meta txs,或者是一个接收 payload 并返回是否使用 meta tx 的函数(默认为 true)。

signKey

signKey (hex string)

可选的私钥,用于签署 meta txs,如果未设置,则使用底层 provider 的 sign

approveFunction

approveFunction (function)

用于生成交易的应用程序批准数据的可选函数,并返回一个 bytes 批准数据(例如签名),可以在接收者中检查;接收单个对象作为参数,该对象具有属性 fromtoencodedFunctionCalltxFeegasPricegasnoncerelayerAddressrelayHubAddress

fixedGasPrice

fixedGasPrice (integer|string)

在所有 gsn 交易中使用的固定 gas price。

fixedGasLimit

fixedGasLimit (integer|string)

在所有 gsn 交易中使用的固定 gas limit。

minStake

minStake (integer)

过滤掉 stake 低于此值的 relays(可选)

minDelay

minDelay (integer)

过滤掉 unstake delay 低于此值的 relays(可选)

verbose

verbose (bool)

高级选项

这些与 relayer 选择算法有关:你很可能不需要使用它们。

preferredRelayer

preferredRelayer (object)

尝试使用此 relayer,如果失败,则回退到常规查找算法。 强制选项是 RelayServerAddressrelayUrltransactionFee

示例配置:

preferredRelayer = {
  RelayServerAddress: '0x73a652f54d5fd8273f17a28e206d47f5bd1bc06a',
  relayUrl: 'http://localhost:8090',
  transactionFee: '70',
};

gasPriceFactorPercent

`gasPriceFactorPercent (integer)

gsn 交易中网络 gas price 的百分比增加(默认为 20,请注意,你需要清除 web3 默认的固定 gasprice 才能使此设置生效)。

httpTimeout

httpTimeout (integer)

到 relays 的 HTTP 请求的超时时间(以毫秒为单位)(默认为 10000)。

allowedRelayNonceGap

allowedRelayNonceGap (integer)

(默认为 3)

relayTimeoutGrace

relayTimeoutGrace (integer)

每当 relayer 超时请求时,客户端会降低其评分,并且此惩罚每 relayTimeoutGrace 秒重置一次(默认为 1800,30 分钟)

calculateRelayScore

`calculateRelayScore (function)

给定一个 relayer,必须返回一个数字评分(越高越好)来对其进行排名(默认为使用交易费用和因超时而造成的惩罚,最高为 1000)

relayFilter

relayFilter (function)

给定一个 relayer,必须返回一个布尔值,指示它是否符合条件(默认为使用 minDelayminStake

txfee

txfee (integer)

强制使用此交易费用,而不是 relayer 宣传的费用(可能导致超额支付或拒绝,默认为空)

addScoreRandomness

addScoreRandomness (function)

用于在具有相同分数的 relays 之间注入随机性关联断路器(默认为统一的 0..1 随机数)

交易参数

除了常规交易参数(fromgas 等)之外,GSN provider 还可以接受这些参数,这些参数将覆盖在 provider 创建期间设置的参数。

当使用 Truffle contracts 时,你还必须传递其中一个常规参数。 由于 GSN 交易根据定义不携带 Ether,因此 value 是一个不错的选择:<br>javascript hljs&lt;br>await myTruffleContract.myFunction(paramA, { useGSN: false, value: 0 });&lt;br>

useGSN

useGSN (bool)

useGSN 构造选项相同。

txFee

txFee (integer)

txFee 构造选项相同。

approveFunction

approveFunction (function)

approveFunction 构造选项相同。

← GSN 常见问题解答

  • 原文链接: docs.openzeppelin.com/gs...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
OpenZeppelin
OpenZeppelin
江湖只有他的大名,没有他的介绍。