首页 > 解决方案 > 错误:受限类型不符合限制类型

问题描述

我的目标是部署一个自定义智能合约,将核心合约(例如 FungibleToken)导入 Flow 模拟器。在流程游乐场中,它可以正常工作,因此模拟器中的预期结果是没有错误的。然而,实际结果是关于受限制类型不符合的无用错误消息:

execution error code 1101: [Error Code: 1101] cadence runtime error Execution failed:
error: restricted type does not conform to restricting type: FungibleToken.Receiver

我的智能合约如下所示:

// ExampleToken.cdc
import FungibleToken from "./FungibleToken.cdc"

我的流 CLI 配置如下所示:

{
    "contracts": {
        "FungibleToken": {
            "source": "./cadence/contracts/FungibleToken.cdc",
            "aliases": {
                "emulator": "ee82856bf20e2aa6",
            }
        },
        "ExampleToken": "./cadence/contracts/ExampleToken.cdc"
    },
    "deployments": {
        "emulator": {
            "emulator-account": [
                "FungibleToken"
                "ExampleToken"
            ]
        }
    }
}

标签: onflow-cadence

解决方案


这个错误的背景是你试图部署自己的核心合约,而你应该只从它们各自的地址导入核心智能合约。

从流 CLI 配置中删除核心合约的部署,如下所示:

    "deployments": {
        "emulator": {
            "emulator-account": [
                "ExampleToken"
            ]
        }
    }

推荐阅读