[x] moonworm watch now accepts an --end argument. The watch function takes this as end_block.
[x] Added a command called moonworm find-deployment. This command identifies the block at which a smart contract was deployed (and raises a ValueError if the address passed to it is not a smart contract).
[x] Bumped moonworm version to 0.1.19.
[x] Added MOONWORM_VERBOSITY environment variable (only in moonworm/deployment.py to control log level.
Changes
moonworm watch
now accepts an--end
argument. Thewatch
function takes this asend_block
.moonworm find-deployment
. This command identifies the block at which a smart contract was deployed (and raises aValueError
if the address passed to it is not a smart contract).moonworm
version to0.1.19
.MOONWORM_VERBOSITY
environment variable (only inmoonworm/deployment.py
to control log level.Invoking
moonworm find-deployment
For example, for CU Lands contract:
Output
Lines prefixed by `INFO:` go to `stderr`. Last line goes to `stdout`. ``` INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Function invoked INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=27307152, min_block=0, middle_block=13653576 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=27307152, min_block=13653576, middle_block=20480364 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=27307152, min_block=20480364, middle_block=23893758 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=23893758, min_block=20480364, middle_block=22187061 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=23893758, min_block=22187061, middle_block=23040409 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=23040409, min_block=22187061, middle_block=22613735 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=22613735, min_block=22187061, middle_block=22400398 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=22613735, min_block=22400398, middle_block=22507066 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=22613735, min_block=22507066, middle_block=22560400 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=22560400, min_block=22507066, middle_block=22533733 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=22533733, min_block=22507066, middle_block=22520399 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=22533733, min_block=22520399, middle_block=22527066 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=22533733, min_block=22527066, middle_block=22530399 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=22530399, min_block=22527066, middle_block=22528732 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=22530399, min_block=22528732, middle_block=22529565 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=22530399, min_block=22529565, middle_block=22529982 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=22529982, min_block=22529565, middle_block=22529773 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=22529982, min_block=22529773, middle_block=22529877 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=22529877, min_block=22529773, middle_block=22529825 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=22529877, min_block=22529825, middle_block=22529851 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=22529851, min_block=22529825, middle_block=22529838 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=22529838, min_block=22529825, middle_block=22529831 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=22529838, min_block=22529831, middle_block=22529834 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=22529834, min_block=22529831, middle_block=22529832 INFO:moonworm.deployment:find_deployment_block(web3_client, contract_address=0xA2a13cE1824F3916fC84C65e559391fc6674e6e8, web3_interval=0.5) -- Binary search -- max_block=22529834, min_block=22529832, middle_block=22529833 22529834 ```
How to test these changes?
I tested these changes manually against the Crypto Unicorns NFT and Crypto Unicorns Land NFT.
Related issues
Raised https://github.com/bugout-dev/moonworm/issues/65