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
0
votes
0answers
15 views

Who is the msg.sender when a library makes a call()

I have a library that is making a call to an external address like this externalAddress.call(callData) This callData is calling a function of another contract that is utilizing the msg.sender value. ...
0
votes
1answer
28 views

How to convert in-memory static array to calldata static array?

I have a contract called Erc20Recover in which I have the following function: pragma solidity >=0.8.0; contract Erc20Recover { function _setNonRecoverableTokens(IErc20[] calldata tokens) ...
0
votes
0answers
6 views

Getting a specific var of <class 'web3.datastructures.AttributeDict'>

I have this code that is printing out all the vars of the class; however, I am only interested in the "input" var. Is there an easy way to access this this "'input': '...
1
vote
1answer
17 views

Where are value-type function arguments stored in Solidity?

When we define a function, say test(uint256 val). I would presume val would be implicitly defined in memory. But what if we change the funtion visibility modifier, does that change the location of ...
0
votes
1answer
14 views

Data location memory or calldata [duplicate]

Can someone tell me how to solve this problem? I am not advanced and cannot figure it out.
1
vote
0answers
14 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
178 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
2answers
323 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
61 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
30 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
43 views

Data location specification and bytes32

Why is data location not required to be specified for bytes32?
0
votes
1answer
89 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
28 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
74 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
41 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
114 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
300 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
31 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
524 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
80 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
74 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
66 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
1answer
174 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
55 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
43 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
133 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 ""...
3
votes
2answers
726 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,...
2
votes
1answer
2k 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
1k 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
61 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
42 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
28 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
482 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 ...
49
votes
1answer
13k 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
48 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 ...
10
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
50 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
22 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
118 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
413 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
90 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
910 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
276 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
723 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
280 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
998 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 { ...