near protocol如何区分合约?
How does near protocol distinguish between contracts?
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);
}
}
near协议如何区分合约?
如果其他一些合约有set_status函数怎么办,它将调用哪个合约函数。另外,如果我重新部署合同和 运行 功能怎么办。它会调用哪个合约函数?
以下是您需要了解的内容,希望能解决这个问题:
- 每个部署到 NEAR 的合约 必须消耗 1 个账户。
- NEAR 上的每个账户 必须有 0 或 1 个合约。
- 帐户名称遵循类似 DNS 的模式,其中网络为顶级
your-account.testnet
可能是您在 TestNet 上的主要开发者帐户
contract-v1.your-account.testnet
可能是您编写的合同的 v1
your-token.your-account.testnet
可能是你控制的 fungible token
使用我们的示例时,部署过程使用 near dev-deploy
命令,该命令分 2 步完成 4 件事(参见来自 NEAR Explorer 的附图)
步骤1(批量交易)
- 1.1。创建新帐户 (
your-account
)
- 1.2。使用 100 NEAR
从水龙头为账户注资
- 1.3。将
FullAccess
密钥添加到该帐户
步骤 2
- 2.1部署合约(
path/to.wasm
)到新账户(your-account
)
上面包含的部署命令
near deploy --wasmFile path/to.wasm --accountId YOUR_ACCOUNT_NAME
只做最后一步,2.1。
对于第 1 步中的前 3 件事 (1.1 - 1.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 Wallet
预先创建的
您可以查看这些链接了解更多详情:
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);
}
}
near协议如何区分合约?
如果其他一些合约有set_status函数怎么办,它将调用哪个合约函数。另外,如果我重新部署合同和 运行 功能怎么办。它会调用哪个合约函数?
以下是您需要了解的内容,希望能解决这个问题:
- 每个部署到 NEAR 的合约 必须消耗 1 个账户。
- NEAR 上的每个账户 必须有 0 或 1 个合约。
- 帐户名称遵循类似 DNS 的模式,其中网络为顶级
your-account.testnet
可能是您在 TestNet 上的主要开发者帐户
contract-v1.your-account.testnet
可能是您编写的合同的 v1your-token.your-account.testnet
可能是你控制的 fungible token
使用我们的示例时,部署过程使用 near dev-deploy
命令,该命令分 2 步完成 4 件事(参见来自 NEAR Explorer 的附图)
步骤1(批量交易)
- 1.1。创建新帐户 (
your-account
) - 1.2。使用 100 NEAR 从水龙头为账户注资
- 1.3。将
FullAccess
密钥添加到该帐户
步骤 2
- 2.1部署合约(
path/to.wasm
)到新账户(your-account
)
上面包含的部署命令
near deploy --wasmFile path/to.wasm --accountId YOUR_ACCOUNT_NAME
只做最后一步,2.1。
对于第 1 步中的前 3 件事 (1.1 - 1.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 Wallet
您可以查看这些链接了解更多详情: