@ exodus/ etereum- api
交易显示器、收费显示器、带区块链节点的RPC,以及基于Ethereum和EVM的区块链的其他网络编码。 见 资产包 更详细地介绍这一一揽子计划的作用.
收费
本节解释目前在Exodus的收费工作方式,并指导如何通过远程配置来排除和调试. 它扭转了现有的统一实施。 该文件旨在帮助读者理解收费机制并就如何进一步改进该机制提出建议.
天然气价格
不包括海关费, feeData.gasPrice 用于解决交易的天然气价格(剩余)和最大天然气价格(EIP-1559).
这个 gasPrice 数值按偏好顺序从:
- 远程配置
- 通过收费数据显示器和网络插座的节点.
gasPrice = baseFeePerGas * gasPriceMultiplier + tipGasPrice - 默认配置 .
使用远程配置永远不会被推荐,因为手动更新这个值不会跟上网络活动.
费和远程监视器一启动钱包就执行. 代码所定义的默认收费数据字段会在用户与钱包互动之前被覆盖(如果设置了的话).
为了调和收费问题 我们可以:
- 增减
gasPriceMultiplier通过远程配置. 譬如说,1.2将目前的网络气价上涨20%. - 设置 a
min通过远程配置值。 天然气价格永远不会低于这一值. - 设置 a
max通过远程配置值。 天然气价格永远不会高于这一价值.
如果解决 gasPrice 不准确或低于网络的,交易可能会被卡在待决状态中,或者可能不会被广播到块链上.
这是一种不可取的情况:
- 我们可以为第二次交易增加非ce,但如果第一次交易下降,第二次交易也会失败,即使第二次交易的费用足够高.
- 如果钱包假设交易被放弃而非ce被再用,网络会将这个无关的第二次交易解释为试图替换第一个交易(交易替换下价出错).
- 向"重审"提交第二次交易的用户可能很危险. 这两种交易都可能会被挖掘出,导致用户两次而不是一次执行互换.
一个逃生阀可能是更新 min, (中文(简体) ), max,或 gasPriceMultiplier 通过远程配置. 这应该是一个临时补丁,一旦节点的天然气价格稳定,就需要回滚.
基本天然气价格
基气价格(或基费)为将交易纳入区块,每单位需要支付的最低气量.
可见于 feeData.baseFeePerGas。收费监视器通过监测最新的区块信息来保持更新。 可以通过远程配置调制,但此不推荐.
这个 feeData.baseFeePerGas 用于在UI中显示“估计费用”并计算最大气价. gasPrice = baseFeePerGas * gasPriceMultiplier + tipGasPrice
气体限制
这个 gasLimit 是指交易或块在执行过程中允许消耗的最大气体量.
多数EVMs在转移主要资产时假设21,000. 一些EVM,比如曼特尔,Arbitrum One,和Arbitrum Nova,使用不同的气体限制. 这些气体限制需要估算,类似于执行智能合同呼叫时.
对于智能合同呼叫,如发送或互换,钱包根据合同,发送者,接收者,金额等估算出一个气体限制. 毒气限值再加20% extraPercentage 作为安全网.
如果气体限值估计失败,代码可能回落到每个资产定义的高违约值(asset.gasLimit) (中文(简体) ).
目前,无法通过远程配置来调和气体限制分辨率,"外百分率"值在代码中被硬编码.
都撞了起来 gasLimit 和被撞倒的 gasPrice 显示在发送时重新使用收费时解决.
天然气限制和天然气价格越高,最大网络费就越高,尽管并非所有的天然气都可以使用。 最大网络费越高,用户可用余额就越低.
额外L2费用
L2网络可能会有额外的收费. 阿尔比特鲁姆一号、阿尔比特鲁姆-诺瓦和曼特尔在气体估算中包括了费用(forceGasLimitEstimation) (中文(简体) ). Base和Aptos需要额外的费用估算,以获得这一额外费用(第1款)estimateL1DataFee) (中文(简体) ).
L2额外收费在向用户显示收费,解决可用余额,并创建交易时需要考虑. 收费可能在交易中隐含.
自定义收费
自定义收费允许用户设置自定义 gasPrice。钱包允许下列范围:
说明: gasPrice = baseFeePerGas * gasPriceMultiplier + tipGasPrice
recommended: gasPricemin: gasPrice * gasPriceMinimumRatemax: gasPrice * gasPriceMaximumRate
如果用户选择推荐的值,则不设定自定义收费,留下默认收费行为.
自定义收费可以通过设置来禁用 rbfEnabled: false 通过远程配置. 目前,只有Ethereum允许收取关税。 今后可以列入其他的环境影响评估.
钱包允许在允许自定义收费时加速(反之亦然).
如果用户在此范围内选择不同的自定义收费,则该收费计算为: customFee * gasLimit。 。 。 .
如上所解释,低通关费创建的交易可能会被卡住一阵子,阻断了未来的交易,可能会与非ce产生问题.
最小值和最大值可以通过修改来调节 gasPriceMinimumRate 财务报告和审定财务报表 gasPriceMaximumRate 通过远程配置.
TX 公式
说明: gasPrice = baseFeePerGas * gasPriceMultiplier + tipGasPrice
表格显示 txs 是如何为遗产和 1559 逻辑为主要用途创建的 :
| 发送一些主 | 发送全部主机 | 发送信使/合同呼叫 | 用自定义收费发送主机 | 发送签章/附有定制费的合同 | 加速 | |
|---|---|---|---|---|---|---|
| 天然气价格 | 气价 | 气价 | 气价 | 自定义Fee | 自定义Fee | 最大( 目前的气价, 原始 tx 气价) * BUMP RATE 1.2 |
| 遗留气体限制 | 21000 个 | 21000 个 | 估计增加20% | 21000 个 | 估计增加20% | 原始 tx 气体限制 |
| - 说吧 | - 说吧 | - 说吧 | - 说吧 | - 说吧 | - 说吧 | - 说吧 |
| 1559 最大天然气价格 | 气价 | 气价 | 气价 | 自定义Fee | 自定义Fee | 最大( 当前气价, 原始 tx 气价) * BUMP RATE 1.2 |
| 1559 特普天然气价格 | 提示图像 | 气价 | 提示图像 | 自定义Fee | 提示图像 | * BUMP RATE 1.2 |
| 1559 气体限制 | 21000 个 | 21000 个 | 估计增加20% | 21000 个 | 估计增加20% | 原始 tx 气体限制 |
收费数据示例
这是Ethereum的默认收费数据配置. 其他EVMs有不同的默认收费数据.
所有这些值都可以通过远程配置来调制,尽管可能不推荐,因为收费监视器也会调制:
baseFeePerGas数字 :50 Gwei——基准气价参考值. 费用监测器迅速更新.gasPrice数字 :77 Gwei– 说吧 –baseFeePerGas * gasPriceMultiplier + tipGasPriceseverGasPrice数字 :75 Gwei——网络气价参考值. 费用监测器迅速更新.tipGasPrice数字 :2 Gwei- 控制maxPriorityFeePerGas用于启用EIP-1559时的所有交易.eip1559Enabled数字 :true- 启用或禁用EIP-1559。 价值为false是指遗产费和交易.rbfEnabled数字 :true——启用自定义收费和加速度. 目前,这只供Ethereum使用,但可扩展至其他的EVM.gasPriceMaximumRate数字 :1.3——控制自定义收费滑行器中的最大值.gasPriceMinimumRate数字 :0.5- 控制自定义收费滑行器中的最低值.gasPriceMultiplier数字 :1- 控制gasPrice财务报告和审定财务报表maxFeePerGas以current gas price * this multiplier。 。 。 .max数字 :250 Gwei——控制可设置的最高气价值.min数字 :1 Gwei——控制可设置的最低气价值.fuelThreshold数字 :0.025 ETH– 如果余额低于此值而用户持有令牌,则显示低余额警告.enableFeeDelegation数字 :false- 未执行.origin数字 :75 Gwei- 遗产;考虑删除.swapFee数字 :0.05 ETH- 遗产;考虑删除.