2

https://examples.near.org/rust-status-message

您可以使用以下方式部署您的智能合约:

near deploy --wasmFile res/status_message.wasm --accountId YOUR_ACCOUNT_NAME

我们使用以下命令调用合约函数 set_status:

near call YOUR_ACCOUNT_NAME set_status '{"message": "aloha friend"}' --accountId YOUR_ACCOUNT_NAME

功能在这里:

#[near_bindgen]
impl StatusMessage {
    pub fn set_status(&mut self, message: String) {
        env::log(b"A");
        let account_id = env::signer_account_id();
        self.records.insert(&account_id, &message);
    }

    pub fn get_status(&self, account_id: String) -> Option<String> {
        env::log(b"A");
        return self.records.get(&account_id);
    }
}

近协议如何区分合约?

如果其他一些合约有 set_status 函数,它会调用哪个合约函数。另外,如果我重新部署合同并运行该功能怎么办。它会调用哪个合约函数?

4

1 回答 1

3

以下是您需要知道的,希望能解决这个问题:

  • 每个部署到 NEAR 的合约都必须消耗 1 个账户。
  • NEAR 上的每个账户必须有 0 或 1 个合约
  • 帐户名称遵循类似于 DNS 的模式,网络为顶级
    • your-account.testnet可能是您在 TestNet 上的主要开发者帐户
    • contract-v1.your-account.testnet可能是您编写的合同的 v1
    • your-token.your-account.testnet可能是您控制的可替代代币

使用我们的示例时,部署过程使用的near dev-deploy命令分 2 步执行 4 件事(请参阅NEAR Explorer中的附加图像)

第一步(批量交易)

  • 1.1。创建新帐户 ( your-account)
  • 1.2. 用 100 NEAR 从水龙头入金
  • 1.3. FullAccess向该帐户 添加密钥

第2步

  • 2.1 将合约(path/to.wasm)部署到新账户(your-account

NEAR Explorer 合约部署交易

您在上面包含的部署命令

near deploy --wasmFile path/to.wasm --accountId YOUR_ACCOUNT_NAME

只做最后一步,2.1

对于第 1 步(1.1 - 1.3)中的前 3 件事,您将需要以下内容:

near create_account a-contract-on.your-account.testnet --master-account your-account.testnet --helper-url https://helper.testnet.near.org

your-account.testnet使用NEAR 钱包预先创建的位置

您可以查看这些链接以获取更多详细信息:

于 2020-05-22T10:01:50.837 回答