Substrate 在承印物油墨上!,为什么是";“字符串”;通过以下方式获得的值:;RPC调用";总是一样吗? 保存“字符串”值的“Simple ink!Program”是 执行 我上传并部署在本地的基板链上 我调用“set_test_data”函数,通过调用 “获取测试数据”功能 我使用“Polkadot/基板入口” 即使我设置了各种数据,可以获得的数据总是 同样的 为什么?
这是相同的值Substrate 在承印物油墨上!,为什么是";“字符串”;通过以下方式获得的值:;RPC调用";总是一样吗? 保存“字符串”值的“Simple ink!Program”是 执行 我上传并部署在本地的基板链上 我调用“set_test_data”函数,通过调用 “获取测试数据”功能 我使用“Polkadot/基板入口” 即使我设置了各种数据,可以获得的数据总是 同样的 为什么?,substrate,rust-ink,Substrate,Rust Ink,这是相同的值 {"vec":{"elems":"0x3c5b6f626a656374204f626a6563745d"}} 这是我的密码 #![cfg_attr(not(feature = "std"), no_std)] use ink_lang as ink; #[ink::contract(version = "0.1.0")] mod test_contract { use
{"vec":{"elems":"0x3c5b6f626a656374204f626a6563745d"}}
这是我的密码
#![cfg_attr(not(feature = "std"), no_std)]
use ink_lang as ink;
#[ink::contract(version = "0.1.0")]
mod test_contract {
use ink_core::storage;
use ink_prelude::string::String;
/// Defines the storage of your contract.
/// Add new fields to the below struct in order
/// to add new static storage fields to your contract.
#[ink(storage)]
struct TestContract{
test_data: storage::Value<String>,
}
impl TestContract{
/// constructor of TestContract
#[ink(constructor)]
fn new(&mut self) {
}
#[ink(message)]
fn set_test_data(&mut self, value: String) {
self.test_data.set(value);
}
#[ink(message)]
fn get_test_data(&self) -> String {
self.test_data.clone()
}
}
}
- 接下来,我实现了这段代码,并执行了
- 在这种情况下,我得到了错误的值
- 我猜Polkadot/Subscriber Portal无法发送正确的值
- 值为“{”vec:{”elems:“0x084e4f”}”
- 你能告诉我你的意见吗
?<[object Object]
?我使用“Python2”将“string”更改为“hex”。例如,“japan.encode('hex')”。结果“6a6170616e”设置为“0x6a6170616e”,并设置为“set_test_data”函数的参数。在“Polkadot/Subscriber Portal”中,字符串参数似乎是以十六进制设置的,所以我正在这样做,但我不知道正确的方法。我继续调查。我添加了结果。我认为这是一个Polkadot/基板门户错误,但是关于它呢?你是说从一开始?
#[ink(message)]
fn set_test_data(&mut self, value: String) {
//self.test_data.set(value);
if value == String::from("ABC") {
self.test_data.set(String::from("ABC"));
} else {
self.test_data.set(String::from("NO"));
}
}
#[ink(message)]
fn get_test_data(&self) -> String {
self.test_data.clone()
}
?<[object Object]