blockchain - 0x 协议错误:未找到给定网络 ID 的默认合约地址
问题描述
我在运行 0x 协议后端启动套件时遇到了这些错误。
WARNING: Multiple definitions for safeTransferFrom
Error: No default contract addresses found for the given network id (137). If you want to use ContractWrappers on this network, you must manually pass in the contract address(es) to the constructor.
at Object._getDefaultContractAddresses (/home/ubuntu/smartdex-backend/node_modules/@0x/contract-wrappers/src/utils/contract_addresses.ts:10:15)
at new ContractWrappers (/home/ubuntu/smartdex-backend/node_modules/@0x/contract-wrappers/src/contract_wrappers.ts:118:19)
at new OrderBook (/home/ubuntu/smartdex-backend/ts/lib/orderbook.js:96:34)
at new Handlers (/home/ubuntu/smartdex-backend/ts/lib/handlers.js:64:27)
at /home/ubuntu/smartdex-backend/ts/lib/index.js:19:22
我分叉了这个存储库:github.com/0xProject/0x-launch-kit-backend
解决方案
这个错误是由于依赖问题引起的。0x 协议启动工具包使用“@0x/contract-addresses”包作为合约包装器。
这是一个非常棘手的解决方案。
将 0x-launch-kit-backend (v2)克隆到与 0x-monorepo 相同的父目录中。不要安装依赖项!
打开 yarn.lock 文件并将所有行 "@0x/contract-addresses" "^3.0.1" 替换为 "@0x/contract-addresses" "file:../0x-monorepo/packages/contract-addresses"。
现在使用 --frozen-lockfile 标志安装依赖项
$ yarn install --frozen-lockfile
然后它将解决问题。
推荐阅读
- reactjs - 在 App.js 中出现奇怪的错误“')' expected.ts(1005)”
- c# - 如何在asp.net核心的startup.cs文件的配置方法中更改范围服务的属性值
- javascript - Redux Toolkit:状态在 reducer 中显示为 Proxy / undefined
- spring-security - 后端 Spring 安全性中未处理 JWT 令牌
- in-app-purchase - Flurry 和 IAP 冲突
- reactjs - 将 React 类组件转换为函数式组件
- amazon-s3 - Ceph S3 用户和子用户权限如何协同工作?
- assembly - x86 汇编,打印 4 个字符串。奇怪的输出
- javascript - 变量没有通过 ajax 从 javascript 传递到 php
- javascript - 在 div 中仅显示一次数组的唯一值