produces a long address, but derivation works both ways
go run ./two-way
Test Case 1:
LCA Address: agoric16kv2g7snfc4q24vg3pjdlnnqgngtjpwtetd2h689nz09lcklvh5s8u37ek
Receiver Address: osmo183dejcnmkka5dzcu9xw6mywq0p2m5peks28men
Chain ID: osmosis-1
Combined address: agoric1qyrxzem0wf5kxgx4nzj85y6w9gz4tzygvn0uuczy6zustj72m2473evcne079hm9ayzx7umddu2rckuevfamtw6x3vwzn8ddj8q8s4d6qumqjmmnd4hhx6tn95cszjzqwh
Decoded LCA Address: agoric16kv2g7snfc4q24vg3pjdlnnqgngtjpwtetd2h689nz09lcklvh5s8u37ek
Decoded Receiver Address: osmo183dejcnmkka5dzcu9xw6mywq0p2m5peks28men
Decoded Chain ID: osmosis-1
Original LCA Address matches decoded: true
Original Receiver Address matches decoded: true
Original Chain ID matches decoded: true
Length of combined address: 137 characters
Test Case 2:
LCA Address: agoric16kv2g7snfc4q24vg3pjdlnnqgngtjpwtetd2h689nz09lcklvh5s8u37ek
Receiver Address: osmo1n4m7amq25q9wh4htusw3lm8g8nau6m4qtllzxedf22dqpjpge9mqpkuve0
Chain ID: osmosis-2
Combined address: agoric1qyrxzem0wf5kxgx4nzj85y6w9gz4tzygvn0uuczy6zustj72m2473evcne079hm9ayzx7umddusf6alwas92qzht6m47g8glan5re77dd6s9ll3rvk549xsqeq5vjasfdaek6mmnd9ej6vstrj944
Decoded LCA Address: agoric16kv2g7snfc4q24vg3pjdlnnqgngtjpwtetd2h689nz09lcklvh5s8u37ek
Decoded Receiver Address: osmo1n4m7amq25q9wh4htusw3lm8g8nau6m4qtllzxedf22dqpjpge9mqpkuve0
Decoded Chain ID: osmosis-2
Original LCA Address matches decoded: true
Original Receiver Address matches decoded: true
Original Chain ID matches decoded: true
Length of combined address: 156 characters
uses cosmos-sdk's built in address.Derive()
, but seems to require a lookup table / storage
go run ./one-way
Test Case 1:
LCA Address: agoric16kv2g7snfc4q24vg3pjdlnnqgngtjpwtetd2h689nz09lcklvh5s8u37ek
Receiver Address: osmo183dejcnmkka5dzcu9xw6mywq0p2m5peks28men
Chain ID: osmosis-1
Generated address: agoric1ya5akgcqw97rvnhfu8jzapp8rfwk4tddkpwsmz
Encoded data: YWdvcmljMTZrdjJnN3NuZmM0cTI0dmczcGpkbG5ucWduZ3RqcHd0ZXRkMmg2ODluejA5bGNrbHZoNXM4dTM3ZWsrb3NtbzE4M2RlamNubWtrYTVkemN1OXh3Nm15d3EwcDJtNXBla3MyOG1lbitvc21vc2lzLTE=
Decoded LCA Address: agoric16kv2g7snfc4q24vg3pjdlnnqgngtjpwtetd2h689nz09lcklvh5s8u37ek
Decoded Receiver Address: osmo183dejcnmkka5dzcu9xw6mywq0p2m5peks28men
Decoded Chain ID: osmosis-1
Original LCA Address matches decoded: true
Original Receiver Address matches decoded: true
Original Chain ID matches decoded: true
Length of generated address: 45 characters
Generated address has correct length of 20 bytes
Address generation is deterministic: true
Test Case 2:
LCA Address: agoric16kv2g7snfc4q24vg3pjdlnnqgngtjpwtetd2h689nz09lcklvh5s8u37ek
Receiver Address: osmo1n4m7amq25q9wh4htusw3lm8g8nau6m4qtllzxedf22dqpjpge9mqpkuve0
Chain ID: osmosis-2
Generated address: agoric1rky8rtq8znh65m7e2283w766kv8676qwlegcfj
Encoded data: YWdvcmljMTZrdjJnN3NuZmM0cTI0dmczcGpkbG5ucWduZ3RqcHd0ZXRkMmg2ODluejA5bGNrbHZoNXM4dTM3ZWsrb3NtbzFuNG03YW1xMjVxOXdoNGh0dXN3M2xtOGc4bmF1Nm00cXRsbHp4ZWRmMjJkcXBqcGdlOW1xcGt1dmUwK29zbW9zaXMtMg==
Decoded LCA Address: agoric16kv2g7snfc4q24vg3pjdlnnqgngtjpwtetd2h689nz09lcklvh5s8u37ek
Decoded Receiver Address: osmo1n4m7amq25q9wh4htusw3lm8g8nau6m4qtllzxedf22dqpjpge9mqpkuve0
Decoded Chain ID: osmosis-2
Original LCA Address matches decoded: true
Original Receiver Address matches decoded: true
Original Chain ID matches decoded: true
Length of generated address: 45 characters
Generated address has correct length of 20 bytes
Address generation is deterministic: true
nobled query forwarding address channel-99 agoric1qyrxzem0wf5kxgx4nzj85y6w9gz4tzygvn0uuczy6zustj72m2473evcne079hm9ayzx7umddu2rckuevfamtw6x3vwzn8ddj8q8s4d6qumqjmmnd4hhx6tn95cszjzqwh --node https://noble-testnet-rpc.polkachu.com:443 address: noble1kn8aezm02u7h6utxzzjeyuk4wletxuquhdgh5r exists: false
nobled query forwarding address channel-99 agoric1qyrxzem0wf5kxgx4nzj85y6w9gz4tzygvn0uuczy6zustj72m2473evcne079hm9ayzx7umddusf6alwas92qzht6m47g8glan5re77dd6s9ll3rvk549xsqeq5vjasfdaek6mmnd9ej6vstrj944 --node https://noble-testnet-rpc.polkachu.com:443 address: noble1nqnfxwx6e0jhytgq2qqngu29xwvtsjekx9yyt5 exists: false