【问题标题】:call revert exception code: 'CALL_EXCEPTION', method: 'token0()',调用恢复异常代码:\'CALL_EXCEPTION\',方法:\'token0()\',
【发布时间】:2022-12-30 17:22:12
【问题描述】:

我试图在 UniSwap 交易所上架加密货币,但收到错误消息。我将 poolAddress 作为 UniSwap 中的 Goerli 默认地址,address 是创建令牌的地址。这是我的错误:

Error: call revert exception [ See: https://links.ethers.org/v5-errors-CALL_EXCEPTION ] (method="token0()", data="0x", errorArgs=null, errorName=null, errorSignature=null, reason=null, code=CALL_EXCEPTION, version=abi/5.7.0)
    at Logger.makeError (C:\Users\dumit\OneDrive\Desktop\Crypto\SmartHack2022\solidity\node_modules\@ethersproject\logger\lib\index.js:238:21)
    at Logger.throwError (C:\Users\dumit\OneDrive\Desktop\Crypto\SmartHack2022\solidity\node_modules\@ethersproject\logger\lib\index.js:247:20)
    at Interface.decodeFunctionResult (C:\Users\dumit\OneDrive\Desktop\Crypto\SmartHack2022\solidity\node_modules\@ethersproject\abi\lib\interface.js:388:23)
    at Contract.<anonymous> (C:\Users\dumit\OneDrive\Desktop\Crypto\SmartHack2022\solidity\node_modules\@ethersproject\contracts\lib\index.js:395:56)
    at step (C:\Users\dumit\OneDrive\Desktop\Crypto\SmartHack2022\solidity\node_modules\@ethersproject\contracts\lib\index.js:48:23)
    at Object.next (C:\Users\dumit\OneDrive\Desktop\Crypto\SmartHack2022\solidity\node_modules\@ethersproject\contracts\lib\index.js:29:53)
    at fulfilled (C:\Users\dumit\OneDrive\Desktop\Crypto\SmartHack2022\solidity\node_modules\@ethersproject\contracts\lib\index.js:20:58)
    at processTicksAndRejections (node:internal/process/task_queues:96:5) {
  reason: null,
  code: 'CALL_EXCEPTION',
  method: 'token0()',
  data: '0x',
  errorArgs: null,
  errorName: null,
  errorSignature: null,
  address: '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6',
  args: [],
  transaction: {
    data: '0x0dfe1681',
    to: '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6'
  }
}

这是我创建令牌(并将其发送到帐户)的代码:

createToken(BigInt(supply), nume, simbol, BigInt(decimals))
       .catch(error => {
         console.error(error);
       });
    async function createToken(supply, tokenName, symbol, decimals)
    {
      const myToken = await ethers.getContractFactory("token"); 
      // Start deployment, returning a promise that resolves to a contract object
      const my_token = await myToken.deploy(supply, tokenName, symbol, decimals);
      console.log("Contract deployed to address:", my_token.address);
      await my_token.transfer(address, supply)
      console.log("sent to " + address)
    
      res.send(my_token.address)
    
      listToken(address, tokenName, symbol, decimals).catch(error => {
        console.error(error);
      });
    }

这是由 .ts 文件生成的用于列出它的函数:

async function main() {
    return __awaiter(this, void 0, void 0, function () {
        var _a, immutables, state, TokenA, TokenB, poolExample;
        return __generator(this, function (_b) {
            switch (_b.label) {
                case 0: return [4 /*yield*/, Promise.all([getPoolImmutables(), getPoolState()])];
                case 1:
                    _a = _b.sent(), immutables = _a[0], state = _a[1];
                    TokenA = new Token(address, immutables.token0, decimals, symbol, tokenName);
                    TokenB = new Token(poolAddress, immutables.token1, 18, 'WETH', 'Wrapped Ether');
                    poolExample = new Pool(TokenB, TokenA, immutables.fee, state.sqrtPriceX96.toString(), state.liquidity.toString(), state.tick);
                    console.log(poolExample);
                    return [2 /*return*/];
            }
        });
    });
}
main();

【问题讨论】:

    标签: javascript blockchain smartcontracts


    【解决方案1】:

    你有没有设法解决这个问题。我也面临同样的问题。

    【讨论】:

      猜你喜欢
      • 2021-08-06
      • 1970-01-01
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      • 2011-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多