I plan to deploy a contract on an EVM-compatible network at a specific, predetermined address. I intend to use Gnosis's pre-signed transaction in safe-global/safe-singleton-factory repository to deploy the contract.
Unfortunately, I made a mistake by sending a token to the same address before deploying the contract. As a result, the blockchain is displaying the address as an externally owned account (EOA) rather than a contract address. Here is an example of how the address should appear, but it is currently being displayed as an EOA.
I have sent a POST request to verify the example mentioned above, and the result seems satisfactory.
POST Request to https://api.test.wemix.com
{
"method": "eth_getCode",
"params": ["0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7", "latest"],
"id": 1,
"jsonrpc": "2.0"
}
Result (cf. How to detect if an address is a contract?)
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3"
}
Questions are:
- Does transferring tokens to a non-existent address on an EVM network result in the creation of an Externally Owned Account? Is the case in the example truly an EOA? Could it be a possibility that the Contract Account is displayed as an Externally Owned Account due to a bug in the Explorer?
- Is it possible to convert a Contract Address (CA) to an Externally Owned Account (EOA) in this particular situation?
- Are there any potential problems associated with this situation, and if so, what are the possible solutions? (For reference, deploying the factory to a different address will not be a viable solution as the addresses will not match the ones expected in safe-deployments.)