Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(javascore): Adapt ibc core to icon lightclient #141

Conversation

AntonAndell
Copy link
Collaborator

Description:

This branch contains all changes to comply with current light client and relay design.
Packet timeouts #122 along with general cleanup of unused code was also done.

Commit Message

type: commit message

see the guidelines for commit messages.

Changelog Entry

version: <log entry>

Checklist:

  • I have performed a self-review of my own code
  • I have documented my code in accordance with the documentation guidelines
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • I have run the unit tests
  • I only have one commit (if not, squash them into one commit).
  • I have a descriptive commit message that adheres to the commit message guidelines

Please review the CONTRIBUTING.md file for detailed contributing guidelines.

AntonAndell and others added 12 commits March 8, 2023 12:09
	* Fix issue with decoding byte array lenght
	* Fix issue with estimating size of a varInt
	* Use correct default values for proto messages
…ght-client' into feature/simple-ICON-protobuf-library
Add tests for adjacent block verification.
Add tests for malicous block updates and frezing client.
Adapt client structure to implement ILightClient.
Add temporary implementation of membership verification.
…ght-client' into feature/IIBC-108-tendermint-lightclient-unitTesting
…current stage

	In future branch verifyMembership should require positive result and return void
	* Add request timeout to do "nonMembershipProofs"
	* Add timeoutPacket handle to core, handler and module interface
	* Remove deprecated rlp-proto structs
	* Adapt eventlog to fit relay design
	* Change most instance varaible DBs to static to get below variable limit in goloop
@AntonAndell
Copy link
Collaborator Author

This pr can be on hold until IIBC-108 is finished and we can resolve conflicts and review after that

…nto feature/adapt-IBC-Core-to-ICON-Lightclient
@AntonAndell
Copy link
Collaborator Author

Also merged ICON mock lightclient into this branch to allow for testing easier with the relay.
#128

@AntonAndell AntonAndell linked an issue Mar 24, 2023 that may be closed by this pull request
@AntonAndell AntonAndell force-pushed the feature/adapt-IBC-Core-to-ICON-Lightclient branch from 52364c0 to ead6708 Compare March 24, 2023 11:33
@redlarva redlarva merged commit 7e569fc into IIBC-108-implement-tendermint-light-client Mar 27, 2023
@redlarva redlarva deleted the feature/adapt-IBC-Core-to-ICON-Lightclient branch March 27, 2023 06:52
redlarva added a commit that referenced this pull request Mar 29, 2023
)

* Add Java classes to parse JSON versions of IBC proto messages

* Add Java classes to represent messages from [ICS-26](https://github.com/cosmos/ibc/tree/main/spec/core/ics-026-routing-module#datagram-handlers-write)
Translated from interperation done in https://github.com/hyperledger-labs/yui-ibc-solidity/blob/main/contracts/core/25-handler/IBCMsgs.sol

* Add Java classes to parse JSON versions of IBC proto messages

Add RLP encoding to proto messages used in storage

* downrgrade javaeeUnittestVersion from 0.10.0 to 0.9.7

* feat: implement create keys for signing transaction  (#27)

fezt : Create keys

Co-authored-by: hemz10 <sph2740@example.com>

* feat: implement callrequest storage (#24)

* chore: add boilerplate for cosmwasm-contracts

* update cargo

* test: add unit-test setup

* test: setup mock env

* update test

* update test setup, cargo

* add call service message

* chore: inital ibc impl for xcall

* chore:  refactor message and address

* chore: implement state for xcall

* chore: update call service  message

* chore: add call message request storage

* chore: add call message response storage

* chore: add rust rlp library

* chore: update cargo

* remove admin and owner

* add storage key enum

* update types

* remove admin and owner management

* chore : restructure contract state and update methods

* update admin and owner store

* add storage key for cosmwasm persistant storage

* add rollback message

* Initial commit

* removed encodable and decodable

* format code

* format code

* chore: remove rollback

---------

Co-authored-by: shreyasbhat0 <shreyas.ks@hugobyte.com>
Co-authored-by: Shreyas S Bhat <35568964+shreyasbhat0@users.noreply.github.com>

* Feature/add gradle properties for version in java contracts (#28)

* chore: upgrade gradle version to 8.0

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* chore: add common version of java libraries for smart contracts

Signed-off-by: Night Owl <nightowl121@protonmail.com>

---------

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* Add ci to run while updating java contracts (#29)

* chore: add ci to run while updating java contracts

checks will run unit tests and optimize jar tasks

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* fix: fix command location for testing java contracts

Signed-off-by: Night Owl <nightowl121@protonmail.com>

---------

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* docs: ADR for relay (#21)

* feat: implement call message response storage (#18)

* chore: add boilerplate for cosmwasm-contracts

* update cargo

* test: add unit-test setup

* test: setup mock env

* update test

* update test setup, cargo

* add call service message

* chore: inital ibc impl for xcall

* chore:  refactor message and address

* chore: implement state for xcall

* chore: update call service  message

* chore: add call message request storage

* chore: add call message response storage

* chore: add rust rlp library

* chore: update cargo

* remove admin and owner

* add storage key enum

* update types

* remove admin and owner management

* chore : restructure contract state and update methods

* update admin and owner store

* add storage key for cosmwasm persistant storage

* update rlp cargo

* implement request methods

* init rlp encode and decode for messages

* chore: cargo clippy

* chore: update owner and admin

* chore: add unit test

* chore: add unit test for request

---------

Co-authored-by: Muhammed Irfan <50794925+MuhammedIrfan@users.noreply.github.com>

* downrgrade javaeeUnittestVersion from 0.10.0 to 0.9.7

* fix: fix folder name to run github actions

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* Import correct Version class in message classes

* modify gradle files and CI workflow to allow for CI builds

* Implement Client interferface/library for ICON handler
 * add to and from bytes to channel and connection end classes
 * add light client interface
 * add simple store class to use for now
 * add compare methods to height class

* Add inital implementation of the Connection library for IBC Handler

* Add inital implementation of the Channel library for IBC Handler

* Implement IBC handler message definitions as java classes (#32)

* Add Java classes to parse JSON versions of IBC proto messages

* Add Java classes to represent messages from [ICS-26](https://github.com/cosmos/ibc/tree/main/spec/core/ics-026-routing-module#datagram-handlers-write)
Translated from interperation done in https://github.com/hyperledger-labs/yui-ibc-solidity/blob/main/contracts/core/25-handler/IBCMsgs.sol

* feat: implement create keys for signing transaction  (#27)

fezt : Create keys

Co-authored-by: hemz10 <sph2740@example.com>

* feat: implement callrequest storage (#24)

* chore: add boilerplate for cosmwasm-contracts

* update cargo

* test: add unit-test setup

* test: setup mock env

* update test

* update test setup, cargo

* add call service message

* chore: inital ibc impl for xcall

* chore:  refactor message and address

* chore: implement state for xcall

* chore: update call service  message

* chore: add call message request storage

* chore: add call message response storage

* chore: add rust rlp library

* chore: update cargo

* remove admin and owner

* add storage key enum

* update types

* remove admin and owner management

* chore : restructure contract state and update methods

* update admin and owner store

* add storage key for cosmwasm persistant storage

* add rollback message

* Initial commit

* removed encodable and decodable

* format code

* format code

* chore: remove rollback

---------

Co-authored-by: shreyasbhat0 <shreyas.ks@hugobyte.com>
Co-authored-by: Shreyas S Bhat <35568964+shreyasbhat0@users.noreply.github.com>

* Feature/add gradle properties for version in java contracts (#28)

* chore: upgrade gradle version to 8.0

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* chore: add common version of java libraries for smart contracts

Signed-off-by: Night Owl <nightowl121@protonmail.com>

---------

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* Add ci to run while updating java contracts (#29)

* chore: add ci to run while updating java contracts

checks will run unit tests and optimize jar tasks

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* fix: fix command location for testing java contracts

Signed-off-by: Night Owl <nightowl121@protonmail.com>

---------

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* docs: ADR for relay (#21)

* feat: implement call message response storage (#18)

* chore: add boilerplate for cosmwasm-contracts

* update cargo

* test: add unit-test setup

* test: setup mock env

* update test

* update test setup, cargo

* add call service message

* chore: inital ibc impl for xcall

* chore:  refactor message and address

* chore: implement state for xcall

* chore: update call service  message

* chore: add call message request storage

* chore: add call message response storage

* chore: add rust rlp library

* chore: update cargo

* remove admin and owner

* add storage key enum

* update types

* remove admin and owner management

* chore : restructure contract state and update methods

* update admin and owner store

* add storage key for cosmwasm persistant storage

* update rlp cargo

* implement request methods

* init rlp encode and decode for messages

* chore: cargo clippy

* chore: update owner and admin

* chore: add unit test

* chore: add unit test for request

---------

Co-authored-by: Muhammed Irfan <50794925+MuhammedIrfan@users.noreply.github.com>

* downrgrade javaeeUnittestVersion from 0.10.0 to 0.9.7

* fix: fix folder name to run github actions

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* Import correct Version class in message classes

* modify gradle files and CI workflow to allow for CI builds

---------

Signed-off-by: Night Owl <nightowl121@protonmail.com>
Co-authored-by: Hemanth Kumar <96766939+hemz10@users.noreply.github.com>
Co-authored-by: hemz10 <sph2740@example.com>
Co-authored-by: Prathiksha-Nataraja <90592522+Prathiksha-Nataraja@users.noreply.github.com>
Co-authored-by: shreyasbhat0 <shreyas.ks@hugobyte.com>
Co-authored-by: Shreyas S Bhat <35568964+shreyasbhat0@users.noreply.github.com>
Co-authored-by: Night Owl <91905208+nightowl121@users.noreply.github.com>
Co-authored-by: viveksharmapoudel <viveksharmapoudel@gmail.com>
Co-authored-by: Muhammed Irfan <50794925+MuhammedIrfan@users.noreply.github.com>
Co-authored-by: Night Owl <nightowl121@protonmail.com>

* Add inital unittest, ignoring commitments

* add connection unit tests, ignoring commitments and storage assertions

* Add channel handler and  send/recv package unit tests. Ignored commitments

* Apply commitments for IBC host branch

* add packet RLP encoding

* Implement IBC Handler
    * Add unit test covering different connection scenarios
    * Add IBC module Interface and verify callbacks
    * Add inital Eventlogs similar to yui-solidity codebase
    * Add Owner premission to client registrations and port binding

* Inital light client implementation
    * Implement header verification
    * Add simple unit tests with data from archway testnets
    * Add proto encoding utils

* Change to BTP messages instead of commitments

* style: add code formatting by IDE

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* refactor: simplify code

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* docs: remove @dev tag in javadoc

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* refactor: keep comments from previous version

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* fix: explicitly specify dependency for local projects

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* feat(javascore): Simple java score enabled protbuf library/parser.  (#58)

* Intial simple and unoptimized  parser finished

* Apply generated protoparser to IBC implementation
	* Fix issue with decoding byte array lenght
	* Fix issue with estimating size of a varInt
	* Use correct default values for proto messages

* Remove redundant CanonicalBlockID from tendermint proto

* fix: issues in imports while resolving merge conflicts

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* feat(javascore): Use google protobuf for testing. (#82)

* feat(javascore): change IBC unitTests to use protoc generated proto

---------

Co-authored-by: Night Owl <nightowl121@protonmail.com>
Co-authored-by: red__larva <red.x.larva@protonmail.com>

---------

Signed-off-by: Night Owl <nightowl121@protonmail.com>
Co-authored-by: Night Owl <nightowl121@protonmail.com>
Co-authored-by: red__larva <red.x.larva@protonmail.com>

* feat(javascore): IIBC-108 Tendermint lightclient header verification unit tests (#125)

* Intial simple and unoptimized  parser finished

* Apply generated protoparser to IBC implementation
	* Fix issue with decoding byte array lenght
	* Fix issue with estimating size of a varInt
	* Use correct default values for proto messages

* Remove redundant CanonicalBlockID from tendermint proto

* change IBC unitTests to use protoc generated proto

* Extend the block header verification testing for tendermint lighclient

Add tests for adjacent block verification.
Add tests for malicous block updates and frezing client.
Adapt client structure to implement ILightClient.
Add temporary implementation of membership verification.

* Fix merge issues

* Remove tendermint interface implemenation to allow for unit tests at current stage

	In future branch verifyMembership should require positive result and return void

* Set chain score as a string

* feat(javascore): Adapt ibc core to icon lightclient (#141)

* Intial simple and unoptimized  parser finished

* Apply generated protoparser to IBC implementation
	* Fix issue with decoding byte array lenght
	* Fix issue with estimating size of a varInt
	* Use correct default values for proto messages

* Remove redundant CanonicalBlockID from tendermint proto

* change IBC unitTests to use protoc generated proto

* Extend the block header verification testing for tendermint lighclient

Add tests for adjacent block verification.
Add tests for malicous block updates and frezing client.
Adapt client structure to implement ILightClient.
Add temporary implementation of membership verification.

* Fix merge issues

* Remove tendermint interface implemenation to allow for unit tests at current stage

	In future branch verifyMembership should require positive result and return void

* Add simple mock lightclient to test handler logic

* remove built in height decoding in consensus state

* Adapt IBC core to lightclient design

	* Add request timeout to do "nonMembershipProofs"
	* Add timeoutPacket handle to core, handler and module interface
	* Remove deprecated rlp-proto structs
	* Adapt eventlog to fit relay design
	* Change most instance varaible DBs to static to get below variable limit in goloop

* Adapt client verification and update to fit java score

* Add null checks before proto decodings

---------

Co-authored-by: redlarva <91685111+redlarva@users.noreply.github.com>

* fix(javascore): fix method name used for encoding integers in javascore proto generator (#155)

fix(javascore): fix method name used for encoding integers in javascore prot generator

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* Allow for version number during proto genenartion in java

---------

Signed-off-by: Night Owl <nightowl121@protonmail.com>
Co-authored-by: Hemanth Kumar <96766939+hemz10@users.noreply.github.com>
Co-authored-by: hemz10 <sph2740@example.com>
Co-authored-by: Prathiksha-Nataraja <90592522+Prathiksha-Nataraja@users.noreply.github.com>
Co-authored-by: shreyasbhat0 <shreyas.ks@hugobyte.com>
Co-authored-by: Shreyas S Bhat <35568964+shreyasbhat0@users.noreply.github.com>
Co-authored-by: Night Owl <91905208+nightowl121@users.noreply.github.com>
Co-authored-by: viveksharmapoudel <viveksharmapoudel@gmail.com>
Co-authored-by: Muhammed Irfan <50794925+MuhammedIrfan@users.noreply.github.com>
Co-authored-by: Night Owl <nightowl121@protonmail.com>
Co-authored-by: red__larva <red.x.larva@protonmail.com>
Co-authored-by: redlarva <91685111+redlarva@users.noreply.github.com>
ibrizsabin pushed a commit that referenced this pull request Apr 3, 2023
)

* Add Java classes to parse JSON versions of IBC proto messages

* Add Java classes to represent messages from [ICS-26](https://github.com/cosmos/ibc/tree/main/spec/core/ics-026-routing-module#datagram-handlers-write)
Translated from interperation done in https://github.com/hyperledger-labs/yui-ibc-solidity/blob/main/contracts/core/25-handler/IBCMsgs.sol

* Add Java classes to parse JSON versions of IBC proto messages

Add RLP encoding to proto messages used in storage

* downrgrade javaeeUnittestVersion from 0.10.0 to 0.9.7

* feat: implement create keys for signing transaction  (#27)

fezt : Create keys

Co-authored-by: hemz10 <sph2740@example.com>

* feat: implement callrequest storage (#24)

* chore: add boilerplate for cosmwasm-contracts

* update cargo

* test: add unit-test setup

* test: setup mock env

* update test

* update test setup, cargo

* add call service message

* chore: inital ibc impl for xcall

* chore:  refactor message and address

* chore: implement state for xcall

* chore: update call service  message

* chore: add call message request storage

* chore: add call message response storage

* chore: add rust rlp library

* chore: update cargo

* remove admin and owner

* add storage key enum

* update types

* remove admin and owner management

* chore : restructure contract state and update methods

* update admin and owner store

* add storage key for cosmwasm persistant storage

* add rollback message

* Initial commit

* removed encodable and decodable

* format code

* format code

* chore: remove rollback

---------

Co-authored-by: shreyasbhat0 <shreyas.ks@hugobyte.com>
Co-authored-by: Shreyas S Bhat <35568964+shreyasbhat0@users.noreply.github.com>

* Feature/add gradle properties for version in java contracts (#28)

* chore: upgrade gradle version to 8.0

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* chore: add common version of java libraries for smart contracts

Signed-off-by: Night Owl <nightowl121@protonmail.com>

---------

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* Add ci to run while updating java contracts (#29)

* chore: add ci to run while updating java contracts

checks will run unit tests and optimize jar tasks

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* fix: fix command location for testing java contracts

Signed-off-by: Night Owl <nightowl121@protonmail.com>

---------

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* docs: ADR for relay (#21)

* feat: implement call message response storage (#18)

* chore: add boilerplate for cosmwasm-contracts

* update cargo

* test: add unit-test setup

* test: setup mock env

* update test

* update test setup, cargo

* add call service message

* chore: inital ibc impl for xcall

* chore:  refactor message and address

* chore: implement state for xcall

* chore: update call service  message

* chore: add call message request storage

* chore: add call message response storage

* chore: add rust rlp library

* chore: update cargo

* remove admin and owner

* add storage key enum

* update types

* remove admin and owner management

* chore : restructure contract state and update methods

* update admin and owner store

* add storage key for cosmwasm persistant storage

* update rlp cargo

* implement request methods

* init rlp encode and decode for messages

* chore: cargo clippy

* chore: update owner and admin

* chore: add unit test

* chore: add unit test for request

---------

Co-authored-by: Muhammed Irfan <50794925+MuhammedIrfan@users.noreply.github.com>

* downrgrade javaeeUnittestVersion from 0.10.0 to 0.9.7

* fix: fix folder name to run github actions

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* Import correct Version class in message classes

* modify gradle files and CI workflow to allow for CI builds

* Implement Client interferface/library for ICON handler
 * add to and from bytes to channel and connection end classes
 * add light client interface
 * add simple store class to use for now
 * add compare methods to height class

* Add inital implementation of the Connection library for IBC Handler

* Add inital implementation of the Channel library for IBC Handler

* Implement IBC handler message definitions as java classes (#32)

* Add Java classes to parse JSON versions of IBC proto messages

* Add Java classes to represent messages from [ICS-26](https://github.com/cosmos/ibc/tree/main/spec/core/ics-026-routing-module#datagram-handlers-write)
Translated from interperation done in https://github.com/hyperledger-labs/yui-ibc-solidity/blob/main/contracts/core/25-handler/IBCMsgs.sol

* feat: implement create keys for signing transaction  (#27)

fezt : Create keys

Co-authored-by: hemz10 <sph2740@example.com>

* feat: implement callrequest storage (#24)

* chore: add boilerplate for cosmwasm-contracts

* update cargo

* test: add unit-test setup

* test: setup mock env

* update test

* update test setup, cargo

* add call service message

* chore: inital ibc impl for xcall

* chore:  refactor message and address

* chore: implement state for xcall

* chore: update call service  message

* chore: add call message request storage

* chore: add call message response storage

* chore: add rust rlp library

* chore: update cargo

* remove admin and owner

* add storage key enum

* update types

* remove admin and owner management

* chore : restructure contract state and update methods

* update admin and owner store

* add storage key for cosmwasm persistant storage

* add rollback message

* Initial commit

* removed encodable and decodable

* format code

* format code

* chore: remove rollback

---------

Co-authored-by: shreyasbhat0 <shreyas.ks@hugobyte.com>
Co-authored-by: Shreyas S Bhat <35568964+shreyasbhat0@users.noreply.github.com>

* Feature/add gradle properties for version in java contracts (#28)

* chore: upgrade gradle version to 8.0

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* chore: add common version of java libraries for smart contracts

Signed-off-by: Night Owl <nightowl121@protonmail.com>

---------

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* Add ci to run while updating java contracts (#29)

* chore: add ci to run while updating java contracts

checks will run unit tests and optimize jar tasks

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* fix: fix command location for testing java contracts

Signed-off-by: Night Owl <nightowl121@protonmail.com>

---------

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* docs: ADR for relay (#21)

* feat: implement call message response storage (#18)

* chore: add boilerplate for cosmwasm-contracts

* update cargo

* test: add unit-test setup

* test: setup mock env

* update test

* update test setup, cargo

* add call service message

* chore: inital ibc impl for xcall

* chore:  refactor message and address

* chore: implement state for xcall

* chore: update call service  message

* chore: add call message request storage

* chore: add call message response storage

* chore: add rust rlp library

* chore: update cargo

* remove admin and owner

* add storage key enum

* update types

* remove admin and owner management

* chore : restructure contract state and update methods

* update admin and owner store

* add storage key for cosmwasm persistant storage

* update rlp cargo

* implement request methods

* init rlp encode and decode for messages

* chore: cargo clippy

* chore: update owner and admin

* chore: add unit test

* chore: add unit test for request

---------

Co-authored-by: Muhammed Irfan <50794925+MuhammedIrfan@users.noreply.github.com>

* downrgrade javaeeUnittestVersion from 0.10.0 to 0.9.7

* fix: fix folder name to run github actions

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* Import correct Version class in message classes

* modify gradle files and CI workflow to allow for CI builds

---------

Signed-off-by: Night Owl <nightowl121@protonmail.com>
Co-authored-by: Hemanth Kumar <96766939+hemz10@users.noreply.github.com>
Co-authored-by: hemz10 <sph2740@example.com>
Co-authored-by: Prathiksha-Nataraja <90592522+Prathiksha-Nataraja@users.noreply.github.com>
Co-authored-by: shreyasbhat0 <shreyas.ks@hugobyte.com>
Co-authored-by: Shreyas S Bhat <35568964+shreyasbhat0@users.noreply.github.com>
Co-authored-by: Night Owl <91905208+nightowl121@users.noreply.github.com>
Co-authored-by: viveksharmapoudel <viveksharmapoudel@gmail.com>
Co-authored-by: Muhammed Irfan <50794925+MuhammedIrfan@users.noreply.github.com>
Co-authored-by: Night Owl <nightowl121@protonmail.com>

* Add inital unittest, ignoring commitments

* add connection unit tests, ignoring commitments and storage assertions

* Add channel handler and  send/recv package unit tests. Ignored commitments

* Apply commitments for IBC host branch

* add packet RLP encoding

* Implement IBC Handler
    * Add unit test covering different connection scenarios
    * Add IBC module Interface and verify callbacks
    * Add inital Eventlogs similar to yui-solidity codebase
    * Add Owner premission to client registrations and port binding

* Inital light client implementation
    * Implement header verification
    * Add simple unit tests with data from archway testnets
    * Add proto encoding utils

* Change to BTP messages instead of commitments

* style: add code formatting by IDE

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* refactor: simplify code

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* docs: remove @dev tag in javadoc

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* refactor: keep comments from previous version

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* fix: explicitly specify dependency for local projects

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* feat(javascore): Simple java score enabled protbuf library/parser.  (#58)

* Intial simple and unoptimized  parser finished

* Apply generated protoparser to IBC implementation
	* Fix issue with decoding byte array lenght
	* Fix issue with estimating size of a varInt
	* Use correct default values for proto messages

* Remove redundant CanonicalBlockID from tendermint proto

* fix: issues in imports while resolving merge conflicts

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* feat(javascore): Use google protobuf for testing. (#82)

* feat(javascore): change IBC unitTests to use protoc generated proto

---------

Co-authored-by: Night Owl <nightowl121@protonmail.com>
Co-authored-by: red__larva <red.x.larva@protonmail.com>

---------

Signed-off-by: Night Owl <nightowl121@protonmail.com>
Co-authored-by: Night Owl <nightowl121@protonmail.com>
Co-authored-by: red__larva <red.x.larva@protonmail.com>

* feat(javascore): IIBC-108 Tendermint lightclient header verification unit tests (#125)

* Intial simple and unoptimized  parser finished

* Apply generated protoparser to IBC implementation
	* Fix issue with decoding byte array lenght
	* Fix issue with estimating size of a varInt
	* Use correct default values for proto messages

* Remove redundant CanonicalBlockID from tendermint proto

* change IBC unitTests to use protoc generated proto

* Extend the block header verification testing for tendermint lighclient

Add tests for adjacent block verification.
Add tests for malicous block updates and frezing client.
Adapt client structure to implement ILightClient.
Add temporary implementation of membership verification.

* Fix merge issues

* Remove tendermint interface implemenation to allow for unit tests at current stage

	In future branch verifyMembership should require positive result and return void

* Set chain score as a string

* feat(javascore): Adapt ibc core to icon lightclient (#141)

* Intial simple and unoptimized  parser finished

* Apply generated protoparser to IBC implementation
	* Fix issue with decoding byte array lenght
	* Fix issue with estimating size of a varInt
	* Use correct default values for proto messages

* Remove redundant CanonicalBlockID from tendermint proto

* change IBC unitTests to use protoc generated proto

* Extend the block header verification testing for tendermint lighclient

Add tests for adjacent block verification.
Add tests for malicous block updates and frezing client.
Adapt client structure to implement ILightClient.
Add temporary implementation of membership verification.

* Fix merge issues

* Remove tendermint interface implemenation to allow for unit tests at current stage

	In future branch verifyMembership should require positive result and return void

* Add simple mock lightclient to test handler logic

* remove built in height decoding in consensus state

* Adapt IBC core to lightclient design

	* Add request timeout to do "nonMembershipProofs"
	* Add timeoutPacket handle to core, handler and module interface
	* Remove deprecated rlp-proto structs
	* Adapt eventlog to fit relay design
	* Change most instance varaible DBs to static to get below variable limit in goloop

* Adapt client verification and update to fit java score

* Add null checks before proto decodings

---------

Co-authored-by: redlarva <91685111+redlarva@users.noreply.github.com>

* fix(javascore): fix method name used for encoding integers in javascore proto generator (#155)

fix(javascore): fix method name used for encoding integers in javascore prot generator

Signed-off-by: Night Owl <nightowl121@protonmail.com>

* Allow for version number during proto genenartion in java

---------

Signed-off-by: Night Owl <nightowl121@protonmail.com>
Co-authored-by: Hemanth Kumar <96766939+hemz10@users.noreply.github.com>
Co-authored-by: hemz10 <sph2740@example.com>
Co-authored-by: Prathiksha-Nataraja <90592522+Prathiksha-Nataraja@users.noreply.github.com>
Co-authored-by: shreyasbhat0 <shreyas.ks@hugobyte.com>
Co-authored-by: Shreyas S Bhat <35568964+shreyasbhat0@users.noreply.github.com>
Co-authored-by: Night Owl <91905208+nightowl121@users.noreply.github.com>
Co-authored-by: viveksharmapoudel <viveksharmapoudel@gmail.com>
Co-authored-by: Muhammed Irfan <50794925+MuhammedIrfan@users.noreply.github.com>
Co-authored-by: Night Owl <nightowl121@protonmail.com>
Co-authored-by: red__larva <red.x.larva@protonmail.com>
Co-authored-by: redlarva <91685111+redlarva@users.noreply.github.com>
ibrizsabin pushed a commit that referenced this pull request Feb 23, 2024
* docs: Add new message strucute to xCall design doc

* feat: Add message types to xCall

* fix: Revert change of rollback db name

Break out db paths into static String variables

* fix: Revert to using seperate databases for pending requests and responses
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ICON - Mock lightClient IBC Handler - Packet timeouts ICON - Adapt IBC Core to ICON light client design
2 participants