Questions tagged [calldata]

Questions about the "data" part in a transaction, which can be accessed by "msg.data". web3.eth.getTransaction calls this field "input".

Filter by
Sorted by
Tagged with
1
vote
1answer
31 views

Why does retrieving stored data cost so much compared to using calldata in Solidity?

I have a function that I need to pass an arbitrary length array of addresses to. In remix, just calling a function that has an address[] costs around 30k gas for an array of 5 addresses: function fun(...
0
votes
1answer
27 views

Return multiple values from diferent smart Contracts

I have two contracts. The first contract has a function called get() that returns this values: uint _value1 address _value2 address _value3 string memory _value4 string memory _value5 uint _value6 ...
2
votes
1answer
34 views

Get return value of a low level call

I'd like to get the return value of a low level call. (bool success, ) = address(0x1234...7890).call{value:0}(callData); This post discusses a solution that sounds like it should work, but it doesn'...
0
votes
0answers
20 views

Is there a way to know if a Solidity method will revert?

I have some solidity methods in my contract, and when i make a send in web3.js i would like to know if there is a way to know if the functions are going to revert by using call. Per-example , in ...
0
votes
0answers
25 views

Data location must be “calldata” for parameter in external function,

I'm getting the following error: Data location must be "calldata" for parameter in external function, but "memory" was given. for the following function: function _registerAirline(address ...
0
votes
1answer
32 views

Error with this.balance

pragma solidity 0.5.9; contract Testing{ function participate()public payable{ uint winner = 9; require(msg.value == 0.1 ether); if ( winner==9) { ...
0
votes
1answer
24 views

When i call a function: Error: Returned error: VM Exception while processing transaction: invalid opcode

I work on Truffle. My contract is A and its function is infoRep(). infoRep() returns some data. Whenever i call the function in Truffle console the below error occurs: Error: Returned error: VM ...
1
vote
2answers
50 views

Correct syntax for require required

I am getting following error message with require statement: Error: Wrong argument count for function call: 0 arguments given but expected 1. This function requires a single bytes argument. Use ""...
2
votes
2answers
64 views

How to generate calldata for a function

I have got as far as generating the method ID for the function: function transfer(address src, address dst, uint256 amount); The method ID would be: bytes4(keccak256("transfer(address,address,...
1
vote
1answer
155 views

Why Remix IDE asks for CallData and what value we have to give? [duplicate]

In my several programs which I ran through remix IDE, I got a CallData text box. I don't know what value I have to give to this Calldata text box. I tried the following: from: address : "...
2
votes
1answer
179 views

Remix IDE: What is the purpose of Calldata and Transact Tab

I am trying to execute the following code on Remix IDE. pragma solidity ^0.5.4; contract GuessTheNumberChallenge { constructor() public payable { require(msg.value == 1 ether); } ...
0
votes
1answer
31 views

How to call function via interface from another contract when calldata type is used

I have declared the following interface: interface Test { function airDropMultiple( address[] calldata recipients, uint[] calldata tokenAmount ) external ...
0
votes
2answers
35 views

Mining with additional data

i'm a beginner in using blockchain. Based on my knowledge, there are two ways blocks are created, mining and sending transactions. As there is an explanation to input additional data while sending a ...
0
votes
0answers
24 views

Call Type Explained [duplicate]

I have yet to come across a well explained definition of all the call types in one place. * One of call * Callcode * Delegatecall * Staticcall Would be very grateful if someone could explain the ...
1
vote
1answer
124 views

What data is in 'calldataload'?

I want to parse event logs that are generated by the contract shown below, which assigns different sections of calldataload to the 4 Topics, and the Data section, of the event logs. Topic 0 receives ...
9
votes
1answer
922 views

When should I use calldata and when should I use memory?

I have seen people use both memory and calldata keywords when writing Solidity. Specifically, they are used when declaring function parameters. When should I use memory and when should I use calldata?...
0
votes
1answer
34 views

How to get the call graph of a mainchain transaction?

Simple question, but I couldn't find the answer. There are transactions like this one which involve many chained contracts. But as storage modify the functions being called and calldata doesn t ...
4
votes
1answer
496 views

What is a function selector?

I am reading an article, it says: To enable deployment on the Ethereum platform, the contract functions are compiled into EVM bytecode and a piece of code called function selector is added, ...
0
votes
1answer
385 views

member not found or not visible after argument-dependent lookup in mapping

pragma solidity >=0.4.0 <0.7.0; contract New{ mapping(address => string) public users; string name; address[] public userAddress ; //string[] public userNames; ...
0
votes
0answers
34 views

Call Arguments? and Explicit call?

I am trying to understand the arguments of the built-in Solidity's (or EVM's: I am not sure) call function. I know it has 4 arguments. I am trying to understand the call function at: Syntax Error in ...
1
vote
0answers
21 views

Calling private function from external - where are referenced type parameters stored in the end?

Let's assume we have something like: contract C { function externalFunction(uint256[] calldata data) external { privateFunction(data); } function privateFunction(uint256[] memory data)...
0
votes
1answer
42 views

pass storage through interface to library

Here is what am i doing: There is a library, accept storage argument as parameter, then do some math and return the result. And there is a contract to call the function in the library, and an extra ...
0
votes
2answers
226 views

Unable to make a transaction with Data using Java api ethSendRawTransaction

I am trying to make a transaction between two different accounts using Java. It works perfectly fine as long as I am not using "Data" parameter. My intent is not to call a smart contract but to make ...
2
votes
1answer
60 views

Understanding first evm word of reference types in assembly

Given the following function: function getArrayItems(bytes calldata) external returns ( bytes4 _signature, bytes32 _wutIsThis, bytes32 _length, bytes32 _firstItem ) { assembly { ...
4
votes
1answer
303 views

can anyone help to explain calldataload

In the Solidity documentation, the definition of calldataload is: calldataload(p) call data starting from position p (32 bytes) But I am really confused by what is call data. Is the call data of ...
1
vote
0answers
128 views

Proxy contract DELEGATECALL to pass a DYNAMIC array to a function in the target contract

I'm trying to get a Proxy contract to correctly do a delegatecall to a function in another 'target' contract. The problem is, that I need to pass a dynamic array as the parameter to this function. Q: ...
1
vote
3answers
279 views

Calldata with too many parameters

While reading https://solidity.readthedocs.io/en/v0.4.21/abi-spec.html#abi I was just thinking what happens when calldata contains more parameters/data than the function expects (I know first ...
1
vote
0answers
202 views

How to decode Tx data? Online tool?

Is there a fast way to decode the data returning from a Smart Contract call? I know there are github projects with JS libraries to decode this kind of data (such as https://github.com/ConsenSys/abi-...
0
votes
1answer
652 views

What is Calldata tag needed when a function has a string parameter?

I'm using: pragma solidity ^0.5.0; I have a function as below in my contract: function test(string a) external{ a="apple"; } An error shows up saying I need to add "calldata" to the parameter. ...
1
vote
1answer
641 views

Get the input data of a transaction with web3j

How can I retrieve transaction details (including the input data) from a txHash using Web3j? I tried the following method: public void buscarHhash(Web3j web3, String txHash) throws IOException { ...
1
vote
1answer
1k views

How to access string arguments from calldata in external functions? (0.5.X)

With the introduction of Solc 0.5.X , parameter memory locations for arrays (and strings/bytes) must be made explicit. For external functions, this memory location is required to be specified as ...
7
votes
1answer
4k views

calldata keyword as parameter in solidity v0.5.0 function?

What purpose does the "calldata" serve in this parameter _owners? Is it a new keyword? function setup(address[] calldata _owners, uint256 _threshold, address to, bytes calldata data) Taken from ...
1
vote
2answers
71 views

Thinking through from traditional DB to ETH

I am looking for a data structure kind of like this: [ "data": { "id": 0, "hash" : "5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9", "owner" : 0, "status" : "...
1
vote
2answers
496 views

How calldata is stored in memory?

When I execute this: bytes8 h = 0x000008dfe2f440000733c; t.call.gas(0x7e0b0)(bytes4(keccak256("enter(bytes8)")),0x8dfe2f440000733c0000000,h); the calldata is : 0: ...
2
votes
1answer
280 views

How does a contract's constructor work and load input values?

I set up the following contract: pragma solidity ^0.4.25; contract Simplest { uint x; constructor(bool _lucky) public { if (_lucky == true) { x = 7; } else { ...
0
votes
1answer
393 views

Solidity: msg.data vs bytes

This is a simple contract that has a function input_data(bytes data) and a simple fallback function that passes msg.data to function input_data. contract test_input_data{ address owner; event ...
2
votes
1answer
310 views

Call function by using bytesData. (call.value()())

Assume I have two contracts: contract A { function test1() public view returns(bool) { return false; } } contract B { function testCall(address addr, data) public view returns(...
0
votes
1answer
674 views

Web3j directly gets string from contract by eth_call

I just have a simple solidity contract: pragma solidity ^0.4.19; contract SampleContract { string value; function SampleContract() public { value = "hello world"; } ...
5
votes
2answers
2k views

What is calldata?

What is calldata? I learned that there are three types of memories: Storage Memory Stack In the Ethereum docs, it says that the function parameters are of type memory by default. However, I've also ...
1
vote
0answers
102 views

delegatecall for Smart Contract versioning

I've a state variable address public current; which stores the address of the latest updated contract. This value can be modified with a function. Then, I've a function of this kind function ...
3
votes
2answers
714 views

How does MetaMask's TRANSACTION DATA work? How to interact with smart contracts by only using MetaMask?

I have this source code pragma solidity ^0.4.21; // Relevant part of the CaptureTheEther contract. contract CaptureTheEther { mapping (address => bytes32) public nicknameOf; function ...
3
votes
2answers
394 views

Solidity CALL and DELEGATECALL: messages and data format

I have some questions about Solidity CALL and DELEGATECALL. I have already read some related threads (link), but found no answers to my doubts. 1) Is there any difference in performing a CALL to a ...
2
votes
1answer
328 views

Assign metadata to a transaction

How can I append some (extra) data to a transaction that calls a contract method (with given parameters)? The transaction has only one 'data' field which is used to serialize the method call. If I ...
1
vote
1answer
810 views

How to send data to smart contract?

I have the variable w1_temp, which i need to send to contract I have the following code: var W1Temp = require('w1temp') var Web3 = require('web3') var web3 = new Web3() web3.setProvider(new web3....
2
votes
3answers
137 views

Can I send data to non-contract address?

Metamask allows to attach data to any transaction. What happens if I send some data with some ETH to existing non-contract address? Is that data recorded on the blockchain? Can I read it later?
1
vote
1answer
678 views

Contract call from a contract from a contract?

As I understand it, it is possible for a contract to call another contract by using othercontractaddress.call(gas_amount).value(eth amount)(tx data). Or in this case sender -> contract A -> ...
6
votes
1answer
410 views

Making call with contract instance vs making call with hashed method ID

As I understand there are two main ways to call a function in another contract. 1.) Using the 4 byte methodID ----> address.call(bytes4(sha3('foo()')) 2.) Using the contract ABI ---> ...
0
votes
1answer
277 views

Update dapp after contract transaction is mined

I made a web app that interacts with a smart contract, using truffle unbox webpack. My contract has a variable called sum and 2 functions: one called answer that increments the sum variable after it ...
4
votes
1answer
3k views

Decode Etherscan.io Contract Input Data

Reading my input data on etherscan, I see each value as hex values. Which is fine to read the addresses. But I would like to read the amounts [1] && [3] as numbers. Contract Method Function: ...
6
votes
2answers
613 views

Is sending some datas in the data field safe?

An airdrop ask to send it 0ETH with 150000 GAS and some datas in DATA field. Is it safe? What could be the aim of this transaction? Thanks.