@keplr-wallet/stores 0.13.19 → 0.13.20

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.
@@ -11,6 +11,29 @@ const tx_1 = require("@keplr-wallet/proto-types/cosmwasm/wasm/v1/tx");
11
11
  const buffer_1 = require("buffer/");
12
12
  const deepmerge_1 = __importDefault(require("deepmerge"));
13
13
  const cosmos_1 = require("@keplr-wallet/cosmos");
14
+ // Injective MsgExecuteContractCompat: 모든 필드가 string이라 수동 protobuf 인코딩.
15
+ function encodeMsgExecuteContractCompat(params) {
16
+ const encodeString = (fieldNumber, value) => {
17
+ if (!value)
18
+ return buffer_1.Buffer.alloc(0);
19
+ const encoded = buffer_1.Buffer.from(value);
20
+ const tag = (fieldNumber << 3) | 2;
21
+ const lenBytes = [];
22
+ let len = encoded.length;
23
+ while (len > 0x7f) {
24
+ lenBytes.push((len & 0x7f) | 0x80);
25
+ len >>>= 7;
26
+ }
27
+ lenBytes.push(len);
28
+ return buffer_1.Buffer.concat([buffer_1.Buffer.from([tag]), buffer_1.Buffer.from(lenBytes), encoded]);
29
+ };
30
+ return buffer_1.Buffer.concat([
31
+ encodeString(1, params.sender),
32
+ encodeString(2, params.contract),
33
+ encodeString(3, params.msg),
34
+ encodeString(4, params.funds),
35
+ ]);
36
+ }
14
37
  exports.CosmwasmAccount = {
15
38
  use(options) {
16
39
  return (base, chainGetter, chainId) => {
@@ -102,6 +125,46 @@ class CosmwasmAccountImpl {
102
125
  funds,
103
126
  },
104
127
  };
128
+ // Injective + Ledger: MsgExecuteContractCompat 사용 (EIP-712 호환)
129
+ // 표준 MsgExecuteContract의 msg(bytes)는 EIP-712 정적 타입 불가 →
130
+ // Injective wasmx 모듈의 Compat 버전은 모든 필드가 string.
131
+ // ref: https://docs.injective.network/developers-native/examples/wasm#msgexecutecontractcompat
132
+ // ref: https://github.com/InjectiveLabs/injective-ts/blob/master/packages/sdk-ts/src/core/modules/wasm/msgs/MsgExecuteContractCompat.ts
133
+ if (this.chainId.startsWith("injective") && this.base.isNanoLedger) {
134
+ const fundsStr = funds.map((f) => `${f.amount}${f.denom}`).join(",");
135
+ return this.base.cosmos.makeTx(type, {
136
+ aminoMsgs: [
137
+ {
138
+ type: "wasmx/MsgExecuteContractCompat",
139
+ value: {
140
+ sender: this.base.bech32Address,
141
+ contract: contractAddress,
142
+ msg: JSON.stringify(obj),
143
+ funds: fundsStr,
144
+ },
145
+ },
146
+ ],
147
+ protoMsgs: [
148
+ {
149
+ typeUrl: "/injective.wasmx.v1.MsgExecuteContractCompat",
150
+ value: encodeMsgExecuteContractCompat({
151
+ sender: this.base.bech32Address,
152
+ contract: contractAddress,
153
+ msg: JSON.stringify(obj),
154
+ funds: fundsStr,
155
+ }),
156
+ },
157
+ ],
158
+ rlpTypes: {
159
+ MsgValue: [
160
+ { name: "sender", type: "string" },
161
+ { name: "contract", type: "string" },
162
+ { name: "msg", type: "string" },
163
+ { name: "funds", type: "string" },
164
+ ],
165
+ },
166
+ }, preOnTxEvents);
167
+ }
105
168
  return this.base.cosmos.makeTx(type, {
106
169
  aminoMsgs: [msg],
107
170
  protoMsgs: [
@@ -1 +1 @@
1
- {"version":3,"file":"cosmwasm.js","sourceRoot":"","sources":["../../src/account/cosmwasm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cosmwasm.js","sourceRoot":"","sources":["../../src/account/cosmwasm.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keplr-wallet/stores",
3
- "version": "0.13.19",
3
+ "version": "0.13.20",
4
4
  "main": "build/index.js",
5
5
  "author": "chainapsis",
6
6
  "license": "Apache-2.0",
@@ -21,17 +21,17 @@
21
21
  "typecheck": "npx tsc -p tsconfig.check.json"
22
22
  },
23
23
  "devDependencies": {
24
- "@keplr-wallet/provider-mock": "0.13.19"
24
+ "@keplr-wallet/provider-mock": "0.13.20"
25
25
  },
26
26
  "dependencies": {
27
- "@keplr-wallet/common": "0.13.19",
28
- "@keplr-wallet/cosmos": "0.13.19",
29
- "@keplr-wallet/crypto": "0.13.19",
30
- "@keplr-wallet/mobx-utils": "0.13.19",
31
- "@keplr-wallet/proto-types": "0.13.19",
32
- "@keplr-wallet/simple-fetch": "0.13.19",
33
- "@keplr-wallet/types": "0.13.19",
34
- "@keplr-wallet/unit": "0.13.19",
27
+ "@keplr-wallet/common": "0.13.20",
28
+ "@keplr-wallet/cosmos": "0.13.20",
29
+ "@keplr-wallet/crypto": "0.13.20",
30
+ "@keplr-wallet/mobx-utils": "0.13.20",
31
+ "@keplr-wallet/proto-types": "0.13.20",
32
+ "@keplr-wallet/simple-fetch": "0.13.20",
33
+ "@keplr-wallet/types": "0.13.20",
34
+ "@keplr-wallet/unit": "0.13.20",
35
35
  "buffer": "^6.0.3",
36
36
  "deepmerge": "^4.2.2",
37
37
  "eventemitter3": "^4.0.7",
@@ -43,5 +43,5 @@
43
43
  "mobx": "^6",
44
44
  "mobx-utils": "^6"
45
45
  },
46
- "gitHead": "4e1272ba71c6ced2c80bb50065f6dd8a78f4c574"
46
+ "gitHead": "7f82f3b957266279a59283e473d75f1b3b4faaf8"
47
47
  }
@@ -12,6 +12,35 @@ import deepmerge from "deepmerge";
12
12
  import { CosmosAccount } from "./cosmos";
13
13
  import { Bech32Address } from "@keplr-wallet/cosmos";
14
14
 
15
+ // Injective MsgExecuteContractCompat: 모든 필드가 string이라 수동 protobuf 인코딩.
16
+ function encodeMsgExecuteContractCompat(params: {
17
+ sender: string;
18
+ contract: string;
19
+ msg: string;
20
+ funds: string;
21
+ }): Uint8Array {
22
+ const encodeString = (fieldNumber: number, value: string): Buffer => {
23
+ if (!value) return Buffer.alloc(0);
24
+ const encoded = Buffer.from(value);
25
+ const tag = (fieldNumber << 3) | 2;
26
+ const lenBytes: number[] = [];
27
+ let len = encoded.length;
28
+ while (len > 0x7f) {
29
+ lenBytes.push((len & 0x7f) | 0x80);
30
+ len >>>= 7;
31
+ }
32
+ lenBytes.push(len);
33
+ return Buffer.concat([Buffer.from([tag]), Buffer.from(lenBytes), encoded]);
34
+ };
35
+
36
+ return Buffer.concat([
37
+ encodeString(1, params.sender),
38
+ encodeString(2, params.contract),
39
+ encodeString(3, params.msg),
40
+ encodeString(4, params.funds),
41
+ ]);
42
+ }
43
+
15
44
  export interface CosmwasmAccount {
16
45
  cosmwasm: CosmwasmAccountImpl;
17
46
  }
@@ -176,6 +205,52 @@ export class CosmwasmAccountImpl {
176
205
  },
177
206
  };
178
207
 
208
+ // Injective + Ledger: MsgExecuteContractCompat 사용 (EIP-712 호환)
209
+ // 표준 MsgExecuteContract의 msg(bytes)는 EIP-712 정적 타입 불가 →
210
+ // Injective wasmx 모듈의 Compat 버전은 모든 필드가 string.
211
+ // ref: https://docs.injective.network/developers-native/examples/wasm#msgexecutecontractcompat
212
+ // ref: https://github.com/InjectiveLabs/injective-ts/blob/master/packages/sdk-ts/src/core/modules/wasm/msgs/MsgExecuteContractCompat.ts
213
+ if (this.chainId.startsWith("injective") && this.base.isNanoLedger) {
214
+ const fundsStr = funds.map((f) => `${f.amount}${f.denom}`).join(",");
215
+
216
+ return this.base.cosmos.makeTx(
217
+ type,
218
+ {
219
+ aminoMsgs: [
220
+ {
221
+ type: "wasmx/MsgExecuteContractCompat",
222
+ value: {
223
+ sender: this.base.bech32Address,
224
+ contract: contractAddress,
225
+ msg: JSON.stringify(obj),
226
+ funds: fundsStr,
227
+ },
228
+ },
229
+ ],
230
+ protoMsgs: [
231
+ {
232
+ typeUrl: "/injective.wasmx.v1.MsgExecuteContractCompat",
233
+ value: encodeMsgExecuteContractCompat({
234
+ sender: this.base.bech32Address,
235
+ contract: contractAddress,
236
+ msg: JSON.stringify(obj),
237
+ funds: fundsStr,
238
+ }),
239
+ },
240
+ ],
241
+ rlpTypes: {
242
+ MsgValue: [
243
+ { name: "sender", type: "string" },
244
+ { name: "contract", type: "string" },
245
+ { name: "msg", type: "string" },
246
+ { name: "funds", type: "string" },
247
+ ],
248
+ },
249
+ },
250
+ preOnTxEvents
251
+ );
252
+ }
253
+
179
254
  return this.base.cosmos.makeTx(
180
255
  type,
181
256
  {