1分钟前 回答问题
Metamask 应该不支持 NFT 显示吧?
5小时前 回答问题
链上 debug 确实不好用,期待以后改善。
我推荐使用使用 fork 链上数据在本地 console.log
npx hardhat node --fork your-node-url
console.log 参考:
5小时前 回答问题
在自己的实现合约里,重载(重新实现)mint 方法,例如:
function mint(address to, uint256 amount) public override {
require(totalSupply()
18小时前 回答问题
chainId 由你连接的 provider 确定的。
你的代码是在哪里执行的? 如果是前端执行的, provider 通常是钱包(Metamask)注入的,后端代码,你可以自己指定 provider
18小时前 回答问题
你可以先看看黄皮书在看源码。不过每个人都有自己的学习方法。
geth 你的 EVM 是 golang 实现的, 单个 geth 可以完成智能合约的执行。
1天前 回答问题
这里 两次 token transfer 是合约里函数的实现。于函数的参数无关。
函数及函数的参数 才是你说的 input 数据。
1天前 回答问题
每次授权都是调用不用的token合约的approve, 如果是个人账号进行授权,只能进行多次授权。
不过,有一个情况是用户代理合约,币存放在代理合约里(而不是用户账号下),这样就可以通过,代理合约来实现一次性调用多个 token进行授权。
像 DefiSaver 就是这个思路, 他会帮用户创建一个代码,资产存放在代理中, 可以方便一次和多个合约交互。
2天前 回答问题
这个问题其实是如何在 Solidity 中实现,调用合约的时候发送ETH .
只要在调用函数时, 附加{value: 1eth}
, 示例代码:
contract contractA {
function blah(int x, int y) payable {}
}
contract contractB {
function invokeContractA() {
contractA a = contractA(0x1234567891
2天前 回答问题
区块链对所有人公开,在合约里实现访问控制。
有啥场景解决不了你的问题吗?
2天前 回答问题
如果大家要 悬赏, 直接用我们网站的悬赏功能呢。
也帮助我们创造一点收益
2天前 回答问题
Uniswap 源码:
1、工厂合约:
2、WETH合约:
[
2天前 回答问题
没理解你的自动转移。
Token 本身可以集成了很多功能的 Token。 AToken 也是一个功能 Token。
它可以实现在执行其他调整用户的余额(这个是指你的自动转移么?)
3天前 回答问题
思路挺清楚
监听区块链上每一个交易即可,转出代币,直接调用erc20的 transfer 就可以。
3天前 回答问题
下面的方法简单示意了使用 amount 个 erc20 代币从合约中购买 tokenId 的 NFT:
function buyNFT(uint amount, uint tokenId) public {
erc20.transferFrom(msg.sender, address(this), amount);
nft.safeTransferFrom(address(this), msg.sender, tokenId);
}
其实只需要使用分别
4天前 回答问题
Selenium 默认是没有加载插件的
你需要先把 MetaMask 加载进来,参考这个:
4天前 回答问题
time.sleep(2) 肯定是不合理的。
应当使用 wait_for_transaction_receipt
如果已经确定出块,就可以使用 get_transaction_receipt
4天前 回答问题
5天前 回答问题
你可以试试设置 truffle_config.js 设置一下 timeoutBlocks 看看.
networks: {
development: {
host: "127.0.0.1",
port: 8545,
network_id: "*", // 匹配任何网络
websockets: true
},
live: {
host: "178.25.19.88", // 用于示例目的的随机IP(不要使用)
port
5天前 回答问题
没有, 不知道。
换一个浏览器看看
5天前 回答问题
provider 需要使用 websocket 的, 才能监听事件。