Questions tagged [rust]
Questions about the Rust programming language, the primary language used in the Substrate ecosystem.
264
questions
14
votes
2
answers
1k
views
Why do we need #![cfg_attr(not(feature = "std"), no_std)]
This attribute is applied to the item it is defined in and conditionally applies the no_std attribute if we are not using the "std" feature. Why do we need this and in which cases would the ...
11
votes
3
answers
557
views
How to have a mapping in a custom structure inside an ink! contract?
I'm a newbie with rust and substrate. I'm currently trying to build a PSP34 compatible smart contract (NFT) for documents. In this contract, I'd like to have the following structure:
#[derive(Default, ...
10
votes
3
answers
365
views
Why is it a bad idea to use String in an ink! smart contract?
I've heard that it is a bad idea to use Rust's String type in an ink! smart contract.
Why is this so? And what is your recommendation to use instead for typical use cases of String ‒ so parsing input ...
10
votes
6
answers
392
views
How to call extrinsic functions externally from rust?
I need to call extrinsic functions, for example utility -> batch(calls) or utility -> batchAll(calls). Which library do I need to use for this?
I can't find those examples in the web.
10
votes
4
answers
1k
views
ERROR: Loading of original wasm failed
I having some trouble running the Flipper example from the Ink! webpage.
The cargo contract build outputs the following error log:
ERROR: Loading of original wasm failed
Caused by:
0: Loading of ...
9
votes
2
answers
273
views
Trait bounds not satisfied for `Balance` type
I was following this guide Configuring Genesis for Balances.
In my parachain, I replaced T::Balance with BalanceOf<T>
type BalanceOf<T> =
<<T as Config>::Currency as ...
9
votes
3
answers
189
views
Error adding Custom RPCs for pallet
I've been trying to add some rpc calls available for my node, but an error related to the 'getrandom' module appears (even tho I'm not even using it).
I have a very simple pallet that creates and ...
8
votes
1
answer
132
views
How to setup and RPC call that accepts a u128 input?
I cannot seem to setup a RPC call that accepts a u128 param.
I can input the following
let u128Input = new BN("10")
let output = await api.rpc.template.testRpc(u128Input);
but get an error ...
7
votes
2
answers
159
views
What is Gossamer and how does it compare to Substrate?
Gossamer is a Go-lang implementation of the Polkadot host. What does this mean, and how does this compare to Substrate?
Could Gossamer be the Go-variant of Substrate for developers exploring ...
7
votes
1
answer
180
views
How do I verify a signature signed using Polkadot.js app with rust code
I am trying to write a discord bot using rust/serenity to verify signature signed using polkadot.js app. I use schnorrkel crate, wrap the message in <Bytes>...</Bytes> and use the verify ...
7
votes
1
answer
141
views
How to perform arithmetic operation on Option<BalanceOf<T>>?
Hello all developers and community members, I am very new to Substrate and Rust.
I am creating a pallet for NFT marketplace.
for storing out the NFT details I've created a struct as mentioned below.
...
7
votes
1
answer
102
views
How to programmatically get current unbonding information on the Polkadot relay chain?
Using either a Rust or JavaScript client library I would like to get the amount of DOT that is currently being unbonded on the relay chain.
Some staking information is available in the Polkadot JS ...
7
votes
1
answer
227
views
usage parity-db instead of rocksdb
in the substrate-node-template case , I don't want to compile rocks-db at all. how it would be possible compile parity-db instead of rocks-db?
7
votes
1
answer
163
views
Filter Events with subxt over multiple threads
I'm working on a project that uses Substrate in the backend. The System I am working on is written with Elixir and so I have a rustler NIF (Erlang/Elixir Native Function interface) for interacting ...
6
votes
1
answer
254
views
With subxt how can I subscribe to watch extrinsics?
There's some great examples of how to use subxt to listen to all events.
Polkadot-js events screen seem to show events grouped by the extrinsic that created them. Can I do the same in rust?
(if not ...
6
votes
1
answer
60
views
Is it possible to extend Prometheus metrics in Substrate?
Is it possible to register custom metrics to be exported via Prometheus? Specifically, we would like to write values specific to the runtime - e.g. TVL, average throughput, etc..
5
votes
2
answers
79
views
Trying to implement U256 in rust ink! 4.0
I've implemented use primitive_types::U256 and now I'm trying to return a U256 int as a result from one of my functions, but I'm getting the following error: the trait TypeInfo is not implemented for ...
5
votes
1
answer
357
views
Is possible to extract the runtime version from WASM file?
Is possible to extract the runtime version from the WASM file?
Sometimes, I want to verify the WASM file's content locally.
5
votes
1
answer
221
views
How to set base_fee and len_fee to zero?
I was trying to modify the transaction fee and for that I only want the congestion of the network. In FeeDetails, that is present in the transaction-payment pallet, we have three fields, i.e., ...
5
votes
1
answer
69
views
How to I submit UTF-8 text to an extrinsic?
I'm making a pallet that takes a string as the input. I tested it and it works well with English words, but when I try Vietnamese, the input box turned red and I couldn't submit the extrinsic. How can ...
5
votes
1
answer
609
views
Cannot infer type for type parameter 'T'
I have a function using the following 2 types:
pub type BalanceOf<T> = <<T as pallet::Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance;
pub ...
5
votes
2
answers
103
views
Problem with Vec using ink
I'm trying to make some changes to the Flipper contract, trying to use a vector like the documentation say's it should be imported:
#[ink::contract]
pub mod flipper_plus {
use ink::storage::...
5
votes
3
answers
246
views
Missing trait problem
Hello the following code snippet is giving me headaches:
mod items;
pub use super::*;
pub use crate::roles::items::*;
pub type BalanceOf<T> = <<T as pallet::Config>::Currency as ...
5
votes
2
answers
151
views
"ERROR: Loading of original wasm failed" after upgrading rustup
I'm getting the following error when compiling a rust ink! 4.0;
ERROR: Loading of original wasm failed
It's started happening to me after I rustup update and now my rustc versions are:
stable-...
5
votes
2
answers
640
views
How do I move my USDC/USDT to statemine?
Hi I heard USDT and USDC is now on statemine. How do I get access to that?
Assuming I have USDT on my ERC20 wallet, how do I get that to a substrate-based chain/parachain?
5
votes
1
answer
120
views
How to create an iterator for a child storage trie?
I have a Storage Map which I am using to to store structs and a Storage Value to use for indexing this:
#[pallet::storage]
#[pallet::getter(fn consequences)]
/// Storage map holding basic Consequence ...
5
votes
2
answers
117
views
Logging best practice for pallet extrinsics
What is the best practice for logging in pallets? Is there any overhead leaving them in at a debug/trace level? Or should we never use them outside of development?
e.g.
log::debug!("")
5
votes
1
answer
268
views
Build a docker file/image for my new pallet
I am using substrate-node-template and recently I added a new pallet.
Now I need to build a docker file because I would like to send it for testing.
Any information?
Thank you.
4
votes
2
answers
158
views
std in conditional compilation [closed]
#![cfg_attr(not(feature = "std"), no_std)]
Does the "std" above reflect the rust standard library or the std feature defined in the cargo.toml for a given crate?
Also, for many of ...
4
votes
1
answer
287
views
How to return the whole Mapping from a contract method?
I'm a newbie in Rust, Substrate, and blockchain development. I'm developing an ink! smart contract that store a list of items. Since the storage version of Vec is not available yet, I use a Mapping to ...
4
votes
1
answer
133
views
Rust ink. Division wont return a number with float point
I'm trying to calculate a value of token by using division operator,
it will return a number higher then 1, but never returns
here is the code of the price calculation:
#[ink(message)]
...
4
votes
3
answers
93
views
Build the Substrate Kitties Chain Tutorial Cargo Error
I was following the tutorial: https://docs.substrate.io/tutorials/v3/kitties/pt1/
and as said in the tutorial I installed kickstart using: cargo install kickstart
And after that cloned a copy of the ...
4
votes
1
answer
77
views
usage of `#[pallet::constant]` vs `const associated item`
I can have config of my pallet in two different ways:
trait Config: frame_system::Config {
// *--snip
#[pallet::constant]
SomeConstant: Get<u32>,
const ANOTHER_CONSTANT: u32,
}
...
4
votes
2
answers
877
views
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
I am using the latest substrate-node-template few weeks back it was building fine.
But the same project isn't building now, I did not do any changes. Error is occurring in runtime interface. I am ...
4
votes
1
answer
214
views
How can I decode an extrinsic or event dynamically in rust?
How can I decode an extrinsic or event dynamically in rust? (I want to be able to decode across all parachains)
A lot of the heavy lifting seems to be frame-metadata and scale-info. There's a desub ...
4
votes
1
answer
127
views
How do `subxt` and `substrate-api-client` libraries differ?
I understand that there are two main Rust client libraries for Substrate:
subxt
substrate-api-client
I've checked out the examples for both libraries and it seems to me that they are mostly the same....
4
votes
1
answer
93
views
Rust Ink - Execution finished with debug buffer: panicked at 'called `Result::unwrap()` on an `Err` value: CalleeTrapped'
I'm trying to make cross contracts calls on already deployed contract, I'm running the local subtrate node in debug mode, and I'm getting the following message when trying to preform cross contracts.
...
4
votes
1
answer
182
views
Balance division in Substrate runtime
I am a bit confused with how to do operations with the Balances in the Substrate runtime. More concrete the division.
The example I want to implement is similar to the Lottery pallet but with shared ...
4
votes
1
answer
203
views
T::Balance ... associated type `Balance` not found for `T`
I was following this guide:
Configuring Genesis for Balances
https://docs.substrate.io/how-to-guides/v3/basics/genesis/
but got this error:
associated type Balance not found for T, associated type ...
4
votes
2
answers
87
views
How do i pass a `Vec<u8>` as argument to a contracts function, using the command line(cargo contract)
When using cargo contract to call contracts, in all the examples i've seen, its either been AccountId or boolean or integers(u & i). I need to pass a Vec<u8> to my contract function. I've ...
4
votes
1
answer
45
views
Pallet generate store is deprecated how to avoid this warning and compile the code?
I am getting error in #[pallet::generate_store(pub(super) trait Store)] which is showing deprecated warning due to which I could not compile my custom pallet is there any solution
4
votes
1
answer
120
views
Is there any way to access the accountid inside the offchain worker?
I am coding a pallet in which I need to know who I am inside a offchain worker to check if I should send a transaction or not. Right now I have access to the account in the send_signed_transaction ...
4
votes
2
answers
56
views
WebAssembly runtime file into ValidationCode
I have a CLI tool that gets a WebAssembly runtime file:
let validation_code_content = fs::read_to_string(path_validation_code)
.expect("Should have been able to read the validation code ...
4
votes
1
answer
18
views
error[E0282]: type annotations needed --> /libp2p-noise-0.32.0/src/protocol/x25519.rs:221:45
While running this project https://github.com/jimmychu0807/substrate-offchain-worker-demo
I'm geting this error:
error[E0282]: type annotations needed --> /libp2p-noise-0.32.0/src/protocol/x25519....
4
votes
0
answers
132
views
How to solve this Failed to compact generated WASM binary.: Error(UnknownOpcode(192))
For one assignment I have run the command cargo build --release so that I can build the pallet. After that I was getting the error
After that according to this- Error Building Substrate contract Node(...
4
votes
1
answer
76
views
How to parse an ss58 address in no_std rust
In another question
How do I work with SS58 encoded addresses? the same question was addressed, this is however about how to do it without the std lib.
How to convert an ss58 stored in a String to an ...
3
votes
2
answers
41
views
How can I have some of the functions in separate file?
I want to keep some helper functions in a separate file. How can I do that?
impl<T: Config> Pallet<T> {
fn get_citizen_accountid(citizenid: u128) ->
fn get_citizen_id(...
3
votes
1
answer
65
views
Why using value and value reference as parameter in functions of StorageValue and StorageMap are both OK?
In my coding, I find that I can use a value or a value's reference as parameter in function StorageValue::put(). The same case is in function StorageMap::insert(). In my view, I can not input a value ...
3
votes
1
answer
274
views
What is the difference between dependencies and dev-dependencies in Cargo.toml
My question is What is the difference between dependencies and dev-dependencies in Cargo.toml. And for developing pallet, now I have to declare crate in dependencies
3
votes
1
answer
165
views
Emiting events does not work with cross contract calling
When using cross contract calling on another contract which also emits
events the events of the original contract do not work anymore.
I get the following error.
error[E0283]: type annotations needed
...