分类
默认

撸毛starknet之取消ETH授权

在交互starknet上的dApp时,发现https://flexing.gg这个NFT Market竟然要授权100000000000000ETH,是的,后面是14个0,没看错,就是授权这么多的ETH。

我们来复习下ETH的单位换算:

  1. Wei,通常用于智能合约交互的单位,1ETH=10^18Wei。
  2. GWei,用于计算Gas价格。1ETH=10^9GWei。
  3. Finney,1ETH=10^3Finney。

主要原因是为了方便不同场景的计算,人为规定了几个不同的面额的ETH。参考:ETH官方的单位换算工具

至于flexing为什么要这么多授权ETH,不太明白。授权过多的风险在于,如果合约被黑的话,自己钱包的ETH可能会被一锅端。

我特地去看该项目方朋友们的授权金额,比如https://pyramid.market、https://unframed.co。

比如查了下unframed是argentHQ构建的,你可以在这个tweet看到:https://twitter.com/argentHQ/status/1683478409618309120。这2个项目方都很实在,每次授权都是用户操作金额,比如你出价0.05ETH,就需要授权0.05。不像flexing.gg,一上来就要你的全部。

既然授权太多了,我们就需要限制下它的授权金额。在ETH上,有这样的工具可以来检查你的授权,比如https://revoke.cash/。但在starknet上却没有好的工具,唯一找到是starkrekt。打开后发现接口请求直接返回500,根本没法用。

既然工具不好用,那我们就直接用合约来执行就好了。找到跨链桥部署的ETH合约StarkGate: ETH Token,切换到Read/Write Contract,选择Write函数,链接你的钱包,找到第3个函数approve(sender,amount)。

填入参数

  1. spender: felt:填:0x4b1b3fdf34d00288a7956e6342fb366a1510a9387d321c87f3301d990ac19d4
  2. 这是Flex Marketplace: NFT Marketplace官方合约地址。
  3. amount: Uint256 填:10000000000000。约等于=0.00001ETH。

这里梳理几个常用的数值:

  1. 0.00001ETH = 10000000000000
  2. 0.00002 ETH = 20000000000000
  3. 0.0001ETH = 1000000000000

不够用的话,可以用上面的单位换算为Wei值。

填好参数后,直接点击Write,确认提交即可。

原文发表在Twitter:

感谢您对加密货币投资的兴趣。在您开始进行加密货币投资之前,请注意以下免责申明:

  1. 市场风险:加密货币市场波动性较高,价格可能会极速波动。投资者应意识到,加密货币市场受多种因素影响,包括但不限于市场情绪、监管政策、技术发展、经济因素和投资者行为等。由于这些因素的不确定性,投资者有可能蒙受投资损失。。投资加密货币存在较高风险,您应全面了解和评估这种投资的风险,并自行承担可能产生的损失。
  2. 信息的准确性:您应明确了解加密货币市场的相关信息来源,如新闻、分析师报告或投资者意见。然而,这些信息可能受到潜在误导、错误或不完全准确的影响。因此,您应该仔细独立评估信息的真实性和有效性,并自行作出决策。
  3. 监管风险:加密货币市场监管环境复杂多变。各国政府和监管机构对加密货币的态度和政策可能发生变化,这可能对市场产生重大影响。您应该时刻关注监管动态,并意识到监管风险可能对您的投资产生不利影响。
  4. 安全风险:加密货币的安全性是一个重要的问题。尽管系统设计和区块链技术可以提供一定的安全性保障,但投资者应该意识到,黑客和其他恶意行为者可能会利用漏洞和弱点进行攻击。在选择交易平台和钱包时,请务必选择可信赖的、有良好声誉的机构,并采取适当的安全措施(比如使用硬件钱包)来保护个人资产。

请您在投资加密货币之前,进一步了解加密货币的背景、特性以及市场环境。并且,投资前也要考虑自身的风险承受能力和财务能力。投资是一项个人决策,我们不能代替您做出决策,也无法对投资结果负责。希望您理性、谨慎地进行投资。