While investigating contract creation transactions on Etherscan, I found a token I cannot understand. This is MKR.
From Etherscan,
Contract address: 0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2
Creation tx_hash: 0x5c9b0f9c6c32d2690771169ec62dd648fef7bce3d45fe8a6505d99fdcbade27a
However, if I do w3.eth.get_transaction_receipt()
on tx_hash
, contractAddress
property is null.
{
"transactionHash": "0x5c9b0f9c6c32d2690771169ec62dd648fef7bce3d45fe8a6505d99fdcbade27a",
"blockHash": "0xee385ac028bb7d8863d70afa02d63181894e0b2d51b99c0c525ef24538c44c24",
"blockNumber": 4620855,
"logsBloom": "0x00000 . . . 0000",
"gasUsed": 1594668,
"contractAddress": null,
"cumulativeGasUsed": 4047394,
"transactionIndex": 55,
"from": "0x00DaA9a2D88BEd5a29A6ca93e0B7d860cd1d403F",
"to": "0x731c6F8C754FA404CFCC2Ed8035EF79262f65702",
"type": 0,
"effectiveGasPrice": 1000000000,
"logs": [ . . . ]
Basically, this is not a contract, but interaction with a contract. From transaction details I see this is a run()
call to address 0x731c6F8C754FA404CFCC2Ed8035EF79262f65702
.
{
"blockHash": "0xee385ac028bb7d8863d70afa02d63181894e0b2d51b99c0c525ef24538c44c24",
"blockNumber": 4620855,
"hash": "0x5c9b0f9c6c32d2690771169ec62dd648fef7bce3d45fe8a6505d99fdcbade27a",
"input": "0xc0406226",
"r": "0x3b8ef7baddfbc3459eb39c5069505c395fbf10a8124424834f8c001e9e9bffed",
"s": "0x58e10d3907f861fce1b64ab10033ed1e9377b94414756dd63280e4d2e4e1a996",
"v": 37,
"gas": 3000000,
"from": "0x00DaA9a2D88BEd5a29A6ca93e0B7d860cd1d403F",
"transactionIndex": 55,
"to": "0x731c6F8C754FA404CFCC2Ed8035EF79262f65702",
"type": 0,
"value": 0,
"nonce": 5417,
"gasPrice": 1000000000
}
Okay, I go address 0x731c6F8C754FA404CFCC2Ed8035EF79262f65702
in Etherscan and this is the ERC-20 token contract with deployed bytecode in transaction input. But if I try to contract.functions.name().call()
on this address, I get an error.
However, name()
call works on address 0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2
.
Can someone explain me, please, what type of contract is this and according to what standard it operates? It looks like some kind of proxy, but what it exactly is? References to ERCs or other documentation are highly appreciated.