From 2a8380b8f4cdbe342b2182e4fd4960ea9b26de4f Mon Sep 17 00:00:00 2001 From: hu55a1n1 Date: Tue, 2 Jan 2024 13:06:53 -0800 Subject: [PATCH 1/5] Write EpochKey to sealed file --- utils/tm-prover/Cargo.lock | 1 - 1 file changed, 1 deletion(-) diff --git a/utils/tm-prover/Cargo.lock b/utils/tm-prover/Cargo.lock index 7c8952b..2a4c8da 100644 --- a/utils/tm-prover/Cargo.lock +++ b/utils/tm-prover/Cargo.lock @@ -2130,7 +2130,6 @@ dependencies = [ "futures", "serde", "serde_json", - "serde_with", "tendermint", "tendermint-light-client", "tendermint-light-client-detector", From f4549aa7903cdf88c2ace8c26600a6000a060e5a Mon Sep 17 00:00:00 2001 From: hu55a1n1 Date: Wed, 3 Jan 2024 08:40:29 -0800 Subject: [PATCH 2/5] Include latest block in trace --- utils/tm-prover/README.md | 6 +++--- utils/tm-prover/light-client-proof.json | 2 +- utils/tm-prover/src/main.rs | 5 ++++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/utils/tm-prover/README.md b/utils/tm-prover/README.md index c100f56..22dd308 100644 --- a/utils/tm-prover/README.md +++ b/utils/tm-prover/README.md @@ -9,9 +9,9 @@ block height and trusted height/hash. cargo run -- --chain-id osmosis-1 \ --primary "http://127.0.0.1:26657" \ --witnesses "http://127.0.0.1:26657" \ - --trusted-height 400 \ - --trusted-hash "DEA1738C2AEE72E935E39CE6EB8765B8782B791038789AC2FEA446526FDE8638" \ - --contract-address "wasm17p9rzwnnfxcjp32un9ug7yhhzgtkhvl9jfksztgw5uh69wac2pgsm0v070" \ + --trusted-height 1 \ + --trusted-hash "798E237C6FDF39EDA8BA7AB8E8F5DC71F24BC7138BE31882338022F8F88086EE" \ + --contract-address "wasm14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s0phg4d" \ --storage-key "requests" \ --trace-file light-client-proof.json ``` diff --git a/utils/tm-prover/light-client-proof.json b/utils/tm-prover/light-client-proof.json index 3357033..223b822 100644 --- a/utils/tm-prover/light-client-proof.json +++ b/utils/tm-prover/light-client-proof.json @@ -1 +1 @@ -{"light_client_proof":[{"signed_header":{"header":{"version":{"block":"11","app":"0"},"chain_id":"testing","height":"400","time":"2024-01-01T20:46:13.510205743Z","last_block_id":{"hash":"BC189DEF6C65323A84F2263F863CDB6C80C82B849F04BBBCE5063B671E4C5BD9","parts":{"total":1,"hash":"D08D088512C7BFB8A88EBCA38CB83D5FCDE13BCD3F3A53AE0EBFDABBDABD3C83"}},"last_commit_hash":"181CE355925014B46F83A4F7F3E09AF4F830B5380E1779CEB1BADC014BA973D9","data_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","validators_hash":"DCD72DC52B0AAFAE51BCCEA578A9238943216458531D7A2604D6E057705FA647","next_validators_hash":"DCD72DC52B0AAFAE51BCCEA578A9238943216458531D7A2604D6E057705FA647","consensus_hash":"048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F","app_hash":"172BD4336D4D11C8CE8DF5D4802881ACD8510F62B327E345226CDCB93D756E33","last_results_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","evidence_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","proposer_address":"EEFD30D2B8A1B5DBB53F0BF125A8513F35EBFA67"},"commit":{"height":"400","round":0,"block_id":{"hash":"DEA1738C2AEE72E935E39CE6EB8765B8782B791038789AC2FEA446526FDE8638","parts":{"total":1,"hash":"8DF6BE61FB106775B8087515F9E966A8D5C3DB82414464177C3D866DBD2C259F"}},"signatures":[{"block_id_flag":2,"validator_address":"EEFD30D2B8A1B5DBB53F0BF125A8513F35EBFA67","timestamp":"2024-01-01T20:46:18.803728572Z","signature":"pgZz9qoQjP2c6IpfQ3NA521iU8PBcr+3dWxToUeLBtiFKmMIZuKmJMcrrq8v/4I1DE2oKOM0CC+lZOPgdqufDw=="}]}},"validator_set":{"validators":[{"address":"EEFD30D2B8A1B5DBB53F0BF125A8513F35EBFA67","pub_key":{"type":"tendermint/PubKeyEd25519","value":"bBrxVo7fybcsc76shxtDH/bnBoG16Y//CdLo3nRuut8="},"power":"250","name":null}],"proposer":{"address":"EEFD30D2B8A1B5DBB53F0BF125A8513F35EBFA67","pub_key":{"type":"tendermint/PubKeyEd25519","value":"bBrxVo7fybcsc76shxtDH/bnBoG16Y//CdLo3nRuut8="},"power":"250","name":null},"total_voting_power":"250"},"next_validator_set":{"validators":[{"address":"EEFD30D2B8A1B5DBB53F0BF125A8513F35EBFA67","pub_key":{"type":"tendermint/PubKeyEd25519","value":"bBrxVo7fybcsc76shxtDH/bnBoG16Y//CdLo3nRuut8="},"power":"250","name":null}],"proposer":null,"total_voting_power":"250"},"provider":"2601e427670cfa018366dbb360522d5a622ba734"},{"signed_header":{"header":{"version":{"block":"11","app":"0"},"chain_id":"testing","height":"780","time":"2024-01-02T13:13:21.589832659Z","last_block_id":{"hash":"342AFEB4F2B9886D25DCA0F89B7990AEA1F4756EB2658EF8E1F25995D04E0CC1","parts":{"total":1,"hash":"881759DC5288476E2D2C191507C78592F931B3FF8AB095981342866DBEF00ED9"}},"last_commit_hash":"F9C4200DAF86ADC846E2B4815469B9AB5B26229DC19C980F4F25C831A8E6E8B5","data_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","validators_hash":"DCD72DC52B0AAFAE51BCCEA578A9238943216458531D7A2604D6E057705FA647","next_validators_hash":"DCD72DC52B0AAFAE51BCCEA578A9238943216458531D7A2604D6E057705FA647","consensus_hash":"048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F","app_hash":"31D7AD77E00D1643A1C08EB304778CA344EB2F2B001F5AABC0DB0CAE093B4268","last_results_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","evidence_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","proposer_address":"EEFD30D2B8A1B5DBB53F0BF125A8513F35EBFA67"},"commit":{"height":"780","round":0,"block_id":{"hash":"FB97BF6CE7D2BC81F6C56C5A5D230CE9EA13223E2A9768C8DDAF673E85FA2B9A","parts":{"total":1,"hash":"151B2C323D4F1E278A8E97D3FE2901BC4578B4DBD3E2EA73AAC16741EA9E38B9"}},"signatures":[{"block_id_flag":2,"validator_address":"EEFD30D2B8A1B5DBB53F0BF125A8513F35EBFA67","timestamp":"2024-01-02T13:13:26.661200506Z","signature":"o17sNhO4FWp4ZF+4rbej8L7Qzq4XkXxsfRryKLACn+wCdYdyd2tE9Lwtafata90jINIqD1xW7eUH1Dxc33fVDw=="}]}},"validator_set":{"validators":[{"address":"EEFD30D2B8A1B5DBB53F0BF125A8513F35EBFA67","pub_key":{"type":"tendermint/PubKeyEd25519","value":"bBrxVo7fybcsc76shxtDH/bnBoG16Y//CdLo3nRuut8="},"power":"250","name":null}],"proposer":{"address":"EEFD30D2B8A1B5DBB53F0BF125A8513F35EBFA67","pub_key":{"type":"tendermint/PubKeyEd25519","value":"bBrxVo7fybcsc76shxtDH/bnBoG16Y//CdLo3nRuut8="},"power":"250","name":null},"total_voting_power":"250"},"next_validator_set":{"validators":[{"address":"EEFD30D2B8A1B5DBB53F0BF125A8513F35EBFA67","pub_key":{"type":"tendermint/PubKeyEd25519","value":"bBrxVo7fybcsc76shxtDH/bnBoG16Y//CdLo3nRuut8="},"power":"250","name":null}],"proposer":null,"total_voting_power":"250"},"provider":"2601e427670cfa018366dbb360522d5a622ba734"}],"merkle_proof":{"key":"03f04a313a7349b120c55c99788f12f712176bb3e5926d012d0ea72fa2bbb850517265717565737473","value":"5b5b2234323564383766383632306531646564656565373035393063633535623136346238663031343830656535396530623164613335343336613266376332373737222c7b226a6f696e5f636f6d707574655f6e6f6465223a5b22303345363745463039323133363333303734464234464246333338363433463446304335373445443630454631314430333432324545423036464133384338463346222c227761736d31306e3464736c6a79796670326b3268793665387675633972793332707832656777743565306d225d7d5d2c5b2234323564383766383632306531646564656565373035393063633535623136346238663031343830656535396530623164613335343336613266376332373737222c7b226a6f696e5f636f6d707574655f6e6f6465223a5b22303345363745463039323133363333303734464234464246333338363433463446304335373445443630454631314430333432324545423036464133384338463346222c227761736d31306e3464736c6a79796670326b3268793665387675633972793332707832656777743565306d225d7d5d5d","proof":{"ops":[{"field_type":"ics23:iavl","key":"A/BKMTpzSbEgxVyZeI8S9xIXa7Plkm0BLQ6nL6K7uFBRcmVxdWVzdHM=","data":"Cr0FCikD8EoxOnNJsSDFXJl4jxL3Ehdrs+WSbQEtDqcvoru4UFFyZXF1ZXN0cxKhA1tbIjQyNWQ4N2Y4NjIwZTFkZWRlZWU3MDU5MGNjNTViMTY0YjhmMDE0ODBlZTU5ZTBiMWRhMzU0MzZhMmY3YzI3NzciLHsiam9pbl9jb21wdXRlX25vZGUiOlsiMDNFNjdFRjA5MjEzNjMzMDc0RkI0RkJGMzM4NjQzRjRGMEM1NzRFRDYwRUYxMUQwMzQyMkVFQjA2RkEzOEM4RjNGIiwid2FzbTEwbjRkc2xqeXlmcDJrMmh5NmU4dnVjOXJ5MzJweDJlZ3d0NWUwbSJdfV0sWyI0MjVkODdmODYyMGUxZGVkZWVlNzA1OTBjYzU1YjE2NGI4ZjAxNDgwZWU1OWUwYjFkYTM1NDM2YTJmN2MyNzc3Iix7ImpvaW5fY29tcHV0ZV9ub2RlIjpbIjAzRTY3RUYwOTIxMzYzMzA3NEZCNEZCRjMzODY0M0Y0RjBDNTc0RUQ2MEVGMTFEMDM0MjJFRUIwNkZBMzhDOEYzRiIsIndhc20xMG40ZHNsanl5ZnAyazJoeTZlOHZ1YzlyeTMycHgyZWd3dDVlMG0iXX1dXRoMCAEYASABKgQAArAGIioIARImAgSwBiBOpzP2s/6SIunMBbaHCRLEgoaVNga+vmEiNh7vhehyDCAiLAgBEgUEBrAGIBohIAsZ7FCkq3DffcNWIOBhCJtBX0VkI6fPIq4WG9A5kvAHIioIARImBg6wBiCzKKOIkxaoGXjgKaw6rKaTMwh9QavhVQfxZaaBPL/TUCAiKggBEiYIHrAGIE3sONaqyo/izFlcX87VN1MrH9LInKh9UPkoc37KwAJnICIsCAESBQw4sAYgGiEgR+BP64lBpTiwqraA1NTDDm22GVQrUBvDgnGZSK8cwnA="},{"field_type":"ics23:simple","key":"d2FzbQ==","data":"CqgBCgR3YXNtEiCc/abm+sGXQuxUS/in3jZ8QRv4EkrL8XvsdhpOyhBHkBoJCAEYASABKgEAIiUIARIhAWLU8PgnJ/EMp4BYvtTN9MX/rS70dNQ3ZAzrJLssrLjRIiUIARIhAeyOzGvgMZqvNLX4HSeqxpRsX5wvzkCXwuSZQx2+D+VFIiUIARIhATN4tA396yO15lqAYWrGYBOs2UWy32MxkhTHVoMbn1bz"}]}}} \ No newline at end of file +{"light_client_proof":[{"signed_header":{"header":{"version":{"block":"11","app":"0"},"chain_id":"testing","height":"1","time":"2024-01-03T14:11:06.457906288Z","last_block_id":null,"last_commit_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","data_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","validators_hash":"14BB9E51AC66AC767CCDBB841E0335F39CFEE91E354D6B847481949ACFE55E54","next_validators_hash":"14BB9E51AC66AC767CCDBB841E0335F39CFEE91E354D6B847481949ACFE55E54","consensus_hash":"048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F","app_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","last_results_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","evidence_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","proposer_address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2"},"commit":{"height":"1","round":0,"block_id":{"hash":"798E237C6FDF39EDA8BA7AB8E8F5DC71F24BC7138BE31882338022F8F88086EE","parts":{"total":1,"hash":"114E3925454EFD9520B97AE2651D09DEFB6779812D142015C3B4871E9C6DFAB5"}},"signatures":[{"block_id_flag":2,"validator_address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","timestamp":"2024-01-03T14:12:27.500093091Z","signature":"jGjoYzMclBGKfulT0NBTsLmDhmW8dJjvBNNJW+oAlYrMi2sZqQEOflMZa8qXPzRlo9abV0+j/Rco3rnQzlCUAA=="}]}},"validator_set":{"validators":[{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null}],"proposer":{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null},"total_voting_power":"250"},"next_validator_set":{"validators":[{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null}],"proposer":null,"total_voting_power":"250"},"provider":"d7d45d99c1ce6965e8fd6e9af7ce6e3ead943e5e"},{"signed_header":{"header":{"version":{"block":"11","app":"0"},"chain_id":"testing","height":"1002","time":"2024-01-03T15:37:18.943603087Z","last_block_id":{"hash":"63E3E40171B83EA1CC669AFE3C52B441178D39FC6648510A93D4FC0400E74B44","parts":{"total":1,"hash":"E13A5F62DDA92A11C83EAF922C2D255240391E17F1D410B40C848CE5A5A2AAC3"}},"last_commit_hash":"53E580967D6B318C2F6E7110EFCF52C55D54CB112E3D2D8C4FE4620B65EE8026","data_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","validators_hash":"14BB9E51AC66AC767CCDBB841E0335F39CFEE91E354D6B847481949ACFE55E54","next_validators_hash":"14BB9E51AC66AC767CCDBB841E0335F39CFEE91E354D6B847481949ACFE55E54","consensus_hash":"048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F","app_hash":"F89EF91F7DD4EC0C966293D81008DD133458054278DA87C9E2DF63F9438B95B8","last_results_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","evidence_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","proposer_address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2"},"commit":{"height":"1002","round":0,"block_id":{"hash":"80E1BDC8044128AABBEDBEE1AE36303CCBA18C91D4AABDACEAA3AE67E2C90E99","parts":{"total":1,"hash":"C79910BE04B3253361C55CF76F97AF001E96CFCB660F3566D14D711A98D1A2EC"}},"signatures":[{"block_id_flag":2,"validator_address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","timestamp":"2024-01-03T15:37:24.055866727Z","signature":"vq7463D1UfI6AGymn50cle6yJyDHrxlDRow+TKLh4rvg1cWo1rOlOCMm3PuOkRaUDJeBo8quX5RICf/7F4VoBw=="}]}},"validator_set":{"validators":[{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null}],"proposer":{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null},"total_voting_power":"250"},"next_validator_set":{"validators":[{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null}],"proposer":null,"total_voting_power":"250"},"provider":"d7d45d99c1ce6965e8fd6e9af7ce6e3ead943e5e"},{"signed_header":{"header":{"version":{"block":"11","app":"0"},"chain_id":"testing","height":"1003","time":"2024-01-03T15:37:24.055866727Z","last_block_id":{"hash":"80E1BDC8044128AABBEDBEE1AE36303CCBA18C91D4AABDACEAA3AE67E2C90E99","parts":{"total":1,"hash":"C79910BE04B3253361C55CF76F97AF001E96CFCB660F3566D14D711A98D1A2EC"}},"last_commit_hash":"483DE8E4E994072ADD2FE5613A93F70610B446C3EFBE62DA46F05F3145F14AF3","data_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","validators_hash":"14BB9E51AC66AC767CCDBB841E0335F39CFEE91E354D6B847481949ACFE55E54","next_validators_hash":"14BB9E51AC66AC767CCDBB841E0335F39CFEE91E354D6B847481949ACFE55E54","consensus_hash":"048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F","app_hash":"817E20FDCEF074464BDFA24F20E7874BB8BF9AB304E59B0599F4D1AFE6497BCD","last_results_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","evidence_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","proposer_address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2"},"commit":{"height":"1003","round":0,"block_id":{"hash":"5B062EEA12A61872061556B4B316B27A747858F5C8BF60973082A69600F98156","parts":{"total":1,"hash":"FD5AE9136255A1228BE3DAC1AD1DFD16F8518EBB8CB6352745425795F070E40C"}},"signatures":[{"block_id_flag":2,"validator_address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","timestamp":"2024-01-03T15:37:29.123143611Z","signature":"Gld/CfCFhZUVQCNoMBqWGjBhQxeYm99x0fnWa3XLZp83kD2w3ADkpMDCLLR4XH9S+anTG7ApZEp6T1p1N0z5DQ=="}]}},"validator_set":{"validators":[{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null}],"proposer":{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null},"total_voting_power":"250"},"next_validator_set":{"validators":[{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null}],"proposer":null,"total_voting_power":"250"},"provider":"d7d45d99c1ce6965e8fd6e9af7ce6e3ead943e5e"}],"merkle_proof":{"key":"03ade4a5f5803a439835c636395a8d648dee57b2fc90d98dc17fa887159b69638b7265717565737473","value":"5b5b2264343239353437346632666534346532623734656433616365383961333065336332303138613666666133613833626665323433383864373762393232656631222c7b226a6f696e5f636f6d707574655f6e6f6465223a5b22303335453842463035433746353044434536464538453545453637363445353438313337464644413630393738363531444444363733413233304532454238343837222c227761736d313871616d67336e673663686b647364636676776636636470756d3076727872716e6a7a676577225d7d5d5d","proof":{"ops":[{"field_type":"ics23:iavl","key":"A63kpfWAOkOYNcY2OVqNZI3uV7L8kNmNwX+ohxWbaWOLcmVxdWVzdHM=","data":"CsEDCikDreSl9YA6Q5g1xjY5Wo1kje5XsvyQ2Y3Bf6iHFZtpY4tyZXF1ZXN0cxLRAVtbImQ0Mjk1NDc0ZjJmZTQ0ZTJiNzRlZDNhY2U4OWEzMGUzYzIwMThhNmZmYTNhODNiZmUyNDM4OGQ3N2I5MjJlZjEiLHsiam9pbl9jb21wdXRlX25vZGUiOlsiMDM1RThCRjA1QzdGNTBEQ0U2RkU4RTVFRTY3NjRFNTQ4MTM3RkZEQTYwOTc4NjUxRERENjczQTIzMEUyRUI4NDg3Iiwid2FzbTE4cWFtZzNuZzZjaGtkc2RjZnZ3ZjZjZHB1bTB2cnhycW5qemdldyJdfV1dGgwIARgBIAEqBAAC0AkiKggBEiYCBNAJID7scwt3eUTbStBAgY8nxlrNWwCzldGGuRbgt5G6WT0YICIsCAESBQQI0AkgGiEgcnWK3gZ07BslcOkLQCUWU8US/bHrHnl9gIyVOccjCJ8iKggBEiYGDNAJIIyj3F4jzxiq2TdY/NboJKgRzQeTDY2kBIsd3PtgPVRyICIsCAESBQga0AkgGiEgizK9oudUJguFz2aerInw4liQ4xfI3Rr4FThqfH4cFLE="},{"field_type":"ics23:simple","key":"d2FzbQ==","data":"CqgBCgR3YXNtEiApKyFaCNtAKHxQheLxaN6iOSXSSO+Cz6DVftDCUnPdrBoJCAEYASABKgEAIiUIARIhAWLU8PgnJ/EMp4BYvtTN9MX/rS70dNQ3ZAzrJLssrLjRIiUIARIhAeSjHmM5ev2j6KDnXD/3Fx9NERjNRTXaK24PvEOjalYtIiUIARIhAT1ZVbBUdIuu1jQD54YZl+C+j9vgDPSs28BLTHQP/4xs"}]}}} \ No newline at end of file diff --git a/utils/tm-prover/src/main.rs b/utils/tm-prover/src/main.rs index 957ba8d..0f7fb07 100644 --- a/utils/tm-prover/src/main.rs +++ b/utils/tm-prover/src/main.rs @@ -195,7 +195,7 @@ async fn main() -> Result<()> { }?; info!("Verified to height {} on primary", primary_block.height()); - let primary_trace = primary.get_trace(primary_block.height()); + let mut primary_trace = primary.get_trace(primary_block.height()); let witnesses = join_all(args.witnesses.0.into_iter().map(|addr| { make_provider( @@ -241,6 +241,9 @@ async fn main() -> Result<()> { .map_err(|e: ProofError| eyre!(e))?; if let Some(trace_file) = args.trace_file { + let latest_block = primary.fetch_light_block(status.sync_info.latest_block_height)?; + primary_trace.push(latest_block); + let output = ProofOutput { light_client_proof: primary_trace, merkle_proof: proof.into(), From 87323daaac441b31e6e0c2f43c92217a7eb70837 Mon Sep 17 00:00:00 2001 From: hu55a1n1 Date: Wed, 3 Jan 2024 08:40:53 -0800 Subject: [PATCH 3/5] Make CwProof key and value public --- utils/cw-proof/src/proof/cw.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/cw-proof/src/proof/cw.rs b/utils/cw-proof/src/proof/cw.rs index 93db3bc..7329ca1 100644 --- a/utils/cw-proof/src/proof/cw.rs +++ b/utils/cw-proof/src/proof/cw.rs @@ -22,8 +22,8 @@ use crate::{ pub struct CwProof, V = Vec> { proof: ProofOps, // TODO(hu55a1n1): replace `K` with `CwAbciKey` - key: PrefixedKey, - value: V, + pub key: PrefixedKey, + pub value: V, } /// ABCI query response doesn't contain proof From 6c70969814d5c9d779d84df253151fbd0f317f10 Mon Sep 17 00:00:00 2001 From: hu55a1n1 Date: Thu, 4 Jan 2024 03:11:53 -0800 Subject: [PATCH 4/5] Replace last block in trace with latest block --- utils/tm-prover/src/main.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/utils/tm-prover/src/main.rs b/utils/tm-prover/src/main.rs index 0f7fb07..0012188 100644 --- a/utils/tm-prover/src/main.rs +++ b/utils/tm-prover/src/main.rs @@ -241,7 +241,10 @@ async fn main() -> Result<()> { .map_err(|e: ProofError| eyre!(e))?; if let Some(trace_file) = args.trace_file { + // replace the last block in the trace (i.e. the (latest - 1) block) with the latest block + // we don't actually verify the latest block because it will be verified on the other side let latest_block = primary.fetch_light_block(status.sync_info.latest_block_height)?; + let _ = primary_trace.pop(); primary_trace.push(latest_block); let output = ProofOutput { From 8c0c8716661d19c36af2d42e2f06d286c0a7dc86 Mon Sep 17 00:00:00 2001 From: hu55a1n1 Date: Thu, 4 Jan 2024 03:26:51 -0800 Subject: [PATCH 5/5] Fix proof gen and verify --- utils/tm-prover/light-client-proof.json | 2 +- utils/tm-prover/src/main.rs | 26 ++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/utils/tm-prover/light-client-proof.json b/utils/tm-prover/light-client-proof.json index 223b822..ac69282 100644 --- a/utils/tm-prover/light-client-proof.json +++ b/utils/tm-prover/light-client-proof.json @@ -1 +1 @@ -{"light_client_proof":[{"signed_header":{"header":{"version":{"block":"11","app":"0"},"chain_id":"testing","height":"1","time":"2024-01-03T14:11:06.457906288Z","last_block_id":null,"last_commit_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","data_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","validators_hash":"14BB9E51AC66AC767CCDBB841E0335F39CFEE91E354D6B847481949ACFE55E54","next_validators_hash":"14BB9E51AC66AC767CCDBB841E0335F39CFEE91E354D6B847481949ACFE55E54","consensus_hash":"048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F","app_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","last_results_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","evidence_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","proposer_address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2"},"commit":{"height":"1","round":0,"block_id":{"hash":"798E237C6FDF39EDA8BA7AB8E8F5DC71F24BC7138BE31882338022F8F88086EE","parts":{"total":1,"hash":"114E3925454EFD9520B97AE2651D09DEFB6779812D142015C3B4871E9C6DFAB5"}},"signatures":[{"block_id_flag":2,"validator_address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","timestamp":"2024-01-03T14:12:27.500093091Z","signature":"jGjoYzMclBGKfulT0NBTsLmDhmW8dJjvBNNJW+oAlYrMi2sZqQEOflMZa8qXPzRlo9abV0+j/Rco3rnQzlCUAA=="}]}},"validator_set":{"validators":[{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null}],"proposer":{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null},"total_voting_power":"250"},"next_validator_set":{"validators":[{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null}],"proposer":null,"total_voting_power":"250"},"provider":"d7d45d99c1ce6965e8fd6e9af7ce6e3ead943e5e"},{"signed_header":{"header":{"version":{"block":"11","app":"0"},"chain_id":"testing","height":"1002","time":"2024-01-03T15:37:18.943603087Z","last_block_id":{"hash":"63E3E40171B83EA1CC669AFE3C52B441178D39FC6648510A93D4FC0400E74B44","parts":{"total":1,"hash":"E13A5F62DDA92A11C83EAF922C2D255240391E17F1D410B40C848CE5A5A2AAC3"}},"last_commit_hash":"53E580967D6B318C2F6E7110EFCF52C55D54CB112E3D2D8C4FE4620B65EE8026","data_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","validators_hash":"14BB9E51AC66AC767CCDBB841E0335F39CFEE91E354D6B847481949ACFE55E54","next_validators_hash":"14BB9E51AC66AC767CCDBB841E0335F39CFEE91E354D6B847481949ACFE55E54","consensus_hash":"048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F","app_hash":"F89EF91F7DD4EC0C966293D81008DD133458054278DA87C9E2DF63F9438B95B8","last_results_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","evidence_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","proposer_address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2"},"commit":{"height":"1002","round":0,"block_id":{"hash":"80E1BDC8044128AABBEDBEE1AE36303CCBA18C91D4AABDACEAA3AE67E2C90E99","parts":{"total":1,"hash":"C79910BE04B3253361C55CF76F97AF001E96CFCB660F3566D14D711A98D1A2EC"}},"signatures":[{"block_id_flag":2,"validator_address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","timestamp":"2024-01-03T15:37:24.055866727Z","signature":"vq7463D1UfI6AGymn50cle6yJyDHrxlDRow+TKLh4rvg1cWo1rOlOCMm3PuOkRaUDJeBo8quX5RICf/7F4VoBw=="}]}},"validator_set":{"validators":[{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null}],"proposer":{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null},"total_voting_power":"250"},"next_validator_set":{"validators":[{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null}],"proposer":null,"total_voting_power":"250"},"provider":"d7d45d99c1ce6965e8fd6e9af7ce6e3ead943e5e"},{"signed_header":{"header":{"version":{"block":"11","app":"0"},"chain_id":"testing","height":"1003","time":"2024-01-03T15:37:24.055866727Z","last_block_id":{"hash":"80E1BDC8044128AABBEDBEE1AE36303CCBA18C91D4AABDACEAA3AE67E2C90E99","parts":{"total":1,"hash":"C79910BE04B3253361C55CF76F97AF001E96CFCB660F3566D14D711A98D1A2EC"}},"last_commit_hash":"483DE8E4E994072ADD2FE5613A93F70610B446C3EFBE62DA46F05F3145F14AF3","data_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","validators_hash":"14BB9E51AC66AC767CCDBB841E0335F39CFEE91E354D6B847481949ACFE55E54","next_validators_hash":"14BB9E51AC66AC767CCDBB841E0335F39CFEE91E354D6B847481949ACFE55E54","consensus_hash":"048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F","app_hash":"817E20FDCEF074464BDFA24F20E7874BB8BF9AB304E59B0599F4D1AFE6497BCD","last_results_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","evidence_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","proposer_address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2"},"commit":{"height":"1003","round":0,"block_id":{"hash":"5B062EEA12A61872061556B4B316B27A747858F5C8BF60973082A69600F98156","parts":{"total":1,"hash":"FD5AE9136255A1228BE3DAC1AD1DFD16F8518EBB8CB6352745425795F070E40C"}},"signatures":[{"block_id_flag":2,"validator_address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","timestamp":"2024-01-03T15:37:29.123143611Z","signature":"Gld/CfCFhZUVQCNoMBqWGjBhQxeYm99x0fnWa3XLZp83kD2w3ADkpMDCLLR4XH9S+anTG7ApZEp6T1p1N0z5DQ=="}]}},"validator_set":{"validators":[{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null}],"proposer":{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null},"total_voting_power":"250"},"next_validator_set":{"validators":[{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null}],"proposer":null,"total_voting_power":"250"},"provider":"d7d45d99c1ce6965e8fd6e9af7ce6e3ead943e5e"}],"merkle_proof":{"key":"03ade4a5f5803a439835c636395a8d648dee57b2fc90d98dc17fa887159b69638b7265717565737473","value":"5b5b2264343239353437346632666534346532623734656433616365383961333065336332303138613666666133613833626665323433383864373762393232656631222c7b226a6f696e5f636f6d707574655f6e6f6465223a5b22303335453842463035433746353044434536464538453545453637363445353438313337464644413630393738363531444444363733413233304532454238343837222c227761736d313871616d67336e673663686b647364636676776636636470756d3076727872716e6a7a676577225d7d5d5d","proof":{"ops":[{"field_type":"ics23:iavl","key":"A63kpfWAOkOYNcY2OVqNZI3uV7L8kNmNwX+ohxWbaWOLcmVxdWVzdHM=","data":"CsEDCikDreSl9YA6Q5g1xjY5Wo1kje5XsvyQ2Y3Bf6iHFZtpY4tyZXF1ZXN0cxLRAVtbImQ0Mjk1NDc0ZjJmZTQ0ZTJiNzRlZDNhY2U4OWEzMGUzYzIwMThhNmZmYTNhODNiZmUyNDM4OGQ3N2I5MjJlZjEiLHsiam9pbl9jb21wdXRlX25vZGUiOlsiMDM1RThCRjA1QzdGNTBEQ0U2RkU4RTVFRTY3NjRFNTQ4MTM3RkZEQTYwOTc4NjUxRERENjczQTIzMEUyRUI4NDg3Iiwid2FzbTE4cWFtZzNuZzZjaGtkc2RjZnZ3ZjZjZHB1bTB2cnhycW5qemdldyJdfV1dGgwIARgBIAEqBAAC0AkiKggBEiYCBNAJID7scwt3eUTbStBAgY8nxlrNWwCzldGGuRbgt5G6WT0YICIsCAESBQQI0AkgGiEgcnWK3gZ07BslcOkLQCUWU8US/bHrHnl9gIyVOccjCJ8iKggBEiYGDNAJIIyj3F4jzxiq2TdY/NboJKgRzQeTDY2kBIsd3PtgPVRyICIsCAESBQga0AkgGiEgizK9oudUJguFz2aerInw4liQ4xfI3Rr4FThqfH4cFLE="},{"field_type":"ics23:simple","key":"d2FzbQ==","data":"CqgBCgR3YXNtEiApKyFaCNtAKHxQheLxaN6iOSXSSO+Cz6DVftDCUnPdrBoJCAEYASABKgEAIiUIARIhAWLU8PgnJ/EMp4BYvtTN9MX/rS70dNQ3ZAzrJLssrLjRIiUIARIhAeSjHmM5ev2j6KDnXD/3Fx9NERjNRTXaK24PvEOjalYtIiUIARIhAT1ZVbBUdIuu1jQD54YZl+C+j9vgDPSs28BLTHQP/4xs"}]}}} \ No newline at end of file +{"light_client_proof":[{"signed_header":{"header":{"version":{"block":"11","app":"0"},"chain_id":"testing","height":"1","time":"2024-01-03T14:11:06.457906288Z","last_block_id":null,"last_commit_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","data_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","validators_hash":"14BB9E51AC66AC767CCDBB841E0335F39CFEE91E354D6B847481949ACFE55E54","next_validators_hash":"14BB9E51AC66AC767CCDBB841E0335F39CFEE91E354D6B847481949ACFE55E54","consensus_hash":"048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F","app_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","last_results_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","evidence_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","proposer_address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2"},"commit":{"height":"1","round":0,"block_id":{"hash":"798E237C6FDF39EDA8BA7AB8E8F5DC71F24BC7138BE31882338022F8F88086EE","parts":{"total":1,"hash":"114E3925454EFD9520B97AE2651D09DEFB6779812D142015C3B4871E9C6DFAB5"}},"signatures":[{"block_id_flag":2,"validator_address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","timestamp":"2024-01-03T14:12:27.500093091Z","signature":"jGjoYzMclBGKfulT0NBTsLmDhmW8dJjvBNNJW+oAlYrMi2sZqQEOflMZa8qXPzRlo9abV0+j/Rco3rnQzlCUAA=="}]}},"validator_set":{"validators":[{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null}],"proposer":{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null},"total_voting_power":"250"},"next_validator_set":{"validators":[{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null}],"proposer":null,"total_voting_power":"250"},"provider":"d7d45d99c1ce6965e8fd6e9af7ce6e3ead943e5e"},{"signed_header":{"header":{"version":{"block":"11","app":"0"},"chain_id":"testing","height":"4851","time":"2024-01-04T11:15:00.221952334Z","last_block_id":{"hash":"36D67A02E380F8F1B6CC1F86C82DC0BA0BE8D2E390368F0D809DB1F52B2DF93D","parts":{"total":1,"hash":"7E98634477C8C3DC746CDDA8E96F383A768C0667AFA22BA2DA7B4360D9CF6CA6"}},"last_commit_hash":"F09F4F36056FE638C8FC9E2FE3EE2FA693C887454B153993A206C76AD5E689F1","data_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","validators_hash":"14BB9E51AC66AC767CCDBB841E0335F39CFEE91E354D6B847481949ACFE55E54","next_validators_hash":"14BB9E51AC66AC767CCDBB841E0335F39CFEE91E354D6B847481949ACFE55E54","consensus_hash":"048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F","app_hash":"DDB187CAEC7789A5ED4B6D83139500E69A6F3E403B392EB821854F6B4294F061","last_results_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","evidence_hash":"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855","proposer_address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2"},"commit":{"height":"4851","round":0,"block_id":{"hash":"5127945974EA1078018DBF323EF4D7D42390F33249C0B75E932EBC56EA8058FF","parts":{"total":1,"hash":"C2555CEE4212AACDDC6F7D26EB06629BE9D477A1D686DBB9351252598F0EB10A"}},"signatures":[{"block_id_flag":2,"validator_address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","timestamp":"2024-01-04T11:15:05.585568321Z","signature":"IoEr4ULFY/a1ubsnKO6XzGrJPLxiDf9liurRwpI+ZzycvyrhGg2nTjd4J3+5HNmQoX4pFY+Bx2WGVpECMlvnBQ=="}]}},"validator_set":{"validators":[{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null}],"proposer":{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null},"total_voting_power":"250"},"next_validator_set":{"validators":[{"address":"7FC35564C5F899A6F17429A53DDC20F4AB15C5F2","pub_key":{"type":"tendermint/PubKeyEd25519","value":"XtHnLResEdWxdT1LTyg7DuQZnfKNQVZTCbx5k7/9qFE="},"power":"250","name":null}],"proposer":null,"total_voting_power":"250"},"provider":"d7d45d99c1ce6965e8fd6e9af7ce6e3ead943e5e"}],"merkle_proof":{"key":"03ade4a5f5803a439835c636395a8d648dee57b2fc90d98dc17fa887159b69638b7265717565737473","value":"5b5b2264343239353437346632666534346532623734656433616365383961333065336332303138613666666133613833626665323433383864373762393232656631222c7b226a6f696e5f636f6d707574655f6e6f6465223a5b22303335453842463035433746353044434536464538453545453637363445353438313337464644413630393738363531444444363733413233304532454238343837222c227761736d313871616d67336e673663686b647364636676776636636470756d3076727872716e6a7a676577225d7d5d5d","proof":{"ops":[{"field_type":"ics23:iavl","key":"A63kpfWAOkOYNcY2OVqNZI3uV7L8kNmNwX+ohxWbaWOLcmVxdWVzdHM=","data":"CsEDCikDreSl9YA6Q5g1xjY5Wo1kje5XsvyQ2Y3Bf6iHFZtpY4tyZXF1ZXN0cxLRAVtbImQ0Mjk1NDc0ZjJmZTQ0ZTJiNzRlZDNhY2U4OWEzMGUzYzIwMThhNmZmYTNhODNiZmUyNDM4OGQ3N2I5MjJlZjEiLHsiam9pbl9jb21wdXRlX25vZGUiOlsiMDM1RThCRjA1QzdGNTBEQ0U2RkU4RTVFRTY3NjRFNTQ4MTM3RkZEQTYwOTc4NjUxRERENjczQTIzMEUyRUI4NDg3Iiwid2FzbTE4cWFtZzNuZzZjaGtkc2RjZnZ3ZjZjZHB1bTB2cnhycW5qemdldyJdfV1dGgwIARgBIAEqBAAC0AkiKggBEiYCBNAJID7scwt3eUTbStBAgY8nxlrNWwCzldGGuRbgt5G6WT0YICIsCAESBQQI0AkgGiEgcnWK3gZ07BslcOkLQCUWU8US/bHrHnl9gIyVOccjCJ8iKggBEiYGDNAJIIyj3F4jzxiq2TdY/NboJKgRzQeTDY2kBIsd3PtgPVRyICIsCAESBQga0AkgGiEgizK9oudUJguFz2aerInw4liQ4xfI3Rr4FThqfH4cFLE="},{"field_type":"ics23:simple","key":"d2FzbQ==","data":"CqgBCgR3YXNtEiApKyFaCNtAKHxQheLxaN6iOSXSSO+Cz6DVftDCUnPdrBoJCAEYASABKgEAIiUIARIhAWLU8PgnJ/EMp4BYvtTN9MX/rS70dNQ3ZAzrJLssrLjRIiUIARIhAcRdtg2wBcTK/cnbyz0L7iXU6BigbJQbkvF+omgYcYa2IiUIARIhAbl7qZb+bCuxlU1I5tZgoAZM7M9zFTMscM6Kv00dKoye"}]}}} \ No newline at end of file diff --git a/utils/tm-prover/src/main.rs b/utils/tm-prover/src/main.rs index 0012188..203a32d 100644 --- a/utils/tm-prover/src/main.rs +++ b/utils/tm-prover/src/main.rs @@ -180,19 +180,20 @@ async fn main() -> Result<()> { .latest_trusted() .ok_or_else(|| eyre!("No trusted state found for primary"))?; - let primary_block = { - info!("Verifying to latest height on primary..."); + let status = client.status().await?; + let latest_height = status.sync_info.latest_block_height; - let status = client.status().await?; - let proof_height = { - let latest_height = status.sync_info.latest_block_height; - (latest_height.value() - 1) - .try_into() - .expect("infallible conversion") - }; + // `proof_height` is the height at which we want to query the blockchain's state + // This is one less than than the `latest_height` because we want to verify the merkle-proof for + // the state against the `app_hash` at `latest_height`. + // (because Tendermint commits to the latest `app_hash` in the subsequent block) + let proof_height = (latest_height.value() - 1) + .try_into() + .expect("infallible conversion"); - primary.verify_to_height(proof_height) - }?; + info!("Verifying to latest height on primary..."); + + let primary_block = primary.verify_to_height(latest_height)?; info!("Verified to height {} on primary", primary_block.height()); let mut primary_trace = primary.get_trace(primary_block.height()); @@ -223,8 +224,7 @@ async fn main() -> Result<()> { .await?; let status = client.status().await?; - let (proof_height, latest_app_hash) = - (primary_block.height(), status.sync_info.latest_app_hash); + let latest_app_hash = status.sync_info.latest_app_hash; let path = WASM_STORE_KEY.to_owned(); let data = CwAbciKey::new(args.contract_address, args.storage_key, None);