Questions tagged [rust]
Questions about the Rust programming language, the primary language used in the Substrate ecosystem.
265
questions
1
vote
0
answers
27
views
Polkadot-v1.0.0: sc-network is failing to compile
When specifying sc-network as a dependency:
sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" }
I get a compile error:
error[E0433]: ...
1
vote
0
answers
19
views
I am having issues with implementing swap fees on transfer for DEX
Below is my lib.rs file for the token contract and it uses the Cardinal Cryptography PSP22 sample at https://github.com/Cardinal-Cryptography/PSP22
I am trying to implement swap for the transfer taxes ...
1
vote
2
answers
38
views
How to print / output from within async tokio test
I am writing a new test and when I run this code, the println's do not output in the terminal.
#[tokio::test]
async fn can_fetch_child_keys() {
if std::option_env!("TEST_WS").is_none() {
...
3
votes
0
answers
25
views
How to use enum with associated value(s) in ink smart contract
I have an ink smart contract message that takes an enum as argument. The code is shown below;
#[derive(Encode, Decode)]
#[cfg_attr(
feature = "std",
derive(Debug, PartialEq, Eq, ...
1
vote
1
answer
27
views
Issues with Cross Contracts calls
I am trying to compile my Rust (ink!) source code for an AMM DEX on Substrate (Aleph Zero), but this is the error I am receiving from the logs:
The following are the files:
[azero_trading_pair/cargo....
2
votes
1
answer
39
views
What is the use of Get trait here?
In the referenda pallet, type Tracks uses two trait, Get and TracksInfo
substrate/frame/referenda/src/lib.rs
/// Information concerning the different referendum tracks.
#[pallet::constant]
...
1
vote
0
answers
14
views
How to Modify static buffer size for my ink smart contract to Resolving 'OutputBufferTooSmall' Error for Larger Vectors in ink smart contract
I'm facing an 'OutputBufferTooSmall' error in my [Language/Framework] code when working with larger vectors. I suspect this is related to the maximum allowed input/output sizes. I need guidance on how ...
1
vote
0
answers
14
views
"ContractTrapped" Error even with successful cross-contract call
let result_call = ink::env::call::build_call::<Environment>()
.call(self.escrow_address)
.gas_limit(0)
.transferred_value(0)
...
0
votes
1
answer
32
views
How to handle all the characters in Vec<u8>?
I am using vec to storing the string data on the chain.
So when any user passing few special character it just convert it into the binary data and storing that binary data on the chain. Which we ...
2
votes
2
answers
83
views
How to Retrieve Value by Single Key from StorageDoubleMap in Substrate?
I'm developing a Substrate-based blockchain and using StorageDoubleMap to store label details. The StorageDoubleMap is defined as follows:
#[pallet::storage]
#[pallet::unbounded]
#[pallet::getter(fn ...
1
vote
0
answers
22
views
How to change the gas cost in ink! e2e tests
I want to be able to adjust the gas cost used in specific ink! end-to-end (e2e) tests, but my attempts to do so have consistently resulted in a return value of zero when using the weight_to_fee ...
1
vote
1
answer
44
views
Trait Bound f64: scale_info::TypeInfo Is Not Satisfied
I'm working on a Substrate-based blockchain project and I've run into an issue related to type information and encoding. Specifically, I'm trying to use an f64 field within a struct that also uses ...
0
votes
1
answer
46
views
How to get typed keys when querying a storage map via subxt
The example here https://github.com/paritytech/subxt/blob/master/subxt/examples/storage_iterating.rs
use subxt::{OnlineClient, PolkadotConfig};
#[subxt::subxt(runtime_metadata_path = "../...
2
votes
1
answer
43
views
Is there a simple MHT (Merkel Hash Tree) in-place algorithm?
I want to write a low memory usage algorithm to calculate MHT
2
votes
1
answer
61
views
MultiAddress to Address String
I'm trying to retrieve the author's address as a string, and I've successfully obtained the MultiAddress using the following code:
let validator_address = if let Some(author_multi_address) = ...
0
votes
1
answer
66
views
how to remove Mapping storage when tuple is used as input
Lets assume we have an ink! smart contract
On a vanilla Mapping
alpha: Mapping<[u8;32], Astruct>
we can use
self.alpha.remove(&somehash)
My question is this:
if we have the following ...
1
vote
1
answer
48
views
Calculate Session/Epoch time remaining
I've seen some websites display the estimated time remaining for the current session/epoch. Is there a Rust call for this? Is there a sample of that code?
0
votes
0
answers
55
views
Rust Compile Error: Unresolved imports crate::pallet, crate::types::Types::Config
I am working on a Rust project where I have multiple modules. I'm facing an issue with unresolved imports when I try to compile my code. Here's the relevant code structure:
types.rs
pub mod Types {
...
2
votes
1
answer
98
views
Is it permissible to retrieve the value of a private field within a struct from one pallet while working with another pallet?
I am developing a cross-chain NFT transfer pallet that involves transferring both item metadata and collection metadata. To accomplish this, I need to access the data field within the ItemMetadata ...
0
votes
1
answer
34
views
Deriving Contract Reference from `ink::trait_definition`
Is it possible to create a Contract Reference to perform a Cross-Contract call from ink::trait_definition?
If it is, how can I do so?
If it is not, why it is not possible? It seems strange that we can ...
1
vote
1
answer
29
views
Get the block timestamp using subxt
I am using subxt to get the block details, including the block number, hash, parent hash, timestamp, events and the extrinsics.
I am able to find most details, except the timestamp. Is there a way to ...
1
vote
1
answer
29
views
Need help in Ink e2e tests
I need help with that code. Can anyone pls help me out ??
mod p{
#[ink(storage)]
pub struct Foobar {
/// Stores a single `bool` value on the storage.
value: ...
2
votes
1
answer
95
views
panicked at 'assertion failed: `(left == right)`
I am having a setup of relay chain and two parachains are connected to it, I was running some test cases and during that i encounter an error
thread 'test::...
1
vote
1
answer
31
views
Substrate node template build errors and rustup version
Once in a while, doing a rustup update will break the substrate node template, the challenge then becomes to identify the rustup release compatible with the latest node-template and downgrade.
is this ...
2
votes
1
answer
62
views
Incompatibility between subxt_signer and subxt
https://github.com/paritytech/subxt/blob/master/subxt/examples/tx_basic.rs
I want to call a function in my substrate pallet. I am using the
substrate-node-template
subxt
subxt_signer
use subxt::{...
2
votes
1
answer
107
views
Problem with timestamps in governance platform
I have governance platform written in ink!, where I can create poll with pollId, number of options, and with poll_start_time and poll_end_time. And this is fine.
So when poll is started I can't call ...
1
vote
1
answer
30
views
How to get and modify cross-chain asset in contract?
I am preparing to create a smart-contract on Astar using ink! programming language. The contract's main logic involves modifying the cross-chain asset USDT on the statemint chain. After going through ...
1
vote
2
answers
88
views
Reading contract value returns null
Facing an issue while trying to query for a value in my contract. The value keeps getting retuned as null with an error. However, it works fine on substrate Contracts UI
Front end Dapp :
const ...
0
votes
1
answer
70
views
Scalecodec: How can I get the equivalent of Decode in Python, instead of DecodeAll?
When using the Python script:
timestamp = ScaleDecoder.get_decoder_class('Timestamp', ScaleBytes(timestamp_bytes_array)).decode()
it seems that the decoder expects the size of the array to be exactly ...
1
vote
3
answers
59
views
How to call PSP22::approve function from Frontend
Any guidance on how to call my psp22 approve function from the front end ? This is currently how I'm doing it but it doesn't seem to give increased allowance (although its successful) :
import { ...
0
votes
1
answer
66
views
Encountered incremental compilation error
I have encountered following error from time to time while compiling substrate-node-template
error: internal compiler error: encountered incremental compilation error with mir_built(76e5305fbe3bf3e0-...
0
votes
1
answer
20
views
error: Invalid generic declaration, trait is defined with instance but generic use none
I want to make a storage for the pallet but I'm getting this error
/// The target parachains to ping.
#[pallet::storage]
pub type Targets<T:Config> = StorageValue<
_,
BoundedVec&...
1
vote
1
answer
29
views
New to Rust: Seeking Clarification on RuntimeEvent Type Resolution in Substrate-Parachain-Template
I'm a newcomer to Rust and have been working with the Substrate-Parachain-Template. So far, I've managed to get everything to compile and run without issue, which is a good start.
However, I've come ...
0
votes
3
answers
107
views
Get SS58 Address from public key
I have my hex public key, how can I convert it to an SS58 Address?
I have found the snippet to do it using PolkadotJS here: How to convert Public key (hex) to SS58 Address in JavaScript / Polkadot-JS? ...
3
votes
2
answers
171
views
How node and runtime are connected?
When we run a substrate client cargo run -- --dev we run a substrate-node. The business logic is defined on the pallets composed by construct_runtime! inside the runtime. So which part of the node is ...
3
votes
0
answers
91
views
Not enough data to fill buffer
When running an API function using rust, we get this error:
GenericError { reason: "Failed to get unsigned proposals: FailedToDecodeReturnValue { function: \"DKGApi_get_unsigned_proposals\&...
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 ...
3
votes
1
answer
74
views
Persistent overuse of system resources by rust-analyzer
After limiting the number jobs in order to handle the amount of resources used by rust-analyzer it keeps using all cores so my computer ends up hanged out:
In addition, I've noticed that several ...
2
votes
1
answer
41
views
Why does compiling substrate require nightly toolchain?
rustup target add wasm32-unknown-unknown --toolchain nightly
Why can't the stable toolchain be used to compile, what I beleive is the runtime to WASM? Why is nightly needed?
3
votes
2
answers
71
views
implement trait on a type
I want to implement pallet-assets on a type which is:
pub trait Config<I: 'static = ()>: Config {
type RuntimeEvent: From<Event<Self, I>> + IsType<<Self as Config>::...
3
votes
2
answers
179
views
Specialization impl does not specialize any associated items
I'm fairly new to Rust and ink! itself.
I'm trying to compile and build an extremely basic PSP22 Contract.
I get the following error when I compile & build:
(running cargo +nightly contract build)
...
2
votes
1
answer
104
views
Error while trying to run e2e rust ink! tests
Im getting the following error while trying to run e2e rust ink! smart contracts tests:
#![feature(min_specialization)] using the following command: cargo test --features e2e-tests
Im using the ...
2
votes
1
answer
95
views
How to Implement MaxEncodedLen Trait for Structs Containing Vec<u8> in Rust
i'm trying to create a blockchain runtime module using Substrate. I have defined a few data structures with the #[derive(MaxEncodedLen)] attribute, but I'm running into a problem when trying to ...
5
votes
2
answers
152
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-...
3
votes
1
answer
114
views
Subxt - Catch Extrinsic Error
I am doing sudo call using this example Making sudo call using subxt:
let found_event = api
.tx()
.sign_and_submit_then_watch_default(&tx, &bob)
.await?
....
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
137
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(...
1
vote
1
answer
29
views
Calculation gives the wrong result
After doing a simple calculation in rust ink! 4.0 smart contract, the result is incorrect and doesn't match the expected result.
Here is the simple formula:
let a0_balance_mul:U256 = U256::from(...
4
votes
1
answer
46
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
1
vote
1
answer
84
views
What is distinction between self (lowercase) and Self (uppercase) In Rust?
I am trying to fetch caller address in ink smart contract to apply some checks.
let owner = self._check_token_exists(&id)?;
let caller = Self::env().caller();
I am confused which one i should use ...