diff --git a/packages/cosmwasm-stargate/src/index.ts b/packages/cosmwasm-stargate/src/index.ts index cf3a0cc6..2db1cb39 100644 --- a/packages/cosmwasm-stargate/src/index.ts +++ b/packages/cosmwasm-stargate/src/index.ts @@ -1,6 +1,6 @@ export { Code, CodeDetails, Contract, ContractCodeHistoryEntry, CosmWasmClient } from "./cosmwasmclient"; export { fromBinary, toBinary } from "./encoding"; -export { _instantiate2AddressIntermediate, instantiate2Address } from "./instantiate2_address"; +export { _instantiate2AddressIntermediate, instantiate2Address } from "./instantiate2"; export { cosmWasmTypes, createWasmAminoConverters, diff --git a/packages/cosmwasm-stargate/src/instantiate2.spec.ts b/packages/cosmwasm-stargate/src/instantiate2.spec.ts new file mode 100644 index 00000000..571346e5 --- /dev/null +++ b/packages/cosmwasm-stargate/src/instantiate2.spec.ts @@ -0,0 +1,53 @@ +import { fromHex } from "@cosmjs/encoding"; + +import { instantiate2Address } from "./instantiate2"; + +describe("instantiate2", () => { + describe("instantiate2Address", () => { + it("works", () => { + // Some entries from https://gist.github.com/webmaster128/e4d401d414bd0e7e6f70482f11877fbe + { + const checksum = fromHex("13a1fc994cc6d1c81b746ee0c0ff6f90043875e0bf1d9be6b7d779fc978dc2a5"); + const creator = "purple1nxvenxve42424242hwamhwamenxvenxvhxf2py"; + const salt = fromHex("61"); + expect(instantiate2Address(checksum, creator, salt, "purple")).toEqual( + "purple1t6r960j945lfv8mhl4mage2rg97w63xeynwrupum2s2l7em4lprs9ce5hk", + ); + } + { + const checksum = fromHex("13a1fc994cc6d1c81b746ee0c0ff6f90043875e0bf1d9be6b7d779fc978dc2a5"); + const creator = "purple1nxvenxve42424242hwamhwamenxvenxvhxf2py"; + const salt = fromHex( + "aabbccddeeffffeeddbbccddaa66551155aaaabbcc787878789900aabbccddeeffffeeddbbccddaa66551155aaaabbcc787878789900aabbbbcc221100acadae", + ); + expect(instantiate2Address(checksum, creator, salt, "purple")).toEqual( + "purple1jwzvvfyvpwchrccxl476pxf7c83qawsqv3f2820q0zyrav6eg4jqdcq7gc", + ); + } + { + const checksum = fromHex("13a1fc994cc6d1c81b746ee0c0ff6f90043875e0bf1d9be6b7d779fc978dc2a5"); + const creator = "purple1nxvenxve42424242hwamhwamenxvenxvmhwamhwaamhwamhwlllsatsy6m"; + const salt = fromHex("61"); + expect(instantiate2Address(checksum, creator, salt, "purple")).toEqual( + "purple1juj7jn6j3k9h35euyhealntquc2zmzlxp2ek76jmtypkl4g4vrdsfwmwxk", + ); + } + { + const checksum = fromHex("13a1fc994cc6d1c81b746ee0c0ff6f90043875e0bf1d9be6b7d779fc978dc2a5"); + const creator = "purple1nxvenxve42424242hwamhwamenxvenxvmhwamhwaamhwamhwlllsatsy6m"; + const salt = fromHex("61"); + expect(instantiate2Address(checksum, creator, salt, "purple")).toEqual( + "purple1juj7jn6j3k9h35euyhealntquc2zmzlxp2ek76jmtypkl4g4vrdsfwmwxk", + ); + } + { + const checksum = fromHex("1da6c16de2cbaf7ad8cbb66f0925ba33f5c278cb2491762d04658c1480ea229b"); + const creator = "purple1nxvenxve42424242hwamhwamenxvenxvhxf2py"; + const salt = fromHex("61"); + expect(instantiate2Address(checksum, creator, salt, "purple")).toEqual( + "purple1h9wyvusc6sy2p7fsgmez0dhvullpsyel7vq38k6d9fa7ehlv59qsvnyh36", + ); + } + }); + }); +}); diff --git a/packages/cosmwasm-stargate/src/instantiate2_address.ts b/packages/cosmwasm-stargate/src/instantiate2.ts similarity index 97% rename from packages/cosmwasm-stargate/src/instantiate2_address.ts rename to packages/cosmwasm-stargate/src/instantiate2.ts index 1b0d58ea..edc7f251 100644 --- a/packages/cosmwasm-stargate/src/instantiate2_address.ts +++ b/packages/cosmwasm-stargate/src/instantiate2.ts @@ -63,8 +63,7 @@ export function instantiate2Address( checksum: Uint8Array, creator: string, salt: Uint8Array, - msg: string | null, prefix: string, ): string { - return _instantiate2AddressIntermediate(checksum, creator, salt, msg, prefix).address; + return _instantiate2AddressIntermediate(checksum, creator, salt, null, prefix).address; }