I have contract address, and I want to find the block number, when it was deployed, to use it for loading events for this contract. Is it possible?
Asked
Active
Viewed 5,514 times
6
-
1Why not just load events starting at block 0? – user19510 Apr 10 '18 at 16:50
-
Do you have only address? if you have transaction hash, you can use function web3.eth.getTransactionReceipt – kherwa Apr 10 '18 at 16:52
-
@smarx I though I could optimize event loading by getting the deployment block number – Rob Yart Apr 11 '18 at 17:36
-
1@kherwa Thanks, no I don't have txhash, otherwise it would be easy ;-) – Rob Yart Apr 11 '18 at 17:37
-
Have you measured the performance difference? I would guess that an extra API call to figure out the deployment block takes way more time than whatever penalty there is for starting from block 0. – user19510 Apr 11 '18 at 20:24
2 Answers
1
You are possibly looking for something more progamatic. A good starting point is the idea that each contract starts with a deployment transaction. It's always the first transaction in the contract history.
On Etherscan
Hope it helps.
Rob Hitchens
- 55,151
- 11
- 89
- 145
1
Assuming you know the transactionHash of the transaction which created your contract, you could just use the web3js function: web3.eth.getTransaction(transactionHash [, callback])
This will return you an object where you can access the block number you are looking for. Check this example code out!
István András Seres
- 1,276
- 8
- 17
