【问题标题】:Interact with multiple contracts与多个合约交互
【发布时间】:2021-09-27 07:27:25
【问题描述】:

我有一种情况,一组两个合约部署到两个地址,例如:

share.ysn-1_0_0.ysn.testnet
market.share.ysn-1_0_0.ysn.testnet

在这种情况下,share 是一个NFT 合约,而market 是一个插入其中的open bids system。 不同项目部署在ysn.testnet下,模式相同,FT合约部署在ysn-1_0_0.ysn.testnet

我正在尝试找出从一个前端处理此问题的最佳方法,而无需太多重定向,最好是一个。 想到的一件事是有一个代理合约,它将Promise 请求分发到上面的一组合约;这可行吗,还是有缺点?

【问题讨论】:

  • 你说的是当用户授权两个合约时来自 NEAR 钱包的重定向?
  • 是的,@BenTheHumanMan,如果您在同一个前端下有多个合约,如果您尝试调用读取或更新状态并针对多个地址的合约方法,您最终会得到尽可能多的重定向为合约数量。
  • 一种方法将针对多个合约并且不会引发gas恐慌?在不了解您的设置的情况下,我猜这是一个设计问题。用户只需要授权投标合同,然后他们进行的后续投标将提取资金 - berryclub.io
  • 我正在重构前端以处理多个 nft 项目(每个项目都有自己的 market),例如,如果您想构建一个从所有nftcontracts(没有后端)你会被重定向。感谢您的支持;明天我会做更多的阅读,看看这是否是我这边的设计问题。
  • 我希望我能提供更好的帮助。找到解决方案后,请在此处发布。我认为 ft/nft 合约调用可能只是由市场合约代理,因此用户钱包只需要授权市场来调用/签署各种 nft/ft 合约调用。

标签: nearprotocol


【解决方案1】:

我的解决方案最终使用localStorage 在登录和注销时保存contractAddress 并具有:

useEffect(switchProject, [router.asPath])

如果路径与登录的项目不同,则退出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-12
    • 2020-08-25
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    • 2021-11-08
    • 2021-12-19
    相关资源
    最近更新 更多