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

chore: sync channel upgradability branch with main #3224

Merged
merged 568 commits into from
Mar 9, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
568 commits
Select commit Hold shift + click to select a range
35b6084
add changelog entries for v5.0.0
crodriguezvega Oct 26, 2022
e3a32a6
chore: makefile cleanup/fixes (#2549)
crodriguezvega Oct 26, 2022
6105db4
use controller module address instead of module name for NewMsgChanne…
catShaark Oct 27, 2022
5cafc24
test: 03-connection e2e test param change (#2139)
seantking Oct 27, 2022
eab24e8
fix: forbid negative values for trusting period, unbonding period and…
crodriguezvega Oct 27, 2022
5260c77
refactor!: allow for serialization of proto message without fulfillme…
colin-axner Oct 27, 2022
f9bbc4f
alignment
crodriguezvega Oct 28, 2022
8290d8c
fix e2e ica tests (#2628)
crodriguezvega Oct 28, 2022
17a061c
rename `ClientParams` gRPC method to `Params` (#2573)
crodriguezvega Oct 28, 2022
5f9966b
remove port prefix requirement (#2590)
0xLaurenzo Oct 28, 2022
09de760
Update package-lock.json (#2569)
theinternetofdefcon Oct 31, 2022
623e593
Update package-lock.json (#2570)
theinternetofdefcon Oct 31, 2022
e8ff311
fix: rm bech32 check from owner address on ICA controller msgs Regist…
charleenfei Oct 31, 2022
a0e59b8
Fetch makefile dependencies before building docker image (#2615)
chatton Oct 31, 2022
29be0da
post v2.4.2, v3.3.1, v4.1.1 and v5.0.1 release chores (#2627)
crodriguezvega Nov 2, 2022
393247b
fix: skip emission of unpopulated memo field in ics20 (#2651)
colin-axner Nov 2, 2022
47e1c9a
docs: ics27 v6 documentation updates (#2561)
damiannolan Nov 2, 2022
3ecdeed
e2e: adding e2e upgrade test for ibc-go/v6 (#2490)
damiannolan Nov 2, 2022
f0980d6
e2e: add transfer with memo compatibility tests (#2640)
crodriguezvega Nov 2, 2022
e678c69
Build E2E tests in workflow (#2649)
chatton Nov 2, 2022
ce74b00
Add scopedkeeper as an interface to exported package (#2638)
Anmol1696 Nov 2, 2022
7190305
chore: add potential use cases documentation for ica (#2594)
colin-axner Nov 2, 2022
6df0e53
chore: small README nits for readability and usability (#2669)
charleenfei Nov 3, 2022
fb996ca
update code owners (#2665)
crodriguezvega Nov 3, 2022
f69761d
fix(testing): fix block proposer and allow Default gas to be modified…
ramacarlucho Nov 4, 2022
b1f494c
add check send enabled (#2679)
crodriguezvega Nov 4, 2022
c9b8064
fix: avoid race conditions in ics27 handshakes (#2682)
damiannolan Nov 7, 2022
b2bb2de
Removing stale comment (#2685)
chatton Nov 8, 2022
f02f9d1
post release chores (#2695)
crodriguezvega Nov 8, 2022
4d19c16
removed unused variables (#2692)
Daniyal98 Nov 8, 2022
088da9c
deps: updating sdk to v0.46.4 (#2647)
damiannolan Nov 8, 2022
48321ff
e2e: updating upgrade test to use msg server (#2681)
chatton Nov 8, 2022
cd228d1
chore: update protobuf generation to latest buf changes (#2705)
damiannolan Nov 9, 2022
7249d82
Update check x/bank sendEnabled link in changelog (#2714)
calvinaco Nov 9, 2022
3e8935e
e2e: fix memo test version declaration (#2723)
colin-axner Nov 10, 2022
c912fd9
chore: rm event emission after context caching (#2662)
charleenfei Nov 10, 2022
8c07cb8
post v5.1.0 release chores (#2722)
crodriguezvega Nov 12, 2022
050eefd
Update transfer-memo.json
crodriguezvega Nov 12, 2022
cce91a1
build(deps): bump github.com/spf13/viper from 1.13.0 to 1.14.0 (#2702)
dependabot[bot] Nov 14, 2022
3b2ab6a
chore: e2e for ICA reopening (#2720)
charleenfei Nov 14, 2022
2dfd275
build(deps): bump golangci/golangci-lint-action from 3.3.0 to 3.3.1 (…
dependabot[bot] Nov 14, 2022
d46f59b
Compare signature data in misbehaviours only if path differs (#2744)
chatton Nov 14, 2022
68ba375
chore: rename all occurances of smtypes and solomachinetypes import a…
chatton Nov 14, 2022
f54143e
add missing set order functions for ica (#2740)
crodriguezvega Nov 15, 2022
510afbe
test: added test to verify signbytes marshal correctly for single sig…
chatton Nov 15, 2022
1b7745f
docs: fix migration/docs for ICA controller middleware (#2737)
crodriguezvega Nov 15, 2022
fb9dedd
chore: updating `VerifyMembership` and `VerifyNonMembership` methods …
damiannolan Nov 15, 2022
65b3ddf
e2e: updated compatibility tests to support running against all unrel…
chatton Nov 15, 2022
3e072a1
chore: integrated git cliff into the code base to automate generation…
chatton Nov 15, 2022
25e6ae5
chore: fixing dead link in PR template (#2777)
chatton Nov 16, 2022
876b73a
deprecated(api)!: (06-solomachine) [#2761] removed deprecated `Client…
chatton Nov 17, 2022
a05247c
feat: adding connection params grpc and cli query (#2745)
damiannolan Nov 17, 2022
1f140ea
chore: adding sentinel path for solomachine header (#2748)
damiannolan Nov 17, 2022
cb92f6f
fix: added check for empty path in 06-solomachine (#2741)
charleenfei Nov 18, 2022
b2e7196
chore: fixing link to interchain accounts blogpost (#2787)
chatton Nov 18, 2022
db5e738
deps: bump SDK to v0.46.6 (#2784)
crodriguezvega Nov 19, 2022
996448b
chore: adding migration doc for v6 to vuepress config (#2788)
damiannolan Nov 21, 2022
375b0e1
e2e: remove irrelevant compatibility tests (#2780)
crodriguezvega Nov 22, 2022
19c2029
remove link to ICS 009 (#2797)
crodriguezvega Nov 22, 2022
c40d555
chore: adding defensive checks to ics27 capability migrations (#2798)
damiannolan Nov 22, 2022
f9b8d6a
chore: move verifyMisbehavour to the top of misbehaviour_handle.go
charleenfei Nov 22, 2022
3f27d4e
chore: move solomachine CheckForMisbehaviour to `misbehaviour_handle.…
charleenfei Nov 22, 2022
7d60efa
chore: move Tendermint CheckForMisbehaviour to `misbehaviour_handle.g…
charleenfei Nov 22, 2022
fe5fb15
chore: remove custom dependabot reviewers (#2804)
colin-axner Nov 22, 2022
ac561b4
fix: allow zero proof height, solo machine discards provided proof he…
colin-axner Nov 22, 2022
43ce616
chore: mergify backport task for v5.2.x (#2806)
crodriguezvega Nov 22, 2022
bbac2b1
Save gas on IsFeeEnabled (#2786)
alpe Nov 22, 2022
6dd5881
chore: removed usage of deprecated `set-output` field in all Github w…
chatton Nov 23, 2022
50e1211
Add more events to on IBC transfer, add tests for ibc transfer event …
Anmol1696 Nov 23, 2022
ea6e42b
build(deps): bump github.com/cosmos/cosmos-proto from 1.0.0-alpha7 to…
dependabot[bot] Nov 23, 2022
86332d2
e2e: added ICS27 e2e test with governance. (#2808)
chatton Nov 23, 2022
2180fa4
feat: add helper function for parsing clientID from client state path…
colin-axner Nov 23, 2022
d90be00
e2e: add compatibility tests for ICA to v6.0.x (#2805)
crodriguezvega Nov 25, 2022
4c91765
test: updated solomachine tests to perform an ICS20 transfer instead …
chatton Nov 28, 2022
98fc95e
e2e: update icad tags for manual e2e workflow
crodriguezvega Nov 29, 2022
ddf9baf
e2e: enabling compatibility tests to be usable from other repositorie…
chatton Nov 29, 2022
9720607
feat: add optional migration pruning for tendermint consensus states …
colin-axner Nov 29, 2022
83f1cd1
feat: add AppModuleBasic for tendermint client (#2825)
colin-axner Nov 29, 2022
13e0c57
feat: add AppModuleBasic for solo machine client (#2826)
colin-axner Nov 29, 2022
8c8b0e8
feat: add automatic in-place migrations for 02-client-refactor (v7) (…
colin-axner Nov 29, 2022
2bfdbaf
build(deps): bump google.golang.org/grpc from 1.50.1 to 1.51.0 (#2794)
dependabot[bot] Nov 30, 2022
ba1e50d
e2e: add base and incentivized ica e2e tests to v6.0.x (#2832)
crodriguezvega Nov 30, 2022
53dbc41
bug: fix clientID validation regex to conform closer to spec (#2510)
odeke-em Nov 30, 2022
bfaf6e0
follow up for #2510
crodriguezvega Nov 30, 2022
b26afd4
Revert "follow up for #2510"
crodriguezvega Nov 30, 2022
1fb7713
e2e: Added support for running compatibility tests off the main branc…
chatton Nov 30, 2022
9040647
Renaming variable SubModuleName to ModuleName (#2851)
chatton Nov 30, 2022
b28cc47
Renaming variable SubmoduleName to ModuleName in 07-tendermint (#2852)
chatton Nov 30, 2022
788cc7c
refactor: rename IterateClients to IterateClientStates, add a prefix …
colin-axner Nov 30, 2022
a5e3249
chore: add upgrade handler to simapp for v6 -> v7 (#2842)
charleenfei Nov 30, 2022
1986aaf
chore: follow up for #2510 (#2854)
crodriguezvega Dec 1, 2022
e7c3427
e2e: move tag determination logic into the e2e Github workflows. (#2849)
chatton Dec 2, 2022
2132585
deps: Bump ICS 23 to v0.9.0
colin-axner Dec 4, 2022
7adae35
docs: updating v7 migration doc with generic state verification metho…
damiannolan Dec 5, 2022
4d13768
fix: fix unmarshalling of packet data in send tx CLI
crodriguezvega Dec 5, 2022
816ef50
chore: add wait time for packet relay to e2e test for ICA channel ope…
charleenfei Dec 5, 2022
4e8c126
chore: scaffold custom IBC light client development guide (#2860)
charleenfei Dec 5, 2022
cab707d
chore: changing ibcprotocol.org to ibcprotocol.dev (#2884)
chatton Dec 6, 2022
cbf9fb4
chore: update README to include link to IDA (#2887)
charleenfei Dec 6, 2022
e1b1488
feat: Add genesis migrations for v6 to v7. The migration migrates the…
colin-axner Dec 7, 2022
9c91923
refactor: simplify automatic migration code by using client keeper fu…
colin-axner Dec 7, 2022
4befa47
imp(api)!: remove legacy migrations required for upgrading from Starg…
colin-axner Dec 7, 2022
b25b42e
chore: remove unnecessary file (#2898)
colin-axner Dec 7, 2022
7bb7844
Update release-tracker.md
crodriguezvega Dec 8, 2022
38b9531
docs: v6 ICA migration docs improvements
crodriguezvega Dec 8, 2022
225cb72
e2e: changing default relayer tag to be v2.1.2 instead of main. (#2903)
chatton Dec 8, 2022
ff255c8
refactor: simplify optional tendermint pruning migrations (#2862)
colin-axner Dec 8, 2022
4647b65
chore: add tmsdkeys to CODEOWNER for docs (#2904)
colin-axner Dec 8, 2022
02f7c15
docs: add legacy docs for ICA
crodriguezvega Dec 8, 2022
9d9ce70
docs: added documentation for client state methods. (#2886)
chatton Dec 8, 2022
42a6f5f
docs: improvements to ICA docs
crodriguezvega Dec 8, 2022
3d2b323
docs: move solomachine docs into the docs directory. (#2908)
chatton Dec 8, 2022
58d2f32
deps: bump technote-space/get-diff-action from 6.1.1 to 6.1.2 (#2899)
dependabot[bot] Dec 8, 2022
8c6d9ac
deps: bump github.com/cosmos/cosmos-proto from 1.0.0-alpha8 to 1.0.0-…
dependabot[bot] Dec 8, 2022
cec1048
update README (#2910)
charleenfei Dec 9, 2022
7ae9769
Update CHANGELOG.md
crodriguezvega Dec 9, 2022
8479324
chore: update ibctest to latest commit (#2909)
charleenfei Dec 12, 2022
efdf46d
Fixing markdown link (#2924)
chatton Dec 12, 2022
6048c87
post v6.0.0 release chores (#2919)
crodriguezvega Dec 12, 2022
58d7989
docs: update integration docs to include light client registration. (…
chatton Dec 12, 2022
f24f41e
imp: Add `AssertEvents` which asserts events against expected event m…
Anmol1696 Dec 12, 2022
a3b7581
e2e: adding e2e upgrade test for ibc-go v7 (#2902)
charleenfei Dec 12, 2022
57da75a
e2e: update tags in e2e upgrade test
crodriguezvega Dec 14, 2022
77e3e99
chore: use diffs to make registration more clear (#2927)
colin-axner Dec 14, 2022
ad6ed7e
nit: fix typo in a comment
francas Dec 14, 2022
ca35138
refactor: require light clients to set the initial client state and c…
damiannolan Dec 15, 2022
866bb9a
chore: add backports for v4.3.x and v6.1.x
crodriguezvega Dec 16, 2022
c30f5d3
update compatibility tests with new release branches (#2946)
crodriguezvega Dec 16, 2022
c676bc6
fix(statemachine)!: check x/bank send enabled before escrowing fees
crodriguezvega Dec 17, 2022
50091fa
chore(deps): bump goreleaser/goreleaser-action from 3 to 4 (#2932)
dependabot[bot] Dec 19, 2022
fe57b8c
chore(api)!: removing solomachine header sequence (#2941)
damiannolan Dec 19, 2022
01dbbca
chore(deps): bump bufbuild/buf-setup-action from 1.9.0 to 1.10.0 (#2933)
dependabot[bot] Dec 19, 2022
6ccd8f1
chore: adding defensive check to v7 migrations (#2948)
damiannolan Dec 19, 2022
a66bc14
build(deps): bump cosmossdk.io/math from 1.0.0-beta.3 to 1.0.0-beta.4…
dependabot[bot] Dec 20, 2022
0c9506c
docs: update consensus state docs (#2937)
charleenfei Dec 20, 2022
4f539fb
docs: lightclient dev guide overview section (#2901)
damiannolan Dec 20, 2022
2ba88c5
Update release-tracker.md
crodriguezvega Dec 21, 2022
782adfc
update roadmap
crodriguezvega Dec 21, 2022
bc1ed4a
post v5.2.0 and v6.1.0 release chores (#2957)
crodriguezvega Dec 21, 2022
1352b03
update release-tracker.md
crodriguezvega Dec 21, 2022
a89d5a7
update roadmap.md
crodriguezvega Dec 21, 2022
b697a6f
chore: prune expired `07-tendermint` consensus states on duplicate he…
damiannolan Dec 22, 2022
4e5c052
chore: updating adr version numbers and removing unnecessary comment …
damiannolan Dec 23, 2022
48efd8e
improvement: allow chains that can't introspect their own `ConsensusS…
seunlanlege Dec 27, 2022
6b38711
chore: Improved logging in IBC Core (#2976)
chatton Jan 9, 2023
c8b6c3a
docs: adding solomachine v7 migration docs (#2968)
damiannolan Jan 9, 2023
38db7a5
docs: adding export metadata docs for light client module genesis (#2…
damiannolan Jan 9, 2023
8e00eca
update roadmap
crodriguezvega Jan 9, 2023
8dc9283
docs: existence and non-existence proofs (#2966)
charleenfei Jan 9, 2023
082ed9f
fix typo
crodriguezvega Jan 10, 2023
9954f1d
docs: explain how to implement the four client state functions which …
charleenfei Jan 10, 2023
7e34b64
docs: move ica requirements doc + add requirements doc template (#2917)
crodriguezvega Jan 10, 2023
737e097
chore: Moved the ibc module name into the exported package (#2982)
chatton Jan 11, 2023
70f03b1
docs: light client dev guide `CheckSubstituteAndUpdateState` (#2981)
charleenfei Jan 11, 2023
0607f9b
docs: light client dev guide `VerifyUpgradeAndUpdateState`, `VerifyMe…
charleenfei Jan 11, 2023
1545016
deps: bump google.golang.org/grpc from 1.51.0 to 1.52.0 (#2999)
dependabot[bot] Jan 12, 2023
b8e05d3
build(deps): bump bufbuild/buf-setup-action from 1.10.0 to 1.11.0 (#2…
dependabot[bot] Jan 13, 2023
e650be9
deps: update to cosmos-sdk v0.47 (#2672)
tac0turtle Jan 13, 2023
50bab6d
build(deps): bump bufbuild/buf-setup-action from 1.11.0 to 1.12.0 (#3…
dependabot[bot] Jan 13, 2023
6e67730
build(deps): bump docker/metadata-action from 4.1.1 to 4.3.0 (#3007)
dependabot[bot] Jan 13, 2023
96d58e7
lint tests (#2926)
faddat Jan 16, 2023
f88e89f
build(deps): bump docker/build-push-action from 3.2.0 to 3.3.0 (#3015)
dependabot[bot] Jan 16, 2023
5585465
build(deps): bump google.golang.org/grpc from 1.51.0 to 1.52.0 (#3016)
dependabot[bot] Jan 17, 2023
8f0cfb0
Update the ecosystem links in the readme (#3018)
womensrights Jan 17, 2023
a6d251e
chore(statemachine)!: write channel state before invoking app callbac…
damiannolan Jan 18, 2023
8b03197
fix: correctly close iterator in `07-tendermint` store (#3022)
damiannolan Jan 18, 2023
c56f789
fix: change check to disallow optimistic sends (#3009)
charleenfei Jan 18, 2023
0a427c6
chore: use `sdk.LogDeferred` when closing store iterators
damiannolan Jan 19, 2023
2f93999
ics29 v1 requirements doc (#2958)
crodriguezvega Jan 19, 2023
80d7f8b
docs: refactor contributing guidelines (#2706)
crodriguezvega Jan 19, 2023
ff766e3
fix testing package in `types` tests for transfer (#3005)
crodriguezvega Jan 19, 2023
3ecc7dd
chore: adding distribute fee events to ics29
damiannolan Jan 19, 2023
887cba1
fix typos
crodriguezvega Jan 22, 2023
cfcdec0
Fix e2e tests for pre sdk v0.47 chains (#3026)
chatton Jan 24, 2023
14a7fa0
build(deps): bump github.com/spf13/viper from 1.14.0 to 1.15.0 (#3035)
dependabot[bot] Jan 24, 2023
3365780
temporarily update dockerfile to add all (#3050)
chatton Jan 24, 2023
af9b461
deps: update cosmos-sdk buf dependency and rebuild protos (#3024)
damiannolan Jan 24, 2023
17dd77a
chore: use correct BSR proto repo in buf.yaml (#3053)
damiannolan Jan 25, 2023
e093d85
chore: bumping go mod to ibc-go/v7 (#3014)
damiannolan Jan 25, 2023
e92aefe
fix: update `Paginate` to use `FilterPaginate` in `ClientStates` and …
charleenfei Jan 25, 2023
aed382b
build(deps): bump google.golang.org/grpc from 1.52.0 to 1.52.1 (#3059)
dependabot[bot] Jan 25, 2023
79b349a
docs: add documentation for `TransferAuthorization` (#3044)
charleenfei Jan 26, 2023
1160d69
chore: add compatibility tests for v7.0.x and backport task (#3062)
crodriguezvega Jan 26, 2023
a192808
build(deps): bump golangci/golangci-lint-action from 3.3.1 to 3.4.0 (…
dependabot[bot] Jan 26, 2023
d4b9f73
build(deps): bump google.golang.org/grpc from 1.52.1 to 1.52.3 (#3065)
dependabot[bot] Jan 26, 2023
002b266
fix: allow value with slashes in URL template (#3045)
crodriguezvega Jan 27, 2023
b61f764
go code snippets are properly formatted only with the go keyword
crodriguezvega Jan 29, 2023
eb23e9e
fix: moved non-verification misbehaviour checks to checkForMisbehavio…
charleenfei Jan 30, 2023
0a066f4
Fix dockerfile on main (#3069)
chatton Jan 30, 2023
360f271
Updating build simd image workflow (#3060)
chatton Jan 30, 2023
05c2148
Ensure we never use the Dockerfile on main when working with other br…
chatton Jan 31, 2023
b2fb119
chore: Add `HasConnection` and `HasChannel` methods. (#3082)
fedekunze Jan 31, 2023
3b1e06c
Allow specification of arbitrary values when running e2e tests (#3036)
chatton Feb 1, 2023
519e4ac
followup from review comments for #2709 (#3027)
crodriguezvega Feb 1, 2023
1a204fe
deps: Update to Cosmos SDK v0.47 rc-2 (#3095)
tac0turtle Feb 1, 2023
bb8a23b
build(deps): bump docker/build-push-action from 3.3.0 to 4.0.0 (#3090)
dependabot[bot] Feb 1, 2023
b69b827
Fix e2e memo test for broken versions (#3096)
chatton Feb 1, 2023
6c008ea
feat: Added authz support for ics20 (#3079)
crodriguezvega Feb 2, 2023
65f7038
Fix Compatibility Tests using govv1beta1 GenesisStates (#3052)
chatton Feb 2, 2023
143ad69
chores: post v4.3.0 release chores (#3080)
crodriguezvega Feb 2, 2023
1da651e
Add transfer authz tests to workflow (#3102)
chatton Feb 3, 2023
ceb9464
build(deps): bump bufbuild/buf-setup-action from 1.12.0 to 1.13.0 (#3…
dependabot[bot] Feb 3, 2023
26075ef
set light client module names (#3113)
damiannolan Feb 7, 2023
6ecf7b6
imp: adding channelID to `MsgChannelOpenTryResponse` (#3117)
damiannolan Feb 7, 2023
4601ab0
build(deps): bump bufbuild/buf-setup-action from 1.13.0 to 1.13.1 (#3…
dependabot[bot] Feb 7, 2023
5fc42fd
attempting to silence deprecation warnings on golangci lint (#3125)
damiannolan Feb 8, 2023
045f083
build(deps): bump cosmossdk.io/math from 1.0.0-beta.4 to 1.0.0-beta.6…
dependabot[bot] Feb 8, 2023
d86918d
fix docker build for forks (#3126)
crodriguezvega Feb 8, 2023
cb41315
v2 is EoL (#3121)
crodriguezvega Feb 8, 2023
a244245
updated links in PR template
crodriguezvega Feb 8, 2023
5dba356
imp: add page result to ics29-fee queries (#3054)
aleem1314 Feb 8, 2023
e6247d3
build(deps): bump google.golang.org/grpc from 1.52.3 to 1.53.0 (#3127)
dependabot[bot] Feb 9, 2023
fdadae5
docs: final review of light client developer guide (#3081)
tmsdkeys Feb 9, 2023
24001d4
chore: unifiy tabs of 2 spaces in all go snippets in markdown files
crodriguezvega Feb 9, 2023
bda4bec
docs: add link to BSR for proto docs (#3135)
crodriguezvega Feb 13, 2023
bc963bc
Update CI to account for multiple types of relayers (#3043)
chatton Feb 13, 2023
e9d52c9
docs: add linter for markdown documents (#3133)
crodriguezvega Feb 13, 2023
ebdb458
build(deps): bump bufbuild/buf-setup-action from 1.13.1 to 1.14.0 (#3…
dependabot[bot] Feb 13, 2023
af0c35a
imp(testing): use testing.TB instead of testing.T (#3138)
fedekunze Feb 13, 2023
55300ab
chore: adding go.work and go.work.sum to gitignore (#3109)
damiannolan Feb 13, 2023
59ef5bc
Register required types for upgrade E2E tests (#3132)
chatton Feb 14, 2023
80f162c
simapp and upgrade configuration for e2e v7 upgrade (#3136)
damiannolan Feb 14, 2023
f034e6b
docs: adding migration doc info for sdk v0.47 (#3107)
damiannolan Feb 15, 2023
0c5af26
chore: remove legacy interface function `RandomizedParams`, which is …
colin-axner Feb 15, 2023
99c985c
chore: rename any var to protoAny (#2986)
RegisGraptin Feb 15, 2023
682ba55
chore: remove unused `ProposalContents` function
colin-axner Feb 16, 2023
ec7c9bf
Merge branch 'main' into damian/chan-upgrades-branch-sync
damiannolan Feb 18, 2023
fa6140b
additional merge conflicts
damiannolan Feb 18, 2023
b9719df
cleanup post merge
damiannolan Feb 18, 2023
195e324
cleanup post merge
damiannolan Feb 18, 2023
671fd00
go mod tidy
damiannolan Feb 18, 2023
3dc37a5
remove stale keys.go file
damiannolan Feb 18, 2023
2933906
e2e: refactor importable workflow call to support chain upgrades (#3155)
damiannolan Feb 20, 2023
bd053b2
chore: use fully qualified typeURL interface names in protos (#3165)
crodriguezvega Feb 21, 2023
93cc399
Fix test matrix generation (#3172)
chatton Feb 21, 2023
e9bc0ba
removing sdk module params subspaces (#3182)
damiannolan Feb 22, 2023
07e3601
docs: Add ADR 010, IBC light clients as SDK modules
colin-axner Feb 22, 2023
761277a
Add IBC module level errors (#3184)
chatton Feb 22, 2023
e93a467
imp: add log message for debug error failed acknowledgement errors (#…
GNaD13 Feb 22, 2023
eeaa783
Adding scripts to run linting on only modified files (#3192)
chatton Feb 23, 2023
25e2c45
Fix the way linting works for packages (#3198)
chatton Feb 23, 2023
a24a6c6
chore: Migrated all SDK errors to the new errors go module. (#3186)
chatton Feb 27, 2023
6f749ef
build(deps): bump github.com/cosmos/gogoproto from 1.4.4 to 1.4.6 (#3…
dependabot[bot] Feb 27, 2023
0308dc7
build(deps): bump cosmossdk.io/api from 0.2.6 to 0.3.1 (#3180)
dependabot[bot] Feb 28, 2023
fa10438
imp: make event emission functions unexported (#3205)
crodriguezvega Feb 28, 2023
ae27157
imp: add port id into msg register interchain account response (#3204)
GNaD13 Feb 28, 2023
17342fe
build(deps): bump github.com/cosmos/cosmos-proto from 1.0.0-beta.1 to…
dependabot[bot] Feb 28, 2023
5a08f59
build(deps): bump github.com/stretchr/testify from 1.8.1 to 1.8.2 (#3…
dependabot[bot] Mar 1, 2023
b557e82
Merge branch 'main' into damian/chan-upgrades-branch-sync
damiannolan Mar 1, 2023
860b8d9
fixing linter errors
damiannolan Mar 1, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
docs: ics27 v6 documentation updates (#2561)
* WIP

* updating messages doc

* updating msgs doc

* refactoring and organising ics27 docs

* updating owner field validation docs

* adding legacy api heading to auth modules doc

* Update docs/apps/interchain-accounts/messages.md

Co-authored-by: Charly <[email protected]>

* Update docs/apps/interchain-accounts/messages.md

Co-authored-by: Carlos Rodriguez <[email protected]>

* applying suggestions from review

* updating future improvements section of active channels

Co-authored-by: Charly <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
  • Loading branch information
3 people authored Nov 2, 2022
commit 47e1c9a7373d279b2f372269a92421744f5a1b8c
20 changes: 10 additions & 10 deletions docs/.vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -203,29 +203,29 @@ module.exports = {
path: "/apps/interchain-accounts/overview.html",
},
{
title: "Authentication Modules",
title: "Integration",
directory: false,
path: "/apps/interchain-accounts/auth-modules.html",
path: "/apps/interchain-accounts/integration.html",
},
{
title: "Active Channels",
title: "Messages",
directory: false,
path: "/apps/interchain-accounts/active-channels.html",
path: "/apps/interchain-accounts/messages.html",
},
{
title: "Integration",
title: "Parameters",
directory: false,
path: "/apps/interchain-accounts/integration.html",
path: "/apps/interchain-accounts/parameters.html",
},
{
title: "Parameters",
title: "Active Channels",
directory: false,
path: "/apps/interchain-accounts/parameters.html",
path: "/apps/interchain-accounts/active-channels.html",
},
{
title: "Transactions",
title: "Authentication Modules",
directory: false,
path: "/apps/interchain-accounts/transactions.html",
path: "/apps/interchain-accounts/auth-modules.html",
},
],
},
Expand Down
17 changes: 12 additions & 5 deletions docs/apps/interchain-accounts/active-channels.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
<!--
order: 3
order: 5
-->

# Understanding Active Channels

The Interchain Accounts module uses [ORDERED channels](https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#ordering) to maintain the order of transactions when sending packets from a controller to a host chain. A limitation when using ORDERED channels is that when a packet times out the channel will be closed.

In the case of a channel closing, a controller chain needs to be able to regain access to the interchain account registered on this channel. `Active Channels` enable this functionality. Future versions of the ICS-27 protocol and the Interchain Accounts module will likely use a new
channel type that provides ordering of packets without the channel closing on timing out, thus removing the need for `Active Channels` entirely.

When an Interchain Account is registered using the `RegisterInterchainAccount` API, a new channel is created on a particular port. During the `OnChanOpenAck` and `OnChanOpenConfirm` steps (controller & host chain) the `Active Channel` for this interchain account
In the case of a channel closing, a controller chain needs to be able to regain access to the interchain account registered on this channel. `Active Channels` enable this functionality.
When an Interchain Account is registered using `MsgRegisterInterchainAccount`, a new channel is created on a particular port. During the `OnChanOpenAck` and `OnChanOpenConfirm` steps (controller & host chain) the `Active Channel` for this interchain account
is stored in state.

It is possible to create a new channel using the same controller chain portID if the previously set `Active Channel` is now in a `CLOSED` state. This channel creation can be initialized programatically by sending a new `MsgChannelOpenInit` message like so:
Expand All @@ -23,3 +21,12 @@ Alternatively, any relayer operator may initiate a new channel handshake for thi

It is important to note that once a channel has been opened for a given Interchain Account, new channels can not be opened for this account until the currently set `Active Channel` is set to `CLOSED`.

## Future Improvements

Future versions of the ICS-27 protocol and the Interchain Accounts module will likely use a new channel type that provides ordering of packets without the channel closing in the event of a packet timing out, thus removing the need for `Active Channels` entirely.
The following is a list of issues which will provide the infrastructure to make this possible:

- [IBC Channel Upgrades](https://github.com/cosmos/ibc-go/issues/1599)
- [Implement ORDERED_ALLOW_TIMEOUT logic in 04-channel](https://github.com/cosmos/ibc-go/issues/1661)
- [Add ORDERED_ALLOW_TIMEOUT as supported ordering in 03-connection](https://github.com/cosmos/ibc-go/issues/1662)
- [Allow ICA channels to be opened as ORDERED_ALLOW_TIMEOUT](https://github.com/cosmos/ibc-go/issues/1663)
8 changes: 7 additions & 1 deletion docs/apps/interchain-accounts/auth-modules.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
<!--
order: 2
order: 6
-->

# Building an authentication module

### Deprecation Notice

**This document is deprecated and will be removed in future releases**.

Authentication modules play the role of the `Base Application` as described in [ICS30 IBC Middleware](https://github.com/cosmos/ibc/tree/master/spec/app/ics-030-middleware), and enable application developers to perform custom logic when working with the Interchain Accounts controller API. {synopsis}

The controller submodule is used for account registration and packet sending.
Expand Down Expand Up @@ -145,6 +149,8 @@ func (im IBCModule) OnRecvPacket(
}
```

### Legacy API

## `RegisterInterchainAccount`

The authentication module can begin registering interchain accounts by calling `RegisterInterchainAccount`:
Expand Down
2 changes: 1 addition & 1 deletion docs/apps/interchain-accounts/integration.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!--
order: 3
order: 2
-->

# Integration
Expand Down
124 changes: 124 additions & 0 deletions docs/apps/interchain-accounts/messages.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
<!--
order: 3
-->

# Messages

## `MsgRegisterInterchainAccount`

An Interchain Accounts channel handshake can be initated using `MsgRegisterInterchainAccount`:

```go
type MsgRegisterInterchainAccount struct {
Owner string
ConnectionID string
Version string
}
```

This message is expected to fail if:

- `Owner` is an empty string.
- `ConnectionID` is invalid (see [24-host naming requirements](https://github.com/cosmos/ibc/blob/master/spec/core/ics-024-host-requirements/README.md#paths-identifiers-separators)).

This message will construct a new `MsgChannelOpenInit` on chain and route it to the core IBC message server to initiate the opening step of the channel handshake.

The controller module will generate a new port identifier and claim the associated port capability. The caller is expected to provide an appropriate application version string. For example, this may be an ICS27 JSON encoded [`Metadata`](https://github.com/cosmos/ibc-go/blob/v6.0.0-alpha1/proto/ibc/applications/interchain_accounts/v1/metadata.proto#L11) type or an ICS29 JSON encoded [`Metadata`](https://github.com/cosmos/ibc-go/blob/v6.0.0-alpha1/proto/ibc/applications/fee/v1/metadata.proto#L11) type with a nested application version.
If the `Version` string is omitted, the application will construct a default version string in the `OnChanOpenInit` handshake callback.

```go
type MsgRegisterInterchainAccountResponse struct {
ChannelID string
}
```

The `ChannelID` is return in the message response.

### CLI

The following is an example usage of the controller CLI command used to register an interchain account.

```bash
simd tx interchain-accounts controller register connection-0 --from cosmos1m9l358xunhhwds0568za49mzhvuxx9uxre5tud
```

## `MsgSendTx`

An Interchain Accounts transaction can be executed on a remote host chain by sending a `MsgSendTx` from the corresponding controller chain:

```go
type MsgSendTx struct {
Owner string
ConnectionID string
PacketData InterchainAccountPacketData
RelativeTimeout uint64
}
```

This message is expected to fail if:

- `Owner` is an empty string.
- `ConnectionID` is invalid (see [24-host naming requirements](https://github.com/cosmos/ibc/blob/master/spec/core/ics-024-host-requirements/README.md#paths-identifiers-separators)).
- `PacketData` contains an `UNSPECIFIED` type enum, the length of `Data` bytes is zero or the `Memo` field exceeds 256 characters in length.
- `RelativeTimeout` is zero.

This message will create a new IBC packet with the provided `PacketData` and send it via the channel associated with the `Owner` and `ConnectionID`.
The `PacketData` is expected to contain a list of serialized `[]sdk.Msg` in the form of `CosmosTx`. Please note the signer field of each `sdk.Msg` must be the interchain account address.
When the packet is relayed to the host chain, the `PacketData` is unmarshalled and the messages are authenticated and executed.

```go
type MsgSendTxResponse struct {
Sequence uint64
}
```

The packet `Sequence` is returned in the message response.

### CLI

The following is an example usage of the controller CLI command used to send a transaction to be executed using an interchain account on the corresponding host chain.

```bash
simd tx interchain-accounts controller send-tx connection-0 packet-data.json --from cosmos1m9l358xunhhwds0568za49mzhvuxx9uxre5tud
```

See below for example contents of `packet-data.json`. The CLI handler will unmarshal the following into `InterchainAccountPacketData` appropriately.

```json
{
"type":"TYPE_EXECUTE_TX",
"data":"CqIBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEoEBCkFjb3Ntb3MxNWNjc2hobXAwZ3N4MjlxcHFxNmc0em1sdG5udmdteXU5dWV1YWRoOXkybmM1emowc3psczVndGRkehItY29zbW9zMTBoOXN0YzV2Nm50Z2V5Z2Y1eGY5NDVuanFxNWgzMnI1M3VxdXZ3Gg0KBXN0YWtlEgQxMDAw",
"memo":""
}
```

Note the `data` field is a base64 encoded byte string as per the [proto3 JSON encoding specification](https://developers.google.com/protocol-buffers/docs/proto3#json).

A helper CLI is provided in the host submodule which can be used to generate the packet data JSON using the counterparty chain's binary.
It accepts a list of `sdk.Msg`s which will be encoded into the outputs `data` field.

```bash
simd tx interchain-accounts host generate-packet-data '[{
"@type":"/cosmos.bank.v1beta1.MsgSend",
"from_address":"cosmos15ccshhmp0gsx29qpqq6g4zmltnnvgmyu9ueuadh9y2nc5zj0szls5gtddz",
"to_address":"cosmos10h9stc5v6ntgeygf5xf945njqq5h32r53uquvw",
"amount": [
{
"denom": "stake",
"amount": "1000"
}
]
}]'
```

The host submodule also provides a helper CLI to inspect the events of interchain accounts packets by providing the channel ID and packet sequence:

```bash
simd q interchain-accounts host packet-events channel-0 100
```

### Atomicity

As the Interchain Accounts module supports the execution of multiple transactions using the Cosmos SDK `Msg` interface, it provides the same atomicity guarantees as Cosmos SDK-based applications, leveraging the [`CacheMultiStore`](https://docs.cosmos.network/main/core/store.html#cachemultistore) architecture provided by the [`Context`](https://docs.cosmos.network/main/core/context.html) type.

This provides atomic execution of transactions when using Interchain Accounts, where state changes are only committed if all `Msg`s succeed.
25 changes: 11 additions & 14 deletions docs/apps/interchain-accounts/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,32 @@ order: 1

# Overview

Learn about what the Interchain Accounts module is, and how to build custom modules that utilize Interchain Accounts functionality {synopsis}

Learn about what the Interchain Accounts module is {synopsis}

## What is the Interchain Accounts module?

Interchain Accounts is the Cosmos SDK implementation of the ICS-27 protocol, which enables cross-chain account management built upon IBC. Chains using the Interchain Accounts module can programmatically create accounts on other chains and control these accounts via IBC transactions.
Interchain Accounts is the Cosmos SDK implementation of the ICS-27 protocol, which enables cross-chain account management built upon IBC.

Interchain Accounts exposes a simple-to-use API which means IBC application developers do not require an in-depth knowledge of the underlying low-level details of IBC or the ICS-27 protocol.
- How does an interchain account differ from a regular account?

Developers looking to build upon Interchain Accounts must write custom logic in their own IBC application module, called authentication modules.
Regular accounts use a private key to sign transactions. Interchain Accounts are instead controlled programmatically by counterparty chains via IBC packets.

- How is an interchain account different than a regular account?
## Concepts

Regular accounts use a private key to sign transactions on-chain. Interchain Accounts are instead controlled programmatically by separate chains via IBC transactions. Interchain Accounts are implemented as sub-accounts of the interchain accounts module account.
`Host Chain`: The chain where the interchain account is registered. The host chain listens for IBC packets from a controller chain which should contain instructions (e.g. Cosmos SDK messages) for which the interchain account will execute.

## Concepts
`Controller Chain`: The chain registering and controlling an account on a host chain. The controller chain sends IBC packets to the host chain to control the account.

`Host Chain`: The chain where the interchain account is registered. The host chain listens for IBC packets from a controller chain which should contain instructions (e.g. cosmos SDK messages) for which the interchain account will execute.
`Interchain Account`: An account on a host chain created using the ICS-27 protocol. An interchain account has all the capabilities of a normal account. However, rather than signing transactions with a private key, a controller chain will send IBC packets to the host chain which signals what transactions the interchain account should execute.

`Controller Chain`: The chain registering and controlling an account on a host chain. The controller chain sends IBC packets to the host chain to control the account. A controller chain must have at least one interchain accounts authentication module in order to act as a controller chain.
#### Deprecated

`Authentication Module`: A custom IBC application module on the controller chain that uses the Interchain Accounts module API to build custom logic for the creation & management of interchain accounts. For a controller chain to utilize the interchain accounts module functionality, an authentication module is required.

`Interchain Account`: An account on a host chain. An interchain account has all the capabilities of a normal account. However, rather than signing transactions with a private key, a controller chain's authentication module will send IBC packets to the host chain which signals what transactions the interchain account should execute.

## SDK Security Model

SDK modules on a chain are assumed to be trustworthy. For example, there are no checks to prevent an untrustworthy module from accessing the bank keeper.

The implementation of ICS27 on ibc-go uses this assumption in its security considerations. The implementation assumes the authentication module will not try to open channels on owner addresses it does not control.
The implementation of ICS-27 in ibc-go uses this assumption in its security considerations.

The implementation assumes other IBC application modules will not bind to ports within the ICS27 namespace.
The implementation assumes other IBC application modules will not bind to ports within the ICS-27 namespace.
2 changes: 1 addition & 1 deletion docs/apps/interchain-accounts/parameters.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ For example, a Cosmos SDK based chain that elects to provide hosted Interchain A
"allow_messages": ["/cosmos.staking.v1beta1.MsgDelegate", "/cosmos.gov.v1beta1.MsgVote"]
}
```
There is also a special wildcard `"*"` message type which allows any type of message to be executed by the interchain account. This must be the only message in the `allow_messages` array.
There is also a special wildcard `"*"` value which allows any type of message to be executed by the interchain account. This must be the only value in the `allow_messages` array.

```
"params": {
Expand Down
21 changes: 0 additions & 21 deletions docs/apps/interchain-accounts/transactions.md

This file was deleted.

18 changes: 9 additions & 9 deletions docs/package-lock.json

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