@wormhole-foundation/sdk-cosmwasm 0.5.0-beta.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/testing/index.d.ts +2 -0
- package/dist/cjs/testing/index.d.ts.map +1 -0
- package/dist/cjs/testing/index.js +18 -0
- package/dist/cjs/testing/index.js.map +1 -0
- package/dist/cjs/testing/signer.d.ts +30 -0
- package/dist/cjs/testing/signer.d.ts.map +1 -0
- package/dist/cjs/testing/signer.js +113 -0
- package/dist/cjs/testing/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/testing/index.d.ts +2 -0
- package/dist/esm/testing/index.d.ts.map +1 -0
- package/dist/esm/testing/index.js +2 -0
- package/dist/esm/testing/index.js.map +1 -0
- package/dist/esm/testing/signer.d.ts +30 -0
- package/dist/esm/testing/signer.d.ts.map +1 -0
- package/dist/esm/testing/signer.js +107 -0
- package/dist/esm/testing/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/dist/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CosmwasmEvmSigner = exports.CosmwasmSigner = exports.getCosmwasmSigner = void 0;
|
|
4
|
+
const cosmwasm_stargate_1 = require("@cosmjs/cosmwasm-stargate");
|
|
5
|
+
const proto_signing_1 = require("@cosmjs/proto-signing");
|
|
6
|
+
const sdk_ts_1 = require("@injectivelabs/sdk-ts");
|
|
7
|
+
const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
|
|
8
|
+
const tx_1 = require("cosmjs-types/cosmos/tx/v1beta1/tx");
|
|
9
|
+
const constants_1 = require("./constants");
|
|
10
|
+
const platform_1 = require("./platform");
|
|
11
|
+
async function getCosmwasmSigner(rpc, mnemonic) {
|
|
12
|
+
const [network, chain] = await platform_1.CosmwasmPlatform.chainFromRpc(rpc);
|
|
13
|
+
// Use the EVM signer for Evmos and Injective only
|
|
14
|
+
if (constants_1.evmLikeChains.includes(chain)) {
|
|
15
|
+
return new CosmwasmEvmSigner(chain, network, mnemonic);
|
|
16
|
+
}
|
|
17
|
+
// Otherwise use the default signer
|
|
18
|
+
const signer = await proto_signing_1.DirectSecp256k1HdWallet.fromMnemonic(mnemonic, {
|
|
19
|
+
prefix: (0, constants_1.chainToAddressPrefix)(chain),
|
|
20
|
+
});
|
|
21
|
+
const acct = (await signer.getAccounts())[0];
|
|
22
|
+
const signingClient = await cosmwasm_stargate_1.SigningCosmWasmClient.connectWithSigner(sdk_connect_1.rpc.rpcAddress(network, chain), signer);
|
|
23
|
+
return new CosmwasmSigner(chain, signingClient, acct.address);
|
|
24
|
+
}
|
|
25
|
+
exports.getCosmwasmSigner = getCosmwasmSigner;
|
|
26
|
+
class CosmwasmSigner {
|
|
27
|
+
_chain;
|
|
28
|
+
_signer;
|
|
29
|
+
_account;
|
|
30
|
+
constructor(_chain, _signer, _account) {
|
|
31
|
+
this._chain = _chain;
|
|
32
|
+
this._signer = _signer;
|
|
33
|
+
this._account = _account;
|
|
34
|
+
}
|
|
35
|
+
chain() {
|
|
36
|
+
return this._chain;
|
|
37
|
+
}
|
|
38
|
+
address() {
|
|
39
|
+
return this._account;
|
|
40
|
+
}
|
|
41
|
+
async sign(tx) {
|
|
42
|
+
const signed = [];
|
|
43
|
+
for (const txn of tx) {
|
|
44
|
+
const { description, transaction } = txn;
|
|
45
|
+
console.log(`Signing: ${description} for ${this.address()}`);
|
|
46
|
+
console.log(transaction.msgs, transaction.fee, transaction.memo);
|
|
47
|
+
const txRaw = await this._signer.sign(this.address(), transaction.msgs, transaction.fee, transaction.memo);
|
|
48
|
+
const encoded = tx_1.TxRaw.encode(txRaw).finish();
|
|
49
|
+
signed.push(encoded);
|
|
50
|
+
}
|
|
51
|
+
return signed;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.CosmwasmSigner = CosmwasmSigner;
|
|
55
|
+
class CosmwasmEvmSigner {
|
|
56
|
+
_chain;
|
|
57
|
+
_chainId;
|
|
58
|
+
key;
|
|
59
|
+
prefix;
|
|
60
|
+
_rpc;
|
|
61
|
+
constructor(_chain, _network, _mnemonic) {
|
|
62
|
+
this._chain = _chain;
|
|
63
|
+
this._rpc = new sdk_ts_1.ChainRestAuthApi((0, constants_1.cosmwasmNetworkChainToRestUrls)(_network, _chain));
|
|
64
|
+
this._chainId = sdk_connect_1.nativeChainIds.networkChainToNativeChainId.get(_network, _chain);
|
|
65
|
+
this.prefix = (0, constants_1.chainToAddressPrefix)(_chain);
|
|
66
|
+
this.key = sdk_ts_1.PrivateKey.fromMnemonic(_mnemonic);
|
|
67
|
+
}
|
|
68
|
+
chain() {
|
|
69
|
+
return this._chain;
|
|
70
|
+
}
|
|
71
|
+
address() {
|
|
72
|
+
return this.key.toAddress().toBech32(this.prefix);
|
|
73
|
+
}
|
|
74
|
+
async sign(txns) {
|
|
75
|
+
const pubKey = this.key.toPublicKey().toBase64();
|
|
76
|
+
const { sequence, accountNumber } = await this.getSignerData();
|
|
77
|
+
const signed = [];
|
|
78
|
+
for (const tx of txns) {
|
|
79
|
+
const { description, transaction } = tx;
|
|
80
|
+
console.log(`Signing ${description} for ${this.address()}`);
|
|
81
|
+
const { signBytes, txRaw } = (0, sdk_ts_1.createTransaction)({
|
|
82
|
+
message: transaction.msgs.map((eo) => sdk_ts_1.MsgTransfer.fromJSON({
|
|
83
|
+
port: eo.value.sourcePort,
|
|
84
|
+
amount: eo.value.token,
|
|
85
|
+
memo: eo.value.memo,
|
|
86
|
+
sender: eo.value.sender,
|
|
87
|
+
receiver: eo.value.receiver,
|
|
88
|
+
channelId: eo.value.sourceChannel,
|
|
89
|
+
timeout: eo.value.timeoutTimestamp,
|
|
90
|
+
height: eo.value.timeoutHeight,
|
|
91
|
+
})),
|
|
92
|
+
pubKey,
|
|
93
|
+
sequence,
|
|
94
|
+
accountNumber,
|
|
95
|
+
chainId: this._chainId,
|
|
96
|
+
memo: transaction.memo,
|
|
97
|
+
fee: transaction.fee,
|
|
98
|
+
});
|
|
99
|
+
// @ts-ignore -- sign wants a `Buffer` but we give it uint8array
|
|
100
|
+
txRaw.signatures = [await this.key.sign(signBytes)];
|
|
101
|
+
signed.push(sdk_connect_1.encoding.b64.decode(sdk_ts_1.TxClient.encode(txRaw)));
|
|
102
|
+
}
|
|
103
|
+
return signed;
|
|
104
|
+
}
|
|
105
|
+
async getSignerData() {
|
|
106
|
+
const address = this.address();
|
|
107
|
+
const { account } = await this._rpc.fetchAccount(address);
|
|
108
|
+
const accountNumber = parseInt(account.base_account.account_number, 10);
|
|
109
|
+
const sequence = parseInt(account.base_account.sequence, 10);
|
|
110
|
+
return { address, sequence, accountNumber };
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.CosmwasmEvmSigner = CosmwasmEvmSigner;
|
|
114
|
+
//# 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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./signer"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { CosmWasmClient, SigningCosmWasmClient } from "@cosmjs/cosmwasm-stargate";
|
|
2
|
+
import { Network, SignOnlySigner, SignedTx, Signer, UnsignedTransaction } from "@wormhole-foundation/connect-sdk";
|
|
3
|
+
import { CosmwasmChains } from "../types";
|
|
4
|
+
export declare function getCosmwasmSigner(rpc: CosmWasmClient, mnemonic: string): Promise<Signer>;
|
|
5
|
+
export declare class CosmwasmSigner<N extends Network, C extends CosmwasmChains> implements SignOnlySigner<N, C> {
|
|
6
|
+
private _chain;
|
|
7
|
+
private _signer;
|
|
8
|
+
private _account;
|
|
9
|
+
constructor(_chain: C, _signer: SigningCosmWasmClient, _account: string);
|
|
10
|
+
chain(): C;
|
|
11
|
+
address(): string;
|
|
12
|
+
sign(tx: UnsignedTransaction[]): Promise<SignedTx[]>;
|
|
13
|
+
}
|
|
14
|
+
export declare class CosmwasmEvmSigner<N extends Network, C extends CosmwasmChains> implements SignOnlySigner<N, C> {
|
|
15
|
+
private _chain;
|
|
16
|
+
private _chainId;
|
|
17
|
+
private key;
|
|
18
|
+
private prefix;
|
|
19
|
+
private _rpc;
|
|
20
|
+
constructor(_chain: C, _network: Network, _mnemonic: string);
|
|
21
|
+
chain(): C;
|
|
22
|
+
address(): string;
|
|
23
|
+
sign(txns: UnsignedTransaction[]): Promise<SignedTx[]>;
|
|
24
|
+
getSignerData(): Promise<{
|
|
25
|
+
address: string;
|
|
26
|
+
sequence: number;
|
|
27
|
+
accountNumber: number;
|
|
28
|
+
}>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=signer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../src/testing/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAWlF,OAAO,EACL,OAAO,EAEP,cAAc,EACd,QAAQ,EACR,MAAM,EACN,mBAAmB,EAIpB,MAAM,kCAAkC,CAAC;AAS1C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAoB9F;AAED,qBAAa,cAAc,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc,CACrE,YAAW,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;IAG7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;gBAFR,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,MAAM;IAG1B,KAAK,IAAI,CAAC;IAIV,OAAO,IAAI,MAAM;IAIX,IAAI,CAAC,EAAE,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAmB3D;AAED,qBAAa,iBAAiB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc,CACxE,YAAW,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;IAO7B,OAAO,CAAC,MAAM;IALhB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAmB;gBAErB,MAAM,EAAE,CAAC,EACjB,QAAQ,EAAE,OAAO,EACjB,SAAS,EAAE,MAAM;IAenB,KAAK;IAIL,OAAO;IAID,IAAI,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAoCtD,aAAa,IAAI,OAAO,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CAOH"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CosmwasmEvmSigner = exports.CosmwasmSigner = exports.getCosmwasmSigner = void 0;
|
|
4
|
+
const cosmwasm_stargate_1 = require("@cosmjs/cosmwasm-stargate");
|
|
5
|
+
const proto_signing_1 = require("@cosmjs/proto-signing");
|
|
6
|
+
const sdk_ts_1 = require("@injectivelabs/sdk-ts");
|
|
7
|
+
const connect_sdk_1 = require("@wormhole-foundation/connect-sdk");
|
|
8
|
+
const tx_1 = require("cosmjs-types/cosmos/tx/v1beta1/tx");
|
|
9
|
+
const constants_1 = require("../constants");
|
|
10
|
+
const platform_1 = require("../platform");
|
|
11
|
+
async function getCosmwasmSigner(rpc, mnemonic) {
|
|
12
|
+
const [network, chain] = await platform_1.CosmwasmPlatform.chainFromRpc(rpc);
|
|
13
|
+
// Use the EVM signer for Evmos and Injective only
|
|
14
|
+
if (constants_1.evmLikeChains.includes(chain)) {
|
|
15
|
+
return new CosmwasmEvmSigner(chain, network, mnemonic);
|
|
16
|
+
}
|
|
17
|
+
// Otherwise use the default signer
|
|
18
|
+
const signer = await proto_signing_1.DirectSecp256k1HdWallet.fromMnemonic(mnemonic, {
|
|
19
|
+
prefix: (0, constants_1.chainToAddressPrefix)(chain),
|
|
20
|
+
});
|
|
21
|
+
const acct = (await signer.getAccounts())[0];
|
|
22
|
+
const signingClient = await cosmwasm_stargate_1.SigningCosmWasmClient.connectWithSigner(connect_sdk_1.rpc.rpcAddress(network, chain), signer);
|
|
23
|
+
return new CosmwasmSigner(chain, signingClient, acct.address);
|
|
24
|
+
}
|
|
25
|
+
exports.getCosmwasmSigner = getCosmwasmSigner;
|
|
26
|
+
class CosmwasmSigner {
|
|
27
|
+
_chain;
|
|
28
|
+
_signer;
|
|
29
|
+
_account;
|
|
30
|
+
constructor(_chain, _signer, _account) {
|
|
31
|
+
this._chain = _chain;
|
|
32
|
+
this._signer = _signer;
|
|
33
|
+
this._account = _account;
|
|
34
|
+
}
|
|
35
|
+
chain() {
|
|
36
|
+
return this._chain;
|
|
37
|
+
}
|
|
38
|
+
address() {
|
|
39
|
+
return this._account;
|
|
40
|
+
}
|
|
41
|
+
async sign(tx) {
|
|
42
|
+
const signed = [];
|
|
43
|
+
for (const txn of tx) {
|
|
44
|
+
const { description, transaction } = txn;
|
|
45
|
+
console.log(`Signing: ${description} for ${this.address()}`);
|
|
46
|
+
const txRaw = await this._signer.sign(this.address(), transaction.msgs, transaction.fee, transaction.memo);
|
|
47
|
+
const encoded = tx_1.TxRaw.encode(txRaw).finish();
|
|
48
|
+
signed.push(encoded);
|
|
49
|
+
}
|
|
50
|
+
return signed;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.CosmwasmSigner = CosmwasmSigner;
|
|
54
|
+
class CosmwasmEvmSigner {
|
|
55
|
+
_chain;
|
|
56
|
+
_chainId;
|
|
57
|
+
key;
|
|
58
|
+
prefix;
|
|
59
|
+
_rpc;
|
|
60
|
+
constructor(_chain, _network, _mnemonic) {
|
|
61
|
+
this._chain = _chain;
|
|
62
|
+
this._rpc = new sdk_ts_1.ChainRestAuthApi((0, constants_1.cosmwasmNetworkChainToRestUrls)(_network, _chain));
|
|
63
|
+
this._chainId = connect_sdk_1.nativeChainIds.networkChainToNativeChainId(_network, _chain);
|
|
64
|
+
this.prefix = (0, constants_1.chainToAddressPrefix)(_chain);
|
|
65
|
+
this.key = sdk_ts_1.PrivateKey.fromMnemonic(_mnemonic);
|
|
66
|
+
}
|
|
67
|
+
chain() {
|
|
68
|
+
return this._chain;
|
|
69
|
+
}
|
|
70
|
+
address() {
|
|
71
|
+
return this.key.toAddress().toBech32(this.prefix);
|
|
72
|
+
}
|
|
73
|
+
async sign(txns) {
|
|
74
|
+
const pubKey = this.key.toPublicKey().toBase64();
|
|
75
|
+
const { sequence, accountNumber } = await this.getSignerData();
|
|
76
|
+
const signed = [];
|
|
77
|
+
for (const tx of txns) {
|
|
78
|
+
const { description, transaction } = tx;
|
|
79
|
+
console.log(`Signing ${description} for ${this.address()}`);
|
|
80
|
+
// need to set contractAddress and msg
|
|
81
|
+
const message = transaction.msgs.map((m) => {
|
|
82
|
+
const f = {
|
|
83
|
+
...m.value,
|
|
84
|
+
msg: JSON.parse(connect_sdk_1.encoding.bytes.decode(m.value.msg)),
|
|
85
|
+
contractAddress: m.value.contract,
|
|
86
|
+
};
|
|
87
|
+
return new sdk_ts_1.MsgExecuteContract(f);
|
|
88
|
+
});
|
|
89
|
+
const { signBytes, txRaw } = (0, sdk_ts_1.createTransaction)({
|
|
90
|
+
message,
|
|
91
|
+
pubKey,
|
|
92
|
+
sequence,
|
|
93
|
+
accountNumber,
|
|
94
|
+
chainId: this._chainId,
|
|
95
|
+
memo: transaction.memo,
|
|
96
|
+
fee: sdk_ts_1.DEFAULT_STD_FEE,
|
|
97
|
+
});
|
|
98
|
+
// @ts-ignore -- sign wants a `Buffer` but we give it uint8array
|
|
99
|
+
txRaw.signatures = [await this.key.sign(signBytes)];
|
|
100
|
+
signed.push(connect_sdk_1.encoding.b64.decode(sdk_ts_1.TxClient.encode(txRaw)));
|
|
101
|
+
}
|
|
102
|
+
return signed;
|
|
103
|
+
}
|
|
104
|
+
async getSignerData() {
|
|
105
|
+
const address = this.address();
|
|
106
|
+
const { account } = await this._rpc.fetchAccount(address);
|
|
107
|
+
const accountNumber = parseInt(account.base_account.account_number, 10);
|
|
108
|
+
const sequence = parseInt(account.base_account.sequence, 10);
|
|
109
|
+
return { address, sequence, accountNumber };
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.CosmwasmEvmSigner = CosmwasmEvmSigner;
|
|
113
|
+
//# sourceMappingURL=signer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../src/testing/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,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.searchCosmosLogs = exports._platform = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Runtime value for the Cosmwasm Platform
|
|
6
|
+
*/
|
|
7
|
+
exports._platform = "Cosmwasm";
|
|
8
|
+
const searchCosmosLogs = (key, logs) => {
|
|
9
|
+
for (const log of logs) {
|
|
10
|
+
for (const ev of log.events) {
|
|
11
|
+
for (const attr of ev.attributes) {
|
|
12
|
+
if (attr.key === key)
|
|
13
|
+
return attr.value;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
};
|
|
19
|
+
exports.searchCosmosLogs = searchCosmosLogs;
|
|
20
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACU,QAAA,SAAS,GAAe,UAAU,CAAC;AAczC,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;AATW,QAAA,gBAAgB,oBAS3B"}
|
|
@@ -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,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CosmwasmUnsignedTransaction = exports.buildExecuteMsg = exports.computeFee = void 0;
|
|
4
|
+
const stargate_1 = require("@cosmjs/stargate");
|
|
5
|
+
const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
|
|
6
|
+
const tx_1 = require("cosmjs-types/cosmwasm/wasm/v1/tx");
|
|
7
|
+
const constants_1 = require("./constants");
|
|
8
|
+
const platform_1 = require("./platform");
|
|
9
|
+
function computeFee(network, chain) {
|
|
10
|
+
let avgFee = constants_1.averageGasPrices.get(network, chain);
|
|
11
|
+
if (!avgFee)
|
|
12
|
+
avgFee = "0.1";
|
|
13
|
+
return (0, stargate_1.calculateFee)(constants_1.DEFAULT_FEE * 1.5, `${avgFee}${platform_1.CosmwasmPlatform.getNativeDenom(network, chain)}`);
|
|
14
|
+
}
|
|
15
|
+
exports.computeFee = computeFee;
|
|
16
|
+
function buildExecuteMsg(sender, contract, msg, funds) {
|
|
17
|
+
return {
|
|
18
|
+
typeUrl: constants_1.MSG_EXECUTE_CONTRACT_TYPE_URL,
|
|
19
|
+
value: tx_1.MsgExecuteContract.fromPartial({
|
|
20
|
+
sender: sender,
|
|
21
|
+
contract: contract,
|
|
22
|
+
msg: sdk_connect_1.encoding.bytes.encode(JSON.stringify(msg)),
|
|
23
|
+
funds,
|
|
24
|
+
}),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
exports.buildExecuteMsg = buildExecuteMsg;
|
|
28
|
+
class CosmwasmUnsignedTransaction {
|
|
29
|
+
transaction;
|
|
30
|
+
network;
|
|
31
|
+
chain;
|
|
32
|
+
description;
|
|
33
|
+
parallelizable;
|
|
34
|
+
constructor(transaction, network, chain, description, parallelizable = false) {
|
|
35
|
+
this.transaction = transaction;
|
|
36
|
+
this.network = network;
|
|
37
|
+
this.chain = chain;
|
|
38
|
+
this.description = description;
|
|
39
|
+
this.parallelizable = parallelizable;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.CosmwasmUnsignedTransaction = CosmwasmUnsignedTransaction;
|
|
43
|
+
//# sourceMappingURL=unsignedTransaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsignedTransaction.js","sourceRoot":"","sources":["../../src/unsignedTransaction.ts"],"names":[],"mappings":";;;AACA,+CAAwD;AACxD,kEAA0F;AAC1F,yDAAsE;AACtE,2CAA2F;AAC3F,yCAA8C;AAS9C,SAAgB,UAAU,CACxB,OAAU,EACV,KAAQ;IAER,IAAI,MAAM,GAAW,4BAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAW,CAAC;IACpE,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,KAAK,CAAC;IAE5B,OAAO,IAAA,uBAAY,EACjB,uBAAW,GAAG,GAAG,EACjB,GAAG,MAAM,GAAG,2BAAgB,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAC9D,CAAC;AACJ,CAAC;AAXD,gCAWC;AAED,SAAgB,eAAe,CAC7B,MAAc,EACd,QAAgB,EAChB,GAAwB,EACxB,KAAc;IAEd,OAAO;QACL,OAAO,EAAE,yCAA6B;QACtC,KAAK,EAAE,uBAAkB,CAAC,WAAW,CAAC;YACpC,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,QAAQ;YAClB,GAAG,EAAE,sBAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC/C,KAAK;SACN,CAAC;KACH,CAAC;AACJ,CAAC;AAfD,0CAeC;AAED,MAAa,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;AAVD,kEAUC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Address, UniversalAddress } from "@wormhole-foundation/sdk-connect";
|
|
2
|
+
import { AnyCosmwasmAddress } from "./types";
|
|
3
|
+
export declare class CosmwasmAddress implements Address {
|
|
4
|
+
static readonly contractAddressByteSize = 32;
|
|
5
|
+
static readonly accountAddressByteSize = 20;
|
|
6
|
+
readonly platform: "Cosmwasm";
|
|
7
|
+
readonly address: Uint8Array;
|
|
8
|
+
readonly domain?: string;
|
|
9
|
+
readonly denom?: string;
|
|
10
|
+
readonly denomType?: string;
|
|
11
|
+
constructor(address: AnyCosmwasmAddress);
|
|
12
|
+
unwrap(): string;
|
|
13
|
+
toString(): string;
|
|
14
|
+
toNative(): this;
|
|
15
|
+
toUint8Array(): Uint8Array;
|
|
16
|
+
toUniversalAddress(): UniversalAddress;
|
|
17
|
+
static isValidAddress(address: string): boolean;
|
|
18
|
+
private static validAddressLength;
|
|
19
|
+
static instanceof(address: any): address is CosmwasmAddress;
|
|
20
|
+
equals(other: CosmwasmAddress | UniversalAddress): boolean;
|
|
21
|
+
}
|
|
22
|
+
declare global {
|
|
23
|
+
namespace Wormhole {
|
|
24
|
+
interface PlatformToNativeAddressMapping {
|
|
25
|
+
Cosmwasm: CosmwasmAddress;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=address.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACP,gBAAgB,EAGjB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAa,MAAM,SAAS,CAAC;AAqFxD,qBAAa,eAAgB,YAAW,OAAO;IAC7C,MAAM,CAAC,QAAQ,CAAC,uBAAuB,MAAM;IAC7C,MAAM,CAAC,QAAQ,CAAC,sBAAsB,MAAM;IAC5C,SAAgB,QAAQ,aAA8B;IAGtD,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAG7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEhB,OAAO,EAAE,kBAAkB;IAwDvC,MAAM,IAAI,MAAM;IAIhB,QAAQ,IAAI,MAAM;IAoBlB,QAAQ;IAIR,YAAY;IAIZ,kBAAkB;IAMlB,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQ/C,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAajC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,eAAe;IAI3D,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,GAAG,OAAO;CAO3D;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,QAAQ,CAAC;QACjB,UAAU,8BAA8B;YACtC,QAAQ,EAAE,eAAe,CAAC;SAC3B;KACF;CACF"}
|