@wormhole-foundation/sdk-cosmwasm 0.5.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -0
- package/dist/cjs/address.d.ts +29 -0
- package/dist/cjs/address.d.ts.map +1 -0
- package/dist/cjs/address.js +217 -0
- package/dist/cjs/address.js.map +1 -0
- package/dist/cjs/chain.d.ts +5 -0
- package/dist/cjs/chain.d.ts.map +1 -0
- package/dist/cjs/chain.js +8 -0
- package/dist/cjs/chain.js.map +1 -0
- package/dist/cjs/constants.d.ts +771 -0
- package/dist/cjs/constants.d.ts.map +1 -0
- package/dist/cjs/constants.js +180 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/gateway.d.ts +17 -0
- package/dist/cjs/gateway.d.ts.map +1 -0
- package/dist/cjs/gateway.js +75 -0
- package/dist/cjs/gateway.js.map +1 -0
- package/dist/cjs/index.d.ts +9 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +25 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/platform.d.ts +33 -0
- package/dist/cjs/platform.d.ts.map +1 -0
- package/dist/cjs/platform.js +131 -0
- package/dist/cjs/platform.js.map +1 -0
- package/dist/cjs/signer.d.ts +31 -0
- package/dist/cjs/signer.d.ts.map +1 -0
- package/dist/cjs/signer.js +114 -0
- package/dist/cjs/signer.js.map +1 -0
- package/dist/cjs/types.d.ts +18 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +20 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/unsignedTransaction.d.ts +20 -0
- package/dist/cjs/unsignedTransaction.d.ts.map +1 -0
- package/dist/cjs/unsignedTransaction.js +43 -0
- package/dist/cjs/unsignedTransaction.js.map +1 -0
- package/dist/esm/address.d.ts +29 -0
- package/dist/esm/address.d.ts.map +1 -0
- package/dist/esm/address.js +213 -0
- package/dist/esm/address.js.map +1 -0
- package/dist/esm/chain.d.ts +5 -0
- package/dist/esm/chain.d.ts.map +1 -0
- package/dist/esm/chain.js +4 -0
- package/dist/esm/chain.js.map +1 -0
- package/dist/esm/constants.d.ts +771 -0
- package/dist/esm/constants.d.ts.map +1 -0
- package/dist/esm/constants.js +177 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/gateway.d.ts +17 -0
- package/dist/esm/gateway.d.ts.map +1 -0
- package/dist/esm/gateway.js +71 -0
- package/dist/esm/gateway.js.map +1 -0
- package/dist/esm/index.d.ts +9 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/platform.d.ts +33 -0
- package/dist/esm/platform.d.ts.map +1 -0
- package/dist/esm/platform.js +127 -0
- package/dist/esm/platform.js.map +1 -0
- package/dist/esm/signer.d.ts +31 -0
- package/dist/esm/signer.d.ts.map +1 -0
- package/dist/esm/signer.js +108 -0
- package/dist/esm/signer.js.map +1 -0
- package/dist/esm/types.d.ts +18 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +16 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/unsignedTransaction.d.ts +20 -0
- package/dist/esm/unsignedTransaction.d.ts.map +1 -0
- package/dist/esm/unsignedTransaction.js +37 -0
- package/dist/esm/unsignedTransaction.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { SigningCosmWasmClient } from "@cosmjs/cosmwasm-stargate";
|
|
2
|
+
import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing";
|
|
3
|
+
import { ChainRestAuthApi, MsgTransfer, PrivateKey, TxClient, createTransaction, } from "@injectivelabs/sdk-ts";
|
|
4
|
+
import { encoding, nativeChainIds, rpc as rpcConf, } from "@wormhole-foundation/sdk-connect";
|
|
5
|
+
import { TxRaw } from "cosmjs-types/cosmos/tx/v1beta1/tx";
|
|
6
|
+
import { chainToAddressPrefix, cosmwasmNetworkChainToRestUrls, evmLikeChains, } from "./constants";
|
|
7
|
+
import { CosmwasmPlatform } from "./platform";
|
|
8
|
+
export async function getCosmwasmSigner(rpc, mnemonic) {
|
|
9
|
+
const [network, chain] = await CosmwasmPlatform.chainFromRpc(rpc);
|
|
10
|
+
// Use the EVM signer for Evmos and Injective only
|
|
11
|
+
if (evmLikeChains.includes(chain)) {
|
|
12
|
+
return new CosmwasmEvmSigner(chain, network, mnemonic);
|
|
13
|
+
}
|
|
14
|
+
// Otherwise use the default signer
|
|
15
|
+
const signer = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic, {
|
|
16
|
+
prefix: chainToAddressPrefix(chain),
|
|
17
|
+
});
|
|
18
|
+
const acct = (await signer.getAccounts())[0];
|
|
19
|
+
const signingClient = await SigningCosmWasmClient.connectWithSigner(rpcConf.rpcAddress(network, chain), signer);
|
|
20
|
+
return new CosmwasmSigner(chain, signingClient, acct.address);
|
|
21
|
+
}
|
|
22
|
+
export class CosmwasmSigner {
|
|
23
|
+
_chain;
|
|
24
|
+
_signer;
|
|
25
|
+
_account;
|
|
26
|
+
constructor(_chain, _signer, _account) {
|
|
27
|
+
this._chain = _chain;
|
|
28
|
+
this._signer = _signer;
|
|
29
|
+
this._account = _account;
|
|
30
|
+
}
|
|
31
|
+
chain() {
|
|
32
|
+
return this._chain;
|
|
33
|
+
}
|
|
34
|
+
address() {
|
|
35
|
+
return this._account;
|
|
36
|
+
}
|
|
37
|
+
async sign(tx) {
|
|
38
|
+
const signed = [];
|
|
39
|
+
for (const txn of tx) {
|
|
40
|
+
const { description, transaction } = txn;
|
|
41
|
+
console.log(`Signing: ${description} for ${this.address()}`);
|
|
42
|
+
console.log(transaction.msgs, transaction.fee, transaction.memo);
|
|
43
|
+
const txRaw = await this._signer.sign(this.address(), transaction.msgs, transaction.fee, transaction.memo);
|
|
44
|
+
const encoded = TxRaw.encode(txRaw).finish();
|
|
45
|
+
signed.push(encoded);
|
|
46
|
+
}
|
|
47
|
+
return signed;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export class CosmwasmEvmSigner {
|
|
51
|
+
_chain;
|
|
52
|
+
_chainId;
|
|
53
|
+
key;
|
|
54
|
+
prefix;
|
|
55
|
+
_rpc;
|
|
56
|
+
constructor(_chain, _network, _mnemonic) {
|
|
57
|
+
this._chain = _chain;
|
|
58
|
+
this._rpc = new ChainRestAuthApi(cosmwasmNetworkChainToRestUrls(_network, _chain));
|
|
59
|
+
this._chainId = nativeChainIds.networkChainToNativeChainId.get(_network, _chain);
|
|
60
|
+
this.prefix = chainToAddressPrefix(_chain);
|
|
61
|
+
this.key = PrivateKey.fromMnemonic(_mnemonic);
|
|
62
|
+
}
|
|
63
|
+
chain() {
|
|
64
|
+
return this._chain;
|
|
65
|
+
}
|
|
66
|
+
address() {
|
|
67
|
+
return this.key.toAddress().toBech32(this.prefix);
|
|
68
|
+
}
|
|
69
|
+
async sign(txns) {
|
|
70
|
+
const pubKey = this.key.toPublicKey().toBase64();
|
|
71
|
+
const { sequence, accountNumber } = await this.getSignerData();
|
|
72
|
+
const signed = [];
|
|
73
|
+
for (const tx of txns) {
|
|
74
|
+
const { description, transaction } = tx;
|
|
75
|
+
console.log(`Signing ${description} for ${this.address()}`);
|
|
76
|
+
const { signBytes, txRaw } = createTransaction({
|
|
77
|
+
message: transaction.msgs.map((eo) => MsgTransfer.fromJSON({
|
|
78
|
+
port: eo.value.sourcePort,
|
|
79
|
+
amount: eo.value.token,
|
|
80
|
+
memo: eo.value.memo,
|
|
81
|
+
sender: eo.value.sender,
|
|
82
|
+
receiver: eo.value.receiver,
|
|
83
|
+
channelId: eo.value.sourceChannel,
|
|
84
|
+
timeout: eo.value.timeoutTimestamp,
|
|
85
|
+
height: eo.value.timeoutHeight,
|
|
86
|
+
})),
|
|
87
|
+
pubKey,
|
|
88
|
+
sequence,
|
|
89
|
+
accountNumber,
|
|
90
|
+
chainId: this._chainId,
|
|
91
|
+
memo: transaction.memo,
|
|
92
|
+
fee: transaction.fee,
|
|
93
|
+
});
|
|
94
|
+
// @ts-ignore -- sign wants a `Buffer` but we give it uint8array
|
|
95
|
+
txRaw.signatures = [await this.key.sign(signBytes)];
|
|
96
|
+
signed.push(encoding.b64.decode(TxClient.encode(txRaw)));
|
|
97
|
+
}
|
|
98
|
+
return signed;
|
|
99
|
+
}
|
|
100
|
+
async getSignerData() {
|
|
101
|
+
const address = this.address();
|
|
102
|
+
const { account } = await this._rpc.fetchAccount(address);
|
|
103
|
+
const accountNumber = parseInt(account.base_account.account_number, 10);
|
|
104
|
+
const sequence = parseInt(account.base_account.sequence, 10);
|
|
105
|
+
return { address, sequence, accountNumber };
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=signer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { UniversalOrNative, PlatformToChains } from "@wormhole-foundation/sdk-connect";
|
|
2
|
+
import { logs as cosmosLogs } from "@cosmjs/stargate";
|
|
3
|
+
/**
|
|
4
|
+
* Runtime value for the Cosmwasm Platform
|
|
5
|
+
*/
|
|
6
|
+
export declare const _platform: "Cosmwasm";
|
|
7
|
+
/**
|
|
8
|
+
* Compile time type for Cosmwasm Platform
|
|
9
|
+
*/
|
|
10
|
+
export type CosmwasmPlatformType = typeof _platform;
|
|
11
|
+
export type CosmwasmChains = PlatformToChains<CosmwasmPlatformType>;
|
|
12
|
+
export type UniversalOrCosmwasm = UniversalOrNative<CosmwasmChains>;
|
|
13
|
+
export type AnyCosmwasmAddress = UniversalOrCosmwasm | string | Uint8Array;
|
|
14
|
+
export interface WrappedRegistryResponse {
|
|
15
|
+
address: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const searchCosmosLogs: (key: string, logs: readonly cosmosLogs.Log[]) => string | null;
|
|
18
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACvF,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,UAAuB,CAAC;AAChD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,SAAS,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;AACpE,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,MAAM,GAAG,UAAU,CAAC;AAE3E,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,gBAAgB,QAAS,MAAM,QAAQ,SAAS,WAAW,GAAG,EAAE,KAAG,MAAM,GAAG,IASxF,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime value for the Cosmwasm Platform
|
|
3
|
+
*/
|
|
4
|
+
export const _platform = "Cosmwasm";
|
|
5
|
+
export const searchCosmosLogs = (key, logs) => {
|
|
6
|
+
for (const log of logs) {
|
|
7
|
+
for (const ev of log.events) {
|
|
8
|
+
for (const attr of ev.attributes) {
|
|
9
|
+
if (attr.key === key)
|
|
10
|
+
return attr.value;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return null;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAe,UAAU,CAAC;AAchD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,IAA+B,EAAiB,EAAE;IAC9F,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE;YAC3B,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,UAAU,EAAE;gBAChC,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG;oBAAE,OAAO,IAAI,CAAC,KAAK,CAAC;aACzC;SACF;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Coin, EncodeObject } from "@cosmjs/proto-signing";
|
|
2
|
+
import { StdFee } from "@cosmjs/stargate";
|
|
3
|
+
import { Network, UnsignedTransaction } from "@wormhole-foundation/sdk-connect";
|
|
4
|
+
import { CosmwasmChains } from "./types";
|
|
5
|
+
export interface CosmwasmTransaction {
|
|
6
|
+
fee: StdFee;
|
|
7
|
+
msgs: EncodeObject[];
|
|
8
|
+
memo: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function computeFee<N extends Network, C extends CosmwasmChains>(network: N, chain: C): StdFee;
|
|
11
|
+
export declare function buildExecuteMsg(sender: string, contract: string, msg: Record<string, any>, funds?: Coin[]): EncodeObject;
|
|
12
|
+
export declare class CosmwasmUnsignedTransaction<N extends Network, C extends CosmwasmChains> implements UnsignedTransaction<N, C> {
|
|
13
|
+
readonly transaction: CosmwasmTransaction;
|
|
14
|
+
readonly network: N;
|
|
15
|
+
readonly chain: C;
|
|
16
|
+
readonly description: string;
|
|
17
|
+
readonly parallelizable: boolean;
|
|
18
|
+
constructor(transaction: CosmwasmTransaction, network: N, chain: C, description: string, parallelizable?: boolean);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=unsignedTransaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsignedTransaction.d.ts","sourceRoot":"","sources":["../../src/unsignedTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAgB,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAY,MAAM,kCAAkC,CAAC;AAI1F,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc,EACpE,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,GACP,MAAM,CAQR;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,KAAK,CAAC,EAAE,IAAI,EAAE,GACb,YAAY,CAUd;AAED,qBAAa,2BAA2B,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc,CAClF,YAAW,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;IAGlC,QAAQ,CAAC,WAAW,EAAE,mBAAmB;IACzC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO;gBAJvB,WAAW,EAAE,mBAAmB,EAChC,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,WAAW,EAAE,MAAM,EACnB,cAAc,GAAE,OAAe;CAE3C"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { calculateFee } from "@cosmjs/stargate";
|
|
2
|
+
import { encoding } from "@wormhole-foundation/sdk-connect";
|
|
3
|
+
import { MsgExecuteContract } from "cosmjs-types/cosmwasm/wasm/v1/tx";
|
|
4
|
+
import { DEFAULT_FEE, MSG_EXECUTE_CONTRACT_TYPE_URL, averageGasPrices } from "./constants";
|
|
5
|
+
import { CosmwasmPlatform } from "./platform";
|
|
6
|
+
export function computeFee(network, chain) {
|
|
7
|
+
let avgFee = averageGasPrices.get(network, chain);
|
|
8
|
+
if (!avgFee)
|
|
9
|
+
avgFee = "0.1";
|
|
10
|
+
return calculateFee(DEFAULT_FEE * 1.5, `${avgFee}${CosmwasmPlatform.getNativeDenom(network, chain)}`);
|
|
11
|
+
}
|
|
12
|
+
export function buildExecuteMsg(sender, contract, msg, funds) {
|
|
13
|
+
return {
|
|
14
|
+
typeUrl: MSG_EXECUTE_CONTRACT_TYPE_URL,
|
|
15
|
+
value: MsgExecuteContract.fromPartial({
|
|
16
|
+
sender: sender,
|
|
17
|
+
contract: contract,
|
|
18
|
+
msg: encoding.bytes.encode(JSON.stringify(msg)),
|
|
19
|
+
funds,
|
|
20
|
+
}),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export class CosmwasmUnsignedTransaction {
|
|
24
|
+
transaction;
|
|
25
|
+
network;
|
|
26
|
+
chain;
|
|
27
|
+
description;
|
|
28
|
+
parallelizable;
|
|
29
|
+
constructor(transaction, network, chain, description, parallelizable = false) {
|
|
30
|
+
this.transaction = transaction;
|
|
31
|
+
this.network = network;
|
|
32
|
+
this.chain = chain;
|
|
33
|
+
this.description = description;
|
|
34
|
+
this.parallelizable = parallelizable;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=unsignedTransaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsignedTransaction.js","sourceRoot":"","sources":["../../src/unsignedTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAgC,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAS9C,MAAM,UAAU,UAAU,CACxB,OAAU,EACV,KAAQ;IAER,IAAI,MAAM,GAAW,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAW,CAAC;IACpE,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,KAAK,CAAC;IAE5B,OAAO,YAAY,CACjB,WAAW,GAAG,GAAG,EACjB,GAAG,MAAM,GAAG,gBAAgB,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAC9D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,MAAc,EACd,QAAgB,EAChB,GAAwB,EACxB,KAAc;IAEd,OAAO;QACL,OAAO,EAAE,6BAA6B;QACtC,KAAK,EAAE,kBAAkB,CAAC,WAAW,CAAC;YACpC,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,QAAQ;YAClB,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC/C,KAAK;SACN,CAAC;KACH,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,2BAA2B;IAI3B;IACA;IACA;IACA;IACA;IALX,YACW,WAAgC,EAChC,OAAU,EACV,KAAQ,EACR,WAAmB,EACnB,iBAA0B,KAAK;QAJ/B,gBAAW,GAAX,WAAW,CAAqB;QAChC,YAAO,GAAP,OAAO,CAAG;QACV,UAAK,GAAL,KAAK,CAAG;QACR,gBAAW,GAAX,WAAW,CAAQ;QACnB,mBAAc,GAAd,cAAc,CAAiB;IACvC,CAAC;CACL"}
|
package/package.json
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@wormhole-foundation/sdk-cosmwasm",
|
|
3
|
+
"version": "0.5.0-alpha.0",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "git+https://github.com/wormhole-foundation/connect-sdk.git"
|
|
7
|
+
},
|
|
8
|
+
"bugs": {
|
|
9
|
+
"url": "https://github.com/wormhole-foundation/connect-sdk/issues"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://github.com/wormhole-foundation/connect-sdk#readme",
|
|
12
|
+
"directories": {
|
|
13
|
+
"test": "tests"
|
|
14
|
+
},
|
|
15
|
+
"license": "Apache-2.0",
|
|
16
|
+
"main": "./dist/cjs/index.js",
|
|
17
|
+
"module": "./dist/esm/index.js",
|
|
18
|
+
"types": "./dist/cjs/index.d.ts",
|
|
19
|
+
"author": "",
|
|
20
|
+
"description": "SDK for EVM chains, used in conjunction with @wormhole-foundation/sdk",
|
|
21
|
+
"files": [
|
|
22
|
+
"dist/cjs",
|
|
23
|
+
"dist/esm"
|
|
24
|
+
],
|
|
25
|
+
"keywords": [
|
|
26
|
+
"wormhole",
|
|
27
|
+
"sdk",
|
|
28
|
+
"typescript",
|
|
29
|
+
"connect",
|
|
30
|
+
"ethereum",
|
|
31
|
+
"moonbeam",
|
|
32
|
+
"celo",
|
|
33
|
+
"polygon",
|
|
34
|
+
"fantom",
|
|
35
|
+
"avalanche",
|
|
36
|
+
"bsc",
|
|
37
|
+
"evm"
|
|
38
|
+
],
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": ">=16"
|
|
41
|
+
},
|
|
42
|
+
"sideEffects": true,
|
|
43
|
+
"scripts": {
|
|
44
|
+
"build:cjs": "tsc -p ./tsconfig.cjs.json",
|
|
45
|
+
"build:esm": "tsc -p ./tsconfig.esm.json",
|
|
46
|
+
"build": "npm run build:cjs && npm run build:esm",
|
|
47
|
+
"rebuild": "npm run clean && npm run build",
|
|
48
|
+
"clean": "rm -rf ./dist && rm -rf ./.turbo",
|
|
49
|
+
"lint": "npm run prettier && eslint --fix",
|
|
50
|
+
"prettier": "prettier --write ./src",
|
|
51
|
+
"test": "jest --config ./jest.config.ts"
|
|
52
|
+
},
|
|
53
|
+
"dependencies": {
|
|
54
|
+
"@wormhole-foundation/sdk-connect": "0.5.0-alpha.0",
|
|
55
|
+
"@cosmjs/cosmwasm-stargate": "^0.32.0",
|
|
56
|
+
"@cosmjs/proto-signing": "^0.32.0",
|
|
57
|
+
"@cosmjs/stargate": "^0.32.0",
|
|
58
|
+
"@cosmjs/crypto": "^0.32.0",
|
|
59
|
+
"@cosmjs/tendermint-rpc": "^0.32.0",
|
|
60
|
+
"cosmjs-types": "^0.9.0",
|
|
61
|
+
"@injectivelabs/sdk-ts": "^1.14.4"
|
|
62
|
+
}
|
|
63
|
+
}
|