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
0answers
11 views

Function argument sizes and gas usage

Is there any penalty for the amount of data passed to a function? Asking because I see non-linear behavior in gas usage during testing when sending more than 31 items in the array. struct Payment { ...
1
vote
1answer
30 views

How to instantiate a calldata array?

I know how to instantiate a memory array. Looks like this: address[] memory users = new address[](1); users[0] = address(0x0); But I cannot create a calldata array in this same fashion. Any pointers?
1
vote
1answer
121 views

How does Uniswap allow a user to specify which tokens the user wants to swap in this low level function?

I'm looking at the function swap that allows a user to swap token0 for token1 from Uniswaps UniswapV2Pair contract - https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2Pair.sol. ...
0
votes
1answer
30 views

Logic in approveAndCall function for erc20 token deprecated & not working

I am following along with a older tutorial on making an ERC20 token in order to learn Solidity a little better. Since the tutorial is old, I've had to change a lot of things so far to get it up to ...
0
votes
1answer
16 views

How to execute a transaction within a contract given to address, and calldata?

Let's say I've got a contract called MyContract. My contract has a function which receives calldata and an address for another contract, called OtherContract I want to be able to take the calldata and ...
1
vote
1answer
20 views

Data location specification and bytes32

Why is data location not required to be specified for bytes32?
0
votes
0answers
26 views

Incorporate calldata inside smart contract

I'm currently trying to use the 1inch API documented here: https://docs.1inch.io/api/nodejs-web3-example I would be interested in using the 1inch pathfinder api from a solidity smart contract to make ...
0
votes
1answer
13 views

Check if calldata contains string

I have a function that is called with some data - "SOMETHING". function checker(address _from, uint _value, bytes calldata _data) external{ //HOW to check if _data contains "...
0
votes
0answers
43 views

how to pass fix size array via interface in solidity 0.4.25

I used the following code interface test{ function testfunction(uint[20] memory P, uint[20] memory Q) external returns(uint,bool,uint); } It gives the error Location has to be calldata for external ...
1
vote
0answers
36 views

Error in signing a raw transaction javascript — calling a contract + attaching some msg.value

Here, I am trying to call a function(embrace) on a smart contract on Ropsten that needs two parameters and msg.value of 0.01 ether. But it's showing up the error that the msg.value is not sufficient. ...
0
votes
1answer
12 views

Why did I get an error about using memory keyword in function getname?

// SPDX-License-Identifier: MIT pragma solidity ^0.7.0; contract s12 { uint public age; string public name; bool rollno; constructor() public { rollno= false; } ...
0
votes
1answer
95 views

Why does this call to DSProxy fail?

Take these two contracts, both deployed on Kovan and with the source code verified: DSProxy: 0xa92Bed719071A4d33B0B348513E7e866a6ff6B3F TargetContract: 0xE3CD2e7a628b57d3e50c5f7B921182f676721bDF And ...
0
votes
0answers
13 views

Creating several objects in the same transaction (data repetition)

I'm working with genetic algorithms and I need to create a population. Currently I have this function: /// @notice Create a new individual function createIndiv(uint _popSize) public{ for(uint i = ...
0
votes
1answer
197 views

Easiest way to call an implementation function from a proxy contract in Remix

I have the following code in my remix.ethereum.org project: pragma solidity ^0.6.10; // SPDX-License-Identifier: Unlicensed import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/...
0
votes
0answers
29 views

Proxy delegation contract doesn't work

I'm trying to make a proxy to make a contract that I can change for an ethereum project. I did what it says here: https://hackernoon.com/how-to-make-smart-contracts-upgradable-2612e771d5a2 but it ...
1
vote
1answer
322 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
45 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
63 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
39 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
114 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
48 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) { ...
1
vote
2answers
40 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
107 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
369 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
1k 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 : "...
3
votes
1answer
862 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
53 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
39 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
26 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
348 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 ...
31
votes
1answer
9k 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
42 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 ...
8
votes
1answer
2k 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
1k 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
38 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
87 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
369 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
79 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 { ...
6
votes
1answer
662 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
262 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
610 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
258 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
908 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
1k 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
2k 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 ...
11
votes
1answer
8k 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
78 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
760 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
405 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 { ...