stargaze-zone
TS library with Cosmos SDK and Stargaze smart contracts.
npm install stargaze-zone
Cosmos SDK clients
import { stargaze } from 'stargaze-zone';
const main = async () => {
const { createLCDClient } = stargaze.ClientFactory;
const client = await createLCDClient({ restEndpoint: REST_ENDPOINT });
// now you can query the modules
const balance = await client.cosmos.bank.v1beta1
.allBalances({ address: 'stars1addresshere' });
};
Stargaze contracts
clients
All contracts are scoped under the contracts
object:
import { contracts } from 'stargaze-zone';
const {
SG721Base,
VendingFactory,
VendingMinter,
Whitelist
} = contracts;
Then each contract will have clients, for example for Whitelist
:
const {
WhitelistClient,
WhitelistMessageComposer,
WhitelistQueryClient
} = Whitelist;
Queries
const queryClient = new WhitelistQueryClient(wasmClient, contractAddress);
const hasStarted = await queryClient.hasStarted()
const members = await queryClient.members({limit: 10})
Mutations
const client = new WhitelistClient(signingWasmClient, sender, contractAddress);
await client.addMembers({
toAdd: ['name1', 'name2']
})
CosmWasm Messages
import { cosmwasm } from "stargaze-zone";
const {
clearAdmin,
executeContract,
instantiateContract,
migrateContract,
storeCode,
updateAdmin
} = cosmwasm.wasm.v1.MessageComposer.withTypeUrl;
IBC Messages
import { ibc } from 'stargaze-zone';
const {
transfer
} = ibc.applications.transfer.v1.MessageComposer.withTypeUrl
Cosmos Messages
import { cosmos } from 'stargaze-zone';
const {
fundCommunityPool,
setWithdrawAddress,
withdrawDelegatorReward,
withdrawValidatorCommission
} = cosmos.distribution.v1beta1.MessageComposer.fromPartial;
const {
multiSend,
send
} = cosmos.bank.v1beta1.MessageComposer.fromPartial;
const {
beginRedelegate,
createValidator,
delegate,
editValidator,
undelegate
} = cosmos.staking.v1beta1.MessageComposer.fromPartial;
const {
deposit,
submitProposal,
vote,
voteWeighted
} = cosmos.gov.v1beta1.MessageComposer.fromPartial;
Credits
🛠 Built by Cosmology — if you like our tools, please consider delegating to our validator ⚛️
Code built with the help of these related projects:
- @cosmwasm/ts-codegen for generated CosmWasm contract Typescript classes
- @osmonauts/telescope a "babel for the Cosmos", Telescope is a TypeScript Transpiler for Cosmos Protobufs.