mirror of
https://github.com/cosmos/cosmjs.git
synced 2025-03-11 14:09:15 +00:00
Merge pull request #261 from CosmWasm/more-admin-stuff
Connect admin field in the CosmWasmClient API
This commit is contained in:
commit
a42b1faab2
@ -313,25 +313,28 @@ describe("CosmWasmClient", () => {
|
||||
address: "cosmos18vd8fpwxzck93qlwghaj6arh4p7c5n89uzcee5",
|
||||
codeId: 1,
|
||||
creator: alice.address0,
|
||||
admin: undefined,
|
||||
label: "HASH",
|
||||
});
|
||||
expect(isa).toEqual({
|
||||
address: "cosmos1hqrdl6wstt8qzshwc6mrumpjk9338k0lr4dqxd",
|
||||
codeId: 1,
|
||||
creator: alice.address0,
|
||||
admin: undefined,
|
||||
label: "ISA",
|
||||
});
|
||||
expect(jade).toEqual({
|
||||
address: "cosmos18r5szma8hm93pvx6lwpjwyxruw27e0k5uw835c",
|
||||
codeId: 1,
|
||||
creator: alice.address0,
|
||||
admin: alice.address1,
|
||||
label: "JADE",
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("getContract", () => {
|
||||
it("works for HASH instance", async () => {
|
||||
it("works for instance without admin", async () => {
|
||||
pendingWithoutWasmd();
|
||||
const client = new CosmWasmClient(wasmd.endpoint);
|
||||
const hash = await client.getContract("cosmos18vd8fpwxzck93qlwghaj6arh4p7c5n89uzcee5");
|
||||
@ -340,6 +343,7 @@ describe("CosmWasmClient", () => {
|
||||
codeId: 1,
|
||||
creator: alice.address0,
|
||||
label: "HASH",
|
||||
admin: undefined,
|
||||
initMsg: {
|
||||
decimals: 5,
|
||||
name: "Hash token",
|
||||
@ -361,6 +365,19 @@ describe("CosmWasmClient", () => {
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
it("works for instance with admin", async () => {
|
||||
pendingWithoutWasmd();
|
||||
const client = new CosmWasmClient(wasmd.endpoint);
|
||||
const jade = await client.getContract("cosmos18r5szma8hm93pvx6lwpjwyxruw27e0k5uw835c");
|
||||
expect(jade).toEqual(
|
||||
jasmine.objectContaining({
|
||||
address: "cosmos18r5szma8hm93pvx6lwpjwyxruw27e0k5uw835c",
|
||||
label: "JADE",
|
||||
admin: alice.address1,
|
||||
}),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe("queryContractRaw", () => {
|
||||
|
@ -118,6 +118,8 @@ export interface Contract {
|
||||
readonly codeId: number;
|
||||
/** Bech32 account address */
|
||||
readonly creator: string;
|
||||
/** Bech32-encoded admin address */
|
||||
readonly admin: string | undefined;
|
||||
readonly label: string;
|
||||
}
|
||||
|
||||
@ -380,6 +382,7 @@ export class CosmWasmClient {
|
||||
address: entry.address,
|
||||
codeId: entry.code_id,
|
||||
creator: entry.creator,
|
||||
admin: entry.admin,
|
||||
label: entry.label,
|
||||
}),
|
||||
);
|
||||
@ -395,6 +398,7 @@ export class CosmWasmClient {
|
||||
address: result.address,
|
||||
codeId: result.code_id,
|
||||
creator: result.creator,
|
||||
admin: result.admin,
|
||||
label: result.label,
|
||||
initMsg: result.init_msg,
|
||||
};
|
||||
|
@ -193,6 +193,7 @@ describe("RestClient", () => {
|
||||
init_msg: jasmine.objectContaining({ symbol: "JADE" }),
|
||||
label: "JADE",
|
||||
sender: alice.address0,
|
||||
admin: alice.address1,
|
||||
});
|
||||
});
|
||||
|
||||
@ -248,6 +249,7 @@ describe("RestClient", () => {
|
||||
init_msg: jasmine.objectContaining({ symbol: "JADE" }),
|
||||
label: "JADE",
|
||||
sender: alice.address0,
|
||||
admin: alice.address1,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
@ -53,6 +53,10 @@ export const alice = {
|
||||
value: "A9cXhWb8ZpqCzkA8dQCPV29KdeRLV3rUYxrkHudLbQtS",
|
||||
},
|
||||
address0: "cosmos14qemq0vw6y3gc3u3e0aty2e764u4gs5le3hada",
|
||||
address1: "cosmos1hhg2rlu9jscacku2wwckws7932qqqu8x3gfgw0",
|
||||
address2: "cosmos1xv9tklw7d82sezh9haa573wufgy59vmwe6xxe5",
|
||||
address3: "cosmos17yg9mssjenmc3jkqth6ulcwj9cxujrxxzezwta",
|
||||
address4: "cosmos1f7j7ryulwjfe9ljplvhtcaxa6wqgula3etktce",
|
||||
};
|
||||
|
||||
/** Unused account */
|
||||
|
2
packages/cosmwasm/types/cosmwasmclient.d.ts
vendored
2
packages/cosmwasm/types/cosmwasmclient.d.ts
vendored
@ -76,6 +76,8 @@ export interface Contract {
|
||||
readonly codeId: number;
|
||||
/** Bech32 account address */
|
||||
readonly creator: string;
|
||||
/** Bech32-encoded admin address */
|
||||
readonly admin: string | undefined;
|
||||
readonly label: string;
|
||||
}
|
||||
export interface ContractDetails extends Contract {
|
||||
|
@ -26,102 +26,111 @@ const codeMeta = {
|
||||
builder: "cosmwasm/rust-optimizer:0.8.0",
|
||||
};
|
||||
|
||||
const initMsgHash = {
|
||||
decimals: 5,
|
||||
name: "Hash token",
|
||||
symbol: "HASH",
|
||||
initial_balances: [
|
||||
{
|
||||
address: alice.address0,
|
||||
amount: "11",
|
||||
},
|
||||
{
|
||||
address: alice.address1,
|
||||
amount: "11",
|
||||
},
|
||||
{
|
||||
address: alice.address2,
|
||||
amount: "11",
|
||||
},
|
||||
{
|
||||
address: alice.address3,
|
||||
amount: "11",
|
||||
},
|
||||
{
|
||||
address: alice.address4,
|
||||
amount: "11",
|
||||
},
|
||||
{
|
||||
address: unused.address,
|
||||
amount: "12812345",
|
||||
},
|
||||
{
|
||||
address: guest.address,
|
||||
amount: "22004000000",
|
||||
},
|
||||
],
|
||||
const initDataHash = {
|
||||
admin: undefined,
|
||||
initMsg: {
|
||||
decimals: 5,
|
||||
name: "Hash token",
|
||||
symbol: "HASH",
|
||||
initial_balances: [
|
||||
{
|
||||
address: alice.address0,
|
||||
amount: "11",
|
||||
},
|
||||
{
|
||||
address: alice.address1,
|
||||
amount: "11",
|
||||
},
|
||||
{
|
||||
address: alice.address2,
|
||||
amount: "11",
|
||||
},
|
||||
{
|
||||
address: alice.address3,
|
||||
amount: "11",
|
||||
},
|
||||
{
|
||||
address: alice.address4,
|
||||
amount: "11",
|
||||
},
|
||||
{
|
||||
address: unused.address,
|
||||
amount: "12812345",
|
||||
},
|
||||
{
|
||||
address: guest.address,
|
||||
amount: "22004000000",
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
const initMsgIsa = {
|
||||
decimals: 0,
|
||||
name: "Isa Token",
|
||||
symbol: "ISA",
|
||||
initial_balances: [
|
||||
{
|
||||
address: alice.address0,
|
||||
amount: "999999999",
|
||||
},
|
||||
{
|
||||
address: alice.address1,
|
||||
amount: "999999999",
|
||||
},
|
||||
{
|
||||
address: alice.address2,
|
||||
amount: "999999999",
|
||||
},
|
||||
{
|
||||
address: alice.address3,
|
||||
amount: "999999999",
|
||||
},
|
||||
{
|
||||
address: alice.address4,
|
||||
amount: "999999999",
|
||||
},
|
||||
{
|
||||
address: unused.address,
|
||||
amount: "42",
|
||||
},
|
||||
],
|
||||
const initDataIsa = {
|
||||
admin: undefined,
|
||||
initMsg: {
|
||||
decimals: 0,
|
||||
name: "Isa Token",
|
||||
symbol: "ISA",
|
||||
initial_balances: [
|
||||
{
|
||||
address: alice.address0,
|
||||
amount: "999999999",
|
||||
},
|
||||
{
|
||||
address: alice.address1,
|
||||
amount: "999999999",
|
||||
},
|
||||
{
|
||||
address: alice.address2,
|
||||
amount: "999999999",
|
||||
},
|
||||
{
|
||||
address: alice.address3,
|
||||
amount: "999999999",
|
||||
},
|
||||
{
|
||||
address: alice.address4,
|
||||
amount: "999999999",
|
||||
},
|
||||
{
|
||||
address: unused.address,
|
||||
amount: "42",
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
const initMsgJade = {
|
||||
decimals: 18,
|
||||
name: "Jade Token",
|
||||
symbol: "JADE",
|
||||
initial_balances: [
|
||||
{
|
||||
address: alice.address0,
|
||||
amount: "189189189000000000000000000", // 189189189 JADE
|
||||
},
|
||||
{
|
||||
address: alice.address1,
|
||||
amount: "189189189000000000000000000", // 189189189 JADE
|
||||
},
|
||||
{
|
||||
address: alice.address2,
|
||||
amount: "189189189000000000000000000", // 189189189 JADE
|
||||
},
|
||||
{
|
||||
address: alice.address3,
|
||||
amount: "189189189000000000000000000", // 189189189 JADE
|
||||
},
|
||||
{
|
||||
address: alice.address4,
|
||||
amount: "189189189000000000000000000", // 189189189 JADE
|
||||
},
|
||||
{
|
||||
address: guest.address,
|
||||
amount: "189500000000000000000", // 189.5 JADE
|
||||
},
|
||||
],
|
||||
const initDataJade = {
|
||||
admin: alice.address1,
|
||||
initMsg: {
|
||||
decimals: 18,
|
||||
name: "Jade Token",
|
||||
symbol: "JADE",
|
||||
initial_balances: [
|
||||
{
|
||||
address: alice.address0,
|
||||
amount: "189189189000000000000000000", // 189189189 JADE
|
||||
},
|
||||
{
|
||||
address: alice.address1,
|
||||
amount: "189189189000000000000000000", // 189189189 JADE
|
||||
},
|
||||
{
|
||||
address: alice.address2,
|
||||
amount: "189189189000000000000000000", // 189189189 JADE
|
||||
},
|
||||
{
|
||||
address: alice.address3,
|
||||
amount: "189189189000000000000000000", // 189189189 JADE
|
||||
},
|
||||
{
|
||||
address: alice.address4,
|
||||
amount: "189189189000000000000000000", // 189189189 JADE
|
||||
},
|
||||
{
|
||||
address: guest.address,
|
||||
amount: "189500000000000000000", // 189.5 JADE
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
async function main() {
|
||||
@ -132,9 +141,10 @@ async function main() {
|
||||
const uploadReceipt = await client.upload(wasm, codeMeta, "Upload ERC20 contract");
|
||||
console.info(`Upload succeeded. Receipt: ${JSON.stringify(uploadReceipt)}`);
|
||||
|
||||
for (const initMsg of [initMsgHash, initMsgIsa, initMsgJade]) {
|
||||
for (const { initMsg, admin } of [initDataHash, initDataIsa, initDataJade]) {
|
||||
const { contractAddress } = await client.instantiate(uploadReceipt.codeId, initMsg, initMsg.symbol, {
|
||||
memo: `Create an ERC20 instance for ${initMsg.symbol}`,
|
||||
admin: admin,
|
||||
});
|
||||
console.info(`Contract instantiated for ${initMsg.symbol} at ${contractAddress}`);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user