Skip to content
This repository has been archived by the owner on Nov 29, 2024. It is now read-only.

Commit

Permalink
feat: allow proving arbitrary paths under any key (#94)
Browse files Browse the repository at this point in the history
* feat: allow proving arbitrary paths under ibc-key

* style: using proper constant

* imp(operator): added new program input

* fix: temporary fix for contracts

* imp: updated contracts

* imp: kinda works

* imp

* imp: fixed some issues

* imp: generated abi

* imp: updated programs

* fix: e2e

* imp: updated uc and membership fixture

* imp: generated memberships fixture

* imp: uc fixture added

* fix: tests passing

* style: fixed linter complaint
  • Loading branch information
srdtrk authored Aug 17, 2024
1 parent 7824f7f commit 9a91c53
Show file tree
Hide file tree
Showing 27 changed files with 371 additions and 179 deletions.
127 changes: 127 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ tendermint-rpc = { version = "0.38", features = ["http-client"] }

# ibc-rs
ibc-core-client-types = { version = "0.54", default-features = false }
ibc-core-host-cosmos = { version = "0.54", default-features = false }

# Other dependencies
reqwest = { version = "0.12", features = ["json"] }
Expand Down
Binary file modified bun.lockb
Binary file not shown.
16 changes: 8 additions & 8 deletions contracts/abi/SP1ICS07Tendermint.json
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,8 @@
"components": [
{
"name": "path",
"type": "bytes",
"internalType": "bytes"
"type": "bytes[]",
"internalType": "bytes[]"
},
{
"name": "value",
Expand Down Expand Up @@ -269,8 +269,8 @@
"components": [
{
"name": "path",
"type": "bytes",
"internalType": "bytes"
"type": "bytes[]",
"internalType": "bytes[]"
},
{
"name": "value",
Expand Down Expand Up @@ -532,8 +532,8 @@
},
{
"name": "path",
"type": "bytes",
"internalType": "bytes"
"type": "bytes[]",
"internalType": "bytes[]"
},
{
"name": "value",
Expand Down Expand Up @@ -692,8 +692,8 @@
"inputs": [
{
"name": "path",
"type": "bytes",
"internalType": "bytes"
"type": "bytes[]",
"internalType": "bytes[]"
}
]
},
Expand Down
8 changes: 4 additions & 4 deletions contracts/fixtures/memberships_fixture.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"trustedClientState": "000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000253370000000000000000000000000000000000000000000000000000000000012750000000000000000000000000000000000000000000000000000000000001baf80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000076d6f6368612d3400000000000000000000000000000000000000000000000000",
"trustedConsensusState": "0000000000000000000000000000000000000000000000000000000066b4386ddd61735333d38ba62f9c8edb7d41b399ce6a0a0ed10d1aeaec708afec8d40472a1d4cdbc90487e9cf127cf745c0ce4e8f72e4babc77eb53db3729b8d848125cb",
"updateClientVkey": "0x00947f9c0e1dafc9f0f6c8a12db07a3684fc71ce93f83c1c68b79892a41a929e",
"membershipVkey": "0x0058653c716864c2c5d965df21d0a9da5368d6894523bae1300938c2e0b195b6",
"ucAndMembershipVkey": "0x00edbd4a801ca684ce39d7a8ecd8ed8fb2891f6d753c1c468dbc14d3e6e7f60e",
"updateClientVkey": "0x0029ce4b0512b5c4254fb11a189799cddb28254f7177d549cf2dc860bc31519e",
"membershipVkey": "0x005f30ecbba088f6f6eede4ca8d4ff6ffc2b7e5f59de38edd1574aefb937afdb",
"ucAndMembershipVkey": "0x00cf1fa1df1f491548e84e88a6b617a70b7abd0c017bc7115ed08f329e05026a",
"proofHeight": "00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000253370",
"membershipProof": "00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000007c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000066b4386ddd61735333d38ba62f9c8edb7d41b399ce6a0a0ed10d1aeaec708afec8d40472a1d4cdbc90487e9cf127cf745c0ce4e8f72e4babc77eb53db3729b8d848125cb0058653c716864c2c5d965df21d0a9da5368d6894523bae1300938c2e0b195b60000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000020dd61735333d38ba62f9c8edb7d41b399ce6a0a0ed10d1aeaec708afec8d4047200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000023636c69656e74732f30372d74656e6465726d696e742d302f636c69656e745374617465000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b70a2b2f6962632e6c69676874636c69656e74732e74656e6465726d696e742e76312e436c69656e7453746174651287010a1174686574612d746573746e65742d3030311204080110031a040880840722040880c60a2a02082832003a0510b7e3c60842190a090801180120012a0100120c0a02000110211804200c300142190a090801180120012a0100120c0a02000110201801200130014a07757067726164654a107570677261646564494243537461746550015801000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000025636c69656e74732f30372d74656e6465726d696e742d3030312f636c69656e74537461746500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000364c430ff7f116514b4e8fb097810b1fc3c1f9758cda689d7ffac2e28234cb434c5615de5172cd45aad451e78abcbf7fc2bf8e7c51d2b7d0906d3566dbd901ac22ec5a130f70934bcc4748a3e00768e33a087046bb6ee33b2f1c6e056e98d6b765d5f4a9fe32ead0c8a5ca1405d3329df4af08f2385db225de0a3505a5f6b0330658c5a70b20584b17eb7436c0cd22e9755c2b38f367d6d4c154db1d9d206abd8223a70299802add99cc70571b373b722a2b71b8df0f9a261c746fb0244fefa4098fe6140252afea45f0242cf0b5a1c5c75953a54b81ead427910fc1fa5006e574626a0684d2594df1f68685c2052792ea3f7532b3b310a237ec5c74e101fc1b1c8ec0693ee2720e7c29bddec9b36f6ecc4d48a71ad49f91517ef5381489cbb4ce90473729826e2b217333eb3f2ce8f6cfdc6040075988a2ee3dbd120ec53dd911b9efe37970932f078a01d3b635bec154bf2c630bfe681a8920a5c3bd815c3dbd399538136233882528b933db2f3c14317ea2a94debe9fce306ada10476279c737f110cb2b08b0791adceb4864a2899caaac9cdcae6d173fb648f2a4d45fbb52a51dbcd79719508cfc65b06006e6de51ff7a18794a8932dd9aea32008f69eb9f466e1686850761b0b8d80e96e624e2c6a5ec7432f3a6f15581f8193a9545259819d721688b17f9e2e3446b2c0e000f63d4a4d0ca00d017c5d77fc8d2aeab80027807c928580943d52a1206214193b442a5b4665833263bf6fec72c2630efd904409913aab523f7904d584fdb3b9ba22c042fb3a4d739ed70b8077597a6481f054743e0b5202f9ce895e08487dbd510cb9647766a85a2b019fc594afe45db29eeb1220628f817523a639818bf92185ddf77be9a771d72a91d3c2a0683488fcb9142e0f4c8f60e67ff7de421763576bea46f20cea601b9f9f2ecc620f5d507bea378df39153c256458756ec97e90ab99c8409a0053029df7846f527df083401bc0a15d25a46f2d361d35455d339f680c34bcd962e4984fb85a88d4c470897935ea14a4948978125a931695e439574dba9707b75224396d5806bfa8bb320281f5b3593485a32001f40bb89a64a66b8d4b3e71b4eaf1010cdc2f64599e1b2718e2ab3c6782f02b2d9f296728e54ba5e2a131a36063e51d478396273ada7041dc33d0cf01fa82220b8c7634761313a7363ce21eeadce8e9951d639d3f08aa765988efb4a998fa7b00000000000000000000000000000000000000000000000000000000"
"membershipProof": "0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000066b4386ddd61735333d38ba62f9c8edb7d41b399ce6a0a0ed10d1aeaec708afec8d40472a1d4cdbc90487e9cf127cf745c0ce4e8f72e4babc77eb53db3729b8d848125cb005f30ecbba088f6f6eede4ca8d4ff6ffc2b7e5f59de38edd1574aefb937afdb000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000020dd61735333d38ba62f9c8edb7d41b399ce6a0a0ed10d1aeaec708afec8d40472000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000369626300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023636c69656e74732f30372d74656e6465726d696e742d302f636c69656e745374617465000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b70a2b2f6962632e6c69676874636c69656e74732e74656e6465726d696e742e76312e436c69656e7453746174651287010a1174686574612d746573746e65742d3030311204080110031a040880840722040880c60a2a02082832003a0510b7e3c60842190a090801180120012a0100120c0a02000110211804200c300142190a090801180120012a0100120c0a02000110201801200130014a07757067726164654a10757067726164656449424353746174655001580100000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000369626300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025636c69656e74732f30372d74656e6465726d696e742d3030312f636c69656e74537461746500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000364c430ff7f22ef7a7f130f690abd7fd33eed4da6fdfa7c6a4b8899c728a92a835269e05f802e5ca7f9ae355d672f60de8d45b106b4f60dafa46269146bd7179801700e0e8e0d85da862ba83f7e70febb376a092cf2f0a92911ac55c4c9ea01bfd293ca455506ad0535abd962a10ebf6114068bf037469a5b1b1d243296e84b47d31c05311614cf8be0507f992322e5f4a51a88624bd612ea3aa446bb38f34fed2e777b4b1401852f214ba716ed1b5241f2e21e2540105b25dad1e0e5c951e6c4201df162d800cad20e1460dc785d47b1143c281831a977f28be50fa83ea8463968d4e5d61f0d1995988279ba999d275a8101b3172be15588c4b779b5f9d177b49d640d52991821d38d3882ca14d10d64e7aff76d796c586ba257249169d069b236e02809ba01517acc1e0409ddd08c344f4fb4faeb1e20d5b00c0000389a3b96a94401980f211d9e1f438cd2cb922c503bccc61cff175ba0cd0a96ff6963d3a833530834b7062e538bf6c914e907f6b2b1e7181d1bdc1b45eb7defae4ea732cb11802584e826c23895796d70adaaf3d75d93bff55efb2559978ec25df6316e0bad0ce074f52332bf1420e201e1efc9d467428ff402de800943be7648d915b2e5f5386790820a15bb2065022fc1087703967b292efb12444d2a504145c6caab7209196f18c22a98a2ca941973cb2b128fe25a3ada9e073dc99fa681445482e91ee0809bbe5d200ff347e1d290ed1214f83d06c2ccc5209b3edf382487c051e4bbdfbe01e64c182af205ad392ea60b6e8d1d615085d2e0e10caa574e4336110eaef08e3e97da2fd6c192efb126c9a1213da6264781332ba9550986d6fd31e0ca7904ae2fc5072e7643157ae8201b5eca53db900e8400f67c60cf3fe0f91c86c9202e46d815011b5a74477473924a722805c6ca8b27edadd0b105c6efa1b00074f6f6906e8b861281bdce6e75e1547811721ab291058d6beecfc277e72ac8a0d454d6f29dbbbb06a114650a25e053afa051faed46790974486313712b568ab8bbcf4fff54cf8a0f05d01d8c93cc76d67ded54fac134e5aef437d66ce2d66cf880c2be56ca10451922802b647b63e61e1bf54bb755f15ee2230f43ca6299c7af01927f5d2c69891d0e0659dc75e8ee4b507be85114e620d53091cdcb39591cd42c5f3c6d16b87e1c82db4c7af87950952c3e4ad9acfa0984ce6f41b35e40e5449807437cc207ae00000000000000000000000000000000000000000000000000000000"
}
Loading

0 comments on commit 9a91c53

Please sign in to comment.