Contracts
Get Contract ABI for Verified Contract Source Codes
Returns the Contract Application Binary Interface ( ABI ) of a verified smart contract.
https://gatescan.org/api
?module=contract
&action=getabi
&address=0x02d06Ff5867C0797d2b9C338838Dc1c3A8BFfca2
&apikey=YourApiKeyToken
Try this endpoint in your broswer
- Request
- Response
| Parameter | Description |
|---|---|
| address | The contract address that has a verified source code |
{
"status":"1",
"message":"success",
"data":'[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]'
}
Get Contract Source Code for Verified Contract Source Codes
Returns the Contract Application Binary Interface ( ABI ) of a verified smart contract.
https://gatescan.org/api
?module=contract
&action=getsourcecode
&address=0x02d06Ff5867C0797d2b9C338838Dc1c3A8BFfca2
&apikey=YourApiKeyToken
Try this endpoint in your broswer
- Request
- Response
| Parameter | Description |
|---|---|
| address | The contract address that has a verified source code |
{
"status":"1",
"message":"success",
"data":{
SourceCode: `[{"name":"GRC20","content":"\\r\\n// File: contracts/libraries/SafeMath.sol\\r\\n\\r\\npragma solidity =0.6.6;\\r\\n\\r\\n// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)\\r\\n\\r\\nlibrary SafeMath {\\r\\n function add(uint x, uint y) internal pure returns (uint z) {\\r\\n require((z = x + y) >= x, 'ds-math-add-overflow');\\r\\n }\\r\\n\\r\\n function sub(uint x, uint y) internal pure returns (uint z) {\\r\\n require((z = x - y) <= x, 'ds-math-sub-underflow');\\r\\n }\\r\\n\\r\\n function mul(uint x, uint y) internal pure returns (uint z) {\\r\\n require(y == 0 || (z = x * y) / y == x, 'ds-math-mul-overflow');\\r\\n }\\r\\n}\\r\\n\\r\\n// File: contracts/test/GRC20.sol\\r\\n\\r\\npragma solidity =0.6.6;\\r\\n\\r\\n\\r\\ncontract GRC20 {\\r\\n using SafeMath for uint;\\r\\n\\r\\n string public name = 'Test Token';\\r\\n string public symbol = 'TT';\\r\\n uint8 public decimals = 18;\\r\\n uint public totalSupply;\\r\\n mapping(address => uint) public balanceOf;\\r\\n mapping(address => mapping(address => uint)) public allowance;\\r\\n\\r\\n bytes32 public DOMAIN_SEPARATOR;\\r\\n // keccak256(\\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\\");\\r\\n bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;\\r\\n mapping(address => uint) public nonces;\\r\\n\\r\\n event Approval(address indexed owner, address indexed spender, uint value);\\r\\n event Transfer(address indexed from, address indexed to, uint value);\\r\\n\\r\\n constructor(string memory _name, string memory _symbol, uint8 _decimals, uint _totalSupply) public {\\r\\n name = _name;\\r\\n symbol = _symbol;\\r\\n decimals = _decimals;\\r\\n uint chainId;\\r\\n assembly {\\r\\n chainId := chainid()\\r\\n }\\r\\n DOMAIN_SEPARATOR = keccak256(\\r\\n abi.encode(\\r\\n keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'),\\r\\n keccak256(bytes(name)),\\r\\n keccak256(bytes('1')),\\r\\n chainId,\\r\\n address(this)\\r\\n )\\r\\n );\\r\\n _mint(msg.sender, _totalSupply);\\r\\n }\\r\\n\\r\\n function _mint(address to, uint value) internal {\\r\\n totalSupply = totalSupply.add(value);\\r\\n balanceOf[to] = balanceOf[to].add(value);\\r\\n emit Transfer(address(0), to, value);\\r\\n }\\r\\n\\r\\n function _burn(address from, uint value) internal {\\r\\n balanceOf[from] = balanceOf[from].sub(value);\\r\\n totalSupply = totalSupply.sub(value);\\r\\n emit Transfer(from, address(0), value);\\r\\n }\\r\\n\\r\\n function _approve(address owner, address spender, uint value) private {\\r\\n allowance[owner][spender] = value;\\r\\n emit Approval(owner, spender, value);\\r\\n }\\r\\n\\r\\n function _transfer(address from, address to, uint value) private {\\r\\n balanceOf[from] = balanceOf[from].sub(value);\\r\\n balanceOf[to] = balanceOf[to].add(value);\\r\\n emit Transfer(from, to, value);\\r\\n }\\r\\n\\r\\n function approve(address spender, uint value) external returns (bool) {\\r\\n _approve(msg.sender, spender, value);\\r\\n return true;\\r\\n }\\r\\n\\r\\n function transfer(address to, uint value) external returns (bool) {\\r\\n _transfer(msg.sender, to, value);\\r\\n return true;\\r\\n }\\r\\n\\r\\n function transferFrom(address from, address to, uint value) external returns (bool) {\\r\\n if (allowance[from][msg.sender] != uint(-1)) {\\r\\n allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);\\r\\n }\\r\\n _transfer(from, to, value);\\r\\n return true;\\r\\n }\\r\\n\\r\\n function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external {\\r\\n require(deadline >= block.timestamp, 'EXPIRED');\\r\\n bytes32 digest = keccak256(\\r\\n abi.encodePacked(\\r\\n '\\\\x19\\\\x01',\\r\\n DOMAIN_SEPARATOR,\\r\\n keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline))\\r\\n )\\r\\n );\\r\\n address recoveredAddress = ecrecover(digest, v, r, s);\\r\\n require(recoveredAddress != address(0) && recoveredAddress == owner, 'INVALID_SIGNATURE');\\r\\n _approve(owner, spender, value);\\r\\n }\\r\\n}\\r\\n"}]`,
ABI: '[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]',
ContractName: 'GRC20',
CompilerVersion: 'v0.6.6+commit.6c089d02.js',
OptimizationUsed: 2,
Runs: 200,
EVMVersion: 'default'
}
}
Tip: The
resultis returned to wei.