@keplr-wallet/background 0.12.141 → 0.12.142-rc.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.
@@ -1,4 +1,5 @@
1
1
  export interface EncryptionUtils {
2
+ isNewApi: boolean;
2
3
  getPubkey: () => Promise<Uint8Array>;
3
4
  decrypt: (ciphertext: Uint8Array, nonce: Uint8Array) => Promise<Uint8Array>;
4
5
  encrypt: (contractCodeHash: string, msg: object) => Promise<Uint8Array>;
@@ -10,6 +11,7 @@ export declare class EnigmaUtils implements EncryptionUtils {
10
11
  protected readonly chainId: string;
11
12
  private readonly privkey;
12
13
  readonly pubkey: Uint8Array;
14
+ isNewApi: boolean;
13
15
  private consensusIoPubKey;
14
16
  constructor(url: string, seed: Uint8Array, chainId: string);
15
17
  private static secureRandom;
@@ -58,6 +58,7 @@ class EnigmaUtils {
58
58
  if (cosmos_1.ChainIdHelper.parse(chainId).identifier === "secret") {
59
59
  this.consensusIoPubKey = secretConsensusIoPubKey;
60
60
  }
61
+ this.isNewApi = false;
61
62
  }
62
63
  static secureRandom(count) {
63
64
  const nativeArr = new Uint8Array(count);
@@ -69,12 +70,27 @@ class EnigmaUtils {
69
70
  return { privkey, pubkey };
70
71
  }
71
72
  getConsensusIoPubKey() {
73
+ var _a;
72
74
  return __awaiter(this, void 0, void 0, function* () {
73
75
  if (this.consensusIoPubKey.length === 32) {
74
76
  return this.consensusIoPubKey;
75
77
  }
76
- const response = yield (0, simple_fetch_1.simpleFetch)(this.url, "/reg/tx-key");
77
- this.consensusIoPubKey = new Uint8Array(buffer_1.Buffer.from(response.data.result.TxKey, "base64"));
78
+ // try to fetch from the old API
79
+ try {
80
+ const response = yield (0, simple_fetch_1.simpleFetch)(this.url, "/reg/tx-key");
81
+ this.consensusIoPubKey = new Uint8Array(buffer_1.Buffer.from(response.data.result.TxKey, "base64"));
82
+ }
83
+ catch (e) {
84
+ if (!(0, simple_fetch_1.isSimpleFetchError)(e) ||
85
+ !e.response ||
86
+ ((_a = e.response) === null || _a === void 0 ? void 0 : _a.status) != 501) {
87
+ throw e;
88
+ }
89
+ // if old API is not implemented, use the new one
90
+ const response = yield (0, simple_fetch_1.simpleFetch)(this.url, "/registration/v1beta1/tx-key");
91
+ this.consensusIoPubKey = new Uint8Array(buffer_1.Buffer.from(response.data.key, "base64"));
92
+ this.isNewApi = true;
93
+ }
78
94
  return this.consensusIoPubKey;
79
95
  });
80
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"enigma-utils.js","sourceRoot":"","sources":["../../src/secret-wasm/enigma-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAqE;AACrE,6CAA0C;AAC1C,iDAA8C;AAC9C,qDAAuC;AACvC,6DAAyD;AACzD,oCAAiC;AACjC,iDAAqD;AAErD,MAAM,cAAc,GAAG,IAAI,SAAS,CAAC,sBAAsB,EAAE,CAAC;AAS9D,MAAM,QAAQ,GAAe,IAAI,UAAU,CACzC,eAAM,CAAC,IAAI,CACT,kEAAkE,EAClE,KAAK,CACN,CACF,CAAC;AAEF,MAAM,uBAAuB,GAAG,IAAI,UAAU,CAC5C,eAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,QAAQ,CAAC,CACtE,CAAC;AAEF,MAAa,WAAW;IAKtB,YACqB,GAAW,EACX,IAAgB,EAChB,OAAe;QAFf,QAAG,GAAH,GAAG,CAAQ;QACX,SAAI,GAAJ,IAAI,CAAY;QAChB,YAAO,GAAP,OAAO,CAAQ;QAL5B,sBAAiB,GAAe,IAAI,UAAU,EAAE,CAAC,CAAC,QAAQ;QAOhE,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;SACrE;QAED,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,0BAA0B,CAChE,IAAI,CAAC,IAAI,CACV,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,sBAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,EAAE;YACxD,IAAI,CAAC,iBAAiB,GAAG,uBAAuB,CAAC;SAClD;IACH,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,KAAa;QACvC,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAElC,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,MAAM,CAAC,0BAA0B,CAAC,IAAgB;QAIvD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAe,EAAC,IAAI,CAAC,CAAC;QACnE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IAEa,oBAAoB;;YAChC,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,EAAE,EAAE;gBACxC,OAAO,IAAI,CAAC,iBAAiB,CAAC;aAC/B;YAED,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAW,EAChC,IAAI,CAAC,GAAG,EACR,aAAa,CACd,CAAC;YAEF,IAAI,CAAC,iBAAiB,GAAG,IAAI,UAAU,CACrC,eAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAClD,CAAC;YAEF,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;KAAA;IAEY,kBAAkB,CAAC,KAAiB;;YAC/C,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAE5D,MAAM,eAAe,GAAG,IAAA,yBAAM,EAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;YAChE,OAAO,IAAA,WAAI,EACT,eAAM,EACN,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,KAAK,CAAC,CAAC,EAC/C,QAAQ,EACR,EAAE,EACF,EAAE,CACH,CAAC;QACJ,CAAC;KAAA;IAEY,OAAO,CAClB,gBAAwB,EACxB,GAAW;;YAEX,MAAM,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAE3C,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAE7D,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,SAAS,CACvC,eAAe,EACf,SAAS,EACT,cAAc,CACf,CAAC;YAEF,MAAM,SAAS,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CACxC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CACvC,CAAC;YAEF,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC;YAEjE,4DAA4D;YAC5D,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;QACpE,CAAC;KAAA;IAEY,OAAO,CAClB,UAAsB,EACtB,KAAiB;;YAEjB,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAA,EAAE;gBACvB,OAAO,IAAI,UAAU,EAAE,CAAC;aACzB;YAED,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAE7D,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,SAAS,CACvC,eAAe,EACf,SAAS,EACT,cAAc,CACf,CAAC;YAEF,OAAO,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC;KAAA;IAED,SAAS;QACP,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;CACF;AApHD,kCAoHC"}
1
+ {"version":3,"file":"enigma-utils.js","sourceRoot":"","sources":["../../src/secret-wasm/enigma-utils.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,8 @@ const getHandler = (service, permissionInteractionService) => {
23
23
  return handleRequestDecryptMsg(service, permissionInteractionService)(env, msg);
24
24
  case messages_1.GetTxEncryptionKeyMsg:
25
25
  return handleGetTxEncryptionKeyMsg(service, permissionInteractionService)(env, msg);
26
+ case messages_1.IsNewApiMsg:
27
+ return handleIsNewApiMsg(service, permissionInteractionService)(env, msg);
26
28
  default:
27
29
  throw new router_1.KeplrError("secret-wasm", 120, "Unknown msg type");
28
30
  }
@@ -35,6 +37,12 @@ const handleGetPubkeyMsg = (service, permissionInteractionService) => {
35
37
  return yield service.getPubkey(msg.chainId);
36
38
  });
37
39
  };
40
+ const handleIsNewApiMsg = (service, permissionInteractionService) => {
41
+ return (env, msg) => __awaiter(void 0, void 0, void 0, function* () {
42
+ yield permissionInteractionService.ensureEnabled(env, [msg.chainId], msg.origin);
43
+ return yield service.isNewApi(msg.chainId);
44
+ });
45
+ };
38
46
  const handleReqeustEncryptMsg = (service, permissionInteractionService) => {
39
47
  return (env, msg) => __awaiter(void 0, void 0, void 0, function* () {
40
48
  yield permissionInteractionService.ensureEnabled(env, [msg.chainId], msg.origin);
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/secret-wasm/handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAM8B;AAC9B,yCAKoB;AAIb,MAAM,UAAU,GAGR,CAAC,OAAO,EAAE,4BAA4B,EAAE,EAAE;IACvD,OAAO,CAAC,GAAQ,EAAE,GAAqB,EAAE,EAAE;QACzC,QAAQ,GAAG,CAAC,WAAW,EAAE;YACvB,KAAK,uBAAY;gBACf,OAAO,kBAAkB,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAC9D,GAAG,EACH,GAAmB,CACpB,CAAC;YACJ,KAAK,4BAAiB;gBACpB,OAAO,uBAAuB,CAAC,OAAO,EAAE,4BAA4B,CAAC,CACnE,GAAG,EACH,GAAwB,CACzB,CAAC;YACJ,KAAK,4BAAiB;gBACpB,OAAO,uBAAuB,CAAC,OAAO,EAAE,4BAA4B,CAAC,CACnE,GAAG,EACH,GAAwB,CACzB,CAAC;YACJ,KAAK,gCAAqB;gBACxB,OAAO,2BAA2B,CAChC,OAAO,EACP,4BAA4B,CAC7B,CAAC,GAAG,EAAE,GAA4B,CAAC,CAAC;YACvC;gBACE,MAAM,IAAI,mBAAU,CAAC,aAAa,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAC;SAChE;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AA9BW,QAAA,UAAU,cA8BrB;AAEF,MAAM,kBAAkB,GAGa,CACnC,OAAO,EACP,4BAA4B,EAC5B,EAAE;IACF,OAAO,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;QACxB,MAAM,4BAA4B,CAAC,aAAa,CAC9C,GAAG,EACH,CAAC,GAAG,CAAC,OAAO,CAAC,EACb,GAAG,CAAC,MAAM,CACX,CAAC;QAEF,OAAO,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAGa,CACxC,OAAO,EACP,4BAA4B,EAC5B,EAAE;IACF,OAAO,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;QACxB,MAAM,4BAA4B,CAAC,aAAa,CAC9C,GAAG,EACH,CAAC,GAAG,CAAC,OAAO,CAAC,EACb,GAAG,CAAC,MAAM,CACX,CAAC;QAEF,kEAAkE;QAClE,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,gBAAgB,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3E,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAGa,CACxC,OAAO,EACP,4BAA4B,EAC5B,EAAE;IACF,OAAO,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;QACxB,MAAM,4BAA4B,CAAC,aAAa,CAC9C,GAAG,EACH,CAAC,GAAG,CAAC,OAAO,CAAC,EACb,GAAG,CAAC,MAAM,CACX,CAAC;QAEF,2EAA2E;QAC3E,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAGa,CAC5C,OAAO,EACP,4BAA4B,EAC5B,EAAE;IACF,OAAO,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;QACxB,MAAM,4BAA4B,CAAC,aAAa,CAC9C,GAAG,EACH,CAAC,GAAG,CAAC,OAAO,CAAC,EACb,GAAG,CAAC,MAAM,CACX,CAAC;QAEF,6FAA6F;QAC7F,OAAO,MAAM,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/secret-wasm/handler.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ function init(router, service, permissionInteractionService) {
9
9
  router.registerMessage(messages_1.ReqeustEncryptMsg);
10
10
  router.registerMessage(messages_1.RequestDecryptMsg);
11
11
  router.registerMessage(messages_1.GetTxEncryptionKeyMsg);
12
+ router.registerMessage(messages_1.IsNewApiMsg);
12
13
  router.addHandler(constants_1.ROUTE, (0, handler_1.getHandler)(service, permissionInteractionService));
13
14
  }
14
15
  exports.init = init;
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/secret-wasm/init.ts"],"names":[],"mappings":";;;AACA,yCAKoB;AAEpB,2CAAoC;AACpC,uCAAuC;AAGvC,SAAgB,IAAI,CAClB,MAAc,EACd,OAA0B,EAC1B,4BAA0D;IAE1D,MAAM,CAAC,eAAe,CAAC,uBAAY,CAAC,CAAC;IACrC,MAAM,CAAC,eAAe,CAAC,4BAAiB,CAAC,CAAC;IAC1C,MAAM,CAAC,eAAe,CAAC,4BAAiB,CAAC,CAAC;IAC1C,MAAM,CAAC,eAAe,CAAC,gCAAqB,CAAC,CAAC;IAE9C,MAAM,CAAC,UAAU,CAAC,iBAAK,EAAE,IAAA,oBAAU,EAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC,CAAC;AAC9E,CAAC;AAXD,oBAWC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/secret-wasm/init.ts"],"names":[],"mappings":";;;AACA,yCAMoB;AAEpB,2CAAoC;AACpC,uCAAuC;AAGvC,SAAgB,IAAI,CAClB,MAAc,EACd,OAA0B,EAC1B,4BAA0D;IAE1D,MAAM,CAAC,eAAe,CAAC,uBAAY,CAAC,CAAC;IACrC,MAAM,CAAC,eAAe,CAAC,4BAAiB,CAAC,CAAC;IAC1C,MAAM,CAAC,eAAe,CAAC,4BAAiB,CAAC,CAAC;IAC1C,MAAM,CAAC,eAAe,CAAC,gCAAqB,CAAC,CAAC;IAC9C,MAAM,CAAC,eAAe,CAAC,sBAAW,CAAC,CAAC;IAEpC,MAAM,CAAC,UAAU,CAAC,iBAAK,EAAE,IAAA,oBAAU,EAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC,CAAC;AAC9E,CAAC;AAZD,oBAYC"}
@@ -40,3 +40,12 @@ export declare class GetTxEncryptionKeyMsg extends Message<Uint8Array> {
40
40
  route(): string;
41
41
  type(): string;
42
42
  }
43
+ export declare class IsNewApiMsg extends Message<boolean> {
44
+ readonly chainId: string;
45
+ static type(): string;
46
+ constructor(chainId: string);
47
+ validateBasic(): void;
48
+ approveExternal(): boolean;
49
+ route(): string;
50
+ type(): string;
51
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GetTxEncryptionKeyMsg = exports.RequestDecryptMsg = exports.ReqeustEncryptMsg = exports.GetPubkeyMsg = void 0;
3
+ exports.IsNewApiMsg = exports.GetTxEncryptionKeyMsg = exports.RequestDecryptMsg = exports.ReqeustEncryptMsg = exports.GetPubkeyMsg = void 0;
4
4
  const router_1 = require("@keplr-wallet/router");
5
5
  const constants_1 = require("./constants");
6
6
  class GetPubkeyMsg extends router_1.Message {
@@ -122,4 +122,28 @@ class GetTxEncryptionKeyMsg extends router_1.Message {
122
122
  }
123
123
  }
124
124
  exports.GetTxEncryptionKeyMsg = GetTxEncryptionKeyMsg;
125
+ class IsNewApiMsg extends router_1.Message {
126
+ static type() {
127
+ return "is-new-api-msg";
128
+ }
129
+ constructor(chainId) {
130
+ super();
131
+ this.chainId = chainId;
132
+ }
133
+ validateBasic() {
134
+ if (!this.chainId) {
135
+ throw new router_1.KeplrError("secret-wasm", 100, "chain id not set");
136
+ }
137
+ }
138
+ approveExternal() {
139
+ return true;
140
+ }
141
+ route() {
142
+ return constants_1.ROUTE;
143
+ }
144
+ type() {
145
+ return IsNewApiMsg.type();
146
+ }
147
+ }
148
+ exports.IsNewApiMsg = IsNewApiMsg;
125
149
  //# sourceMappingURL=messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/secret-wasm/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/secret-wasm/messages.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export declare class SecretWasmService {
14
14
  protected readonly onChainRemoved: () => void;
15
15
  getPubkey(chainId: string): Promise<Uint8Array>;
16
16
  getTxEncryptionKey(chainId: string, nonce: Uint8Array): Promise<Uint8Array>;
17
+ isNewApi(chainId: string): Promise<boolean>;
17
18
  encrypt(chainId: string, contractCodeHash: string, msg: object): Promise<Uint8Array>;
18
19
  decrypt(chainId: string, ciphertext: Uint8Array, nonce: Uint8Array): Promise<Uint8Array>;
19
20
  private getEnigmaUtils;
@@ -74,6 +74,18 @@ class SecretWasmService {
74
74
  return utils.getTxEncryptionKey(nonce);
75
75
  });
76
76
  }
77
+ isNewApi(chainId) {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ const chainInfo = yield this.chainsService.getChainInfoOrThrow(chainId);
80
+ // XXX: Keplr should generate the seed deterministically according to the account.
81
+ // Otherwise, it will lost the encryption/decryption key if Keplr is uninstalled or local storage is cleared.
82
+ // For now, use the signature of some string to generate the seed.
83
+ // It need to more research.
84
+ const seed = yield this.getSeed(chainInfo);
85
+ const utils = this.getEnigmaUtils(chainInfo, seed);
86
+ return utils.isNewApi;
87
+ });
88
+ }
77
89
  encrypt(chainId, contractCodeHash,
78
90
  // eslint-disable-next-line @typescript-eslint/ban-types
79
91
  msg) {
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/secret-wasm/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/secret-wasm/service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keplr-wallet/background",
3
- "version": "0.12.141",
3
+ "version": "0.12.142-rc.0",
4
4
  "main": "build/index.js",
5
5
  "author": "chainapsis",
6
6
  "license": "Apache-2.0",
@@ -29,17 +29,17 @@
29
29
  "@ethersproject/hash": "^5.7.0",
30
30
  "@ethersproject/transactions": "^5.7.0",
31
31
  "@ethersproject/wallet": "^5.7.0",
32
- "@keplr-wallet/chain-validator": "0.12.141",
33
- "@keplr-wallet/common": "0.12.141",
34
- "@keplr-wallet/cosmos": "0.12.141",
35
- "@keplr-wallet/crypto": "0.12.141",
36
- "@keplr-wallet/ledger-cosmos": "0.12.141",
37
- "@keplr-wallet/popup": "0.12.141",
38
- "@keplr-wallet/proto-types": "0.12.141",
39
- "@keplr-wallet/router": "0.12.141",
40
- "@keplr-wallet/simple-fetch": "0.12.141",
41
- "@keplr-wallet/types": "0.12.141",
42
- "@keplr-wallet/unit": "0.12.141",
32
+ "@keplr-wallet/chain-validator": "0.12.142-rc.0",
33
+ "@keplr-wallet/common": "0.12.142-rc.0",
34
+ "@keplr-wallet/cosmos": "0.12.142-rc.0",
35
+ "@keplr-wallet/crypto": "0.12.142-rc.0",
36
+ "@keplr-wallet/ledger-cosmos": "0.12.142-rc.0",
37
+ "@keplr-wallet/popup": "0.12.142-rc.0",
38
+ "@keplr-wallet/proto-types": "0.12.142-rc.0",
39
+ "@keplr-wallet/router": "0.12.142-rc.0",
40
+ "@keplr-wallet/simple-fetch": "0.12.142-rc.0",
41
+ "@keplr-wallet/types": "0.12.142-rc.0",
42
+ "@keplr-wallet/unit": "0.12.142-rc.0",
43
43
  "@ledgerhq/hw-app-eth": "^6.29.3",
44
44
  "@ledgerhq/hw-transport": "^6.20.0",
45
45
  "@ledgerhq/hw-transport-webhid": "^6.20.0",
@@ -62,5 +62,5 @@
62
62
  "mobx-utils": "^6",
63
63
  "starknet": "^6"
64
64
  },
65
- "gitHead": "0ff90b9411ececfd95c8802152556706b24e76ae"
65
+ "gitHead": "2649b7c4533722a74939667687293a7050ae7e48"
66
66
  }
@@ -2,13 +2,18 @@ import { generateKeyPair, sharedKey as x25519 } from "curve25519-js";
2
2
  import { hkdf } from "@noble/hashes/hkdf";
3
3
  import { sha256 } from "@noble/hashes/sha256";
4
4
  import * as miscreant from "miscreant";
5
- import { simpleFetch } from "@keplr-wallet/simple-fetch";
5
+ import {
6
+ simpleFetch,
7
+ isSimpleFetchError,
8
+ SimpleFetchError,
9
+ } from "@keplr-wallet/simple-fetch";
6
10
  import { Buffer } from "buffer/";
7
11
  import { ChainIdHelper } from "@keplr-wallet/cosmos";
8
12
 
9
13
  const cryptoProvider = new miscreant.PolyfillCryptoProvider();
10
14
 
11
15
  export interface EncryptionUtils {
16
+ isNewApi: boolean;
12
17
  getPubkey: () => Promise<Uint8Array>;
13
18
  decrypt: (ciphertext: Uint8Array, nonce: Uint8Array) => Promise<Uint8Array>;
14
19
  encrypt: (contractCodeHash: string, msg: object) => Promise<Uint8Array>;
@@ -29,6 +34,7 @@ const secretConsensusIoPubKey = new Uint8Array(
29
34
  export class EnigmaUtils implements EncryptionUtils {
30
35
  private readonly privkey: Uint8Array;
31
36
  public readonly pubkey: Uint8Array;
37
+ public isNewApi: boolean;
32
38
  private consensusIoPubKey: Uint8Array = new Uint8Array(); // cache
33
39
 
34
40
  public constructor(
@@ -49,6 +55,7 @@ export class EnigmaUtils implements EncryptionUtils {
49
55
  if (ChainIdHelper.parse(chainId).identifier === "secret") {
50
56
  this.consensusIoPubKey = secretConsensusIoPubKey;
51
57
  }
58
+ this.isNewApi = false;
52
59
  }
53
60
 
54
61
  private static secureRandom(count: number): Uint8Array {
@@ -71,14 +78,36 @@ export class EnigmaUtils implements EncryptionUtils {
71
78
  return this.consensusIoPubKey;
72
79
  }
73
80
 
74
- const response = await simpleFetch<{ result: { TxKey: string } }>(
75
- this.url,
76
- "/reg/tx-key"
77
- );
78
-
79
- this.consensusIoPubKey = new Uint8Array(
80
- Buffer.from(response.data.result.TxKey, "base64")
81
- );
81
+ // try to fetch from the old API
82
+ try {
83
+ const response = await simpleFetch<{ result: { TxKey: string } }>(
84
+ this.url,
85
+ "/reg/tx-key"
86
+ );
87
+
88
+ this.consensusIoPubKey = new Uint8Array(
89
+ Buffer.from(response.data.result.TxKey, "base64")
90
+ );
91
+ } catch (e: any) {
92
+ if (
93
+ !isSimpleFetchError(e) ||
94
+ !(e as SimpleFetchError).response ||
95
+ (e as SimpleFetchError).response?.status != 501
96
+ ) {
97
+ throw e;
98
+ }
99
+
100
+ // if old API is not implemented, use the new one
101
+ const response = await simpleFetch<{ key: string }>(
102
+ this.url,
103
+ "/registration/v1beta1/tx-key"
104
+ );
105
+
106
+ this.consensusIoPubKey = new Uint8Array(
107
+ Buffer.from(response.data.key, "base64")
108
+ );
109
+ this.isNewApi = true;
110
+ }
82
111
 
83
112
  return this.consensusIoPubKey;
84
113
  }
@@ -10,6 +10,7 @@ import {
10
10
  GetTxEncryptionKeyMsg,
11
11
  ReqeustEncryptMsg,
12
12
  RequestDecryptMsg,
13
+ IsNewApiMsg,
13
14
  } from "./messages";
14
15
  import { SecretWasmService } from "./service";
15
16
  import { PermissionInteractiveService } from "../permission-interactive";
@@ -40,6 +41,11 @@ export const getHandler: (
40
41
  service,
41
42
  permissionInteractionService
42
43
  )(env, msg as GetTxEncryptionKeyMsg);
44
+ case IsNewApiMsg:
45
+ return handleIsNewApiMsg(service, permissionInteractionService)(
46
+ env,
47
+ msg as IsNewApiMsg
48
+ );
43
49
  default:
44
50
  throw new KeplrError("secret-wasm", 120, "Unknown msg type");
45
51
  }
@@ -64,6 +70,21 @@ const handleGetPubkeyMsg: (
64
70
  };
65
71
  };
66
72
 
73
+ const handleIsNewApiMsg: (
74
+ service: SecretWasmService,
75
+ permissionInteractionService: PermissionInteractiveService
76
+ ) => InternalHandler<IsNewApiMsg> = (service, permissionInteractionService) => {
77
+ return async (env, msg) => {
78
+ await permissionInteractionService.ensureEnabled(
79
+ env,
80
+ [msg.chainId],
81
+ msg.origin
82
+ );
83
+
84
+ return await service.isNewApi(msg.chainId);
85
+ };
86
+ };
87
+
67
88
  const handleReqeustEncryptMsg: (
68
89
  service: SecretWasmService,
69
90
  permissionInteractionService: PermissionInteractiveService
@@ -4,6 +4,7 @@ import {
4
4
  GetTxEncryptionKeyMsg,
5
5
  ReqeustEncryptMsg,
6
6
  RequestDecryptMsg,
7
+ IsNewApiMsg,
7
8
  } from "./messages";
8
9
  import { SecretWasmService } from "./service";
9
10
  import { ROUTE } from "./constants";
@@ -19,6 +20,7 @@ export function init(
19
20
  router.registerMessage(ReqeustEncryptMsg);
20
21
  router.registerMessage(RequestDecryptMsg);
21
22
  router.registerMessage(GetTxEncryptionKeyMsg);
23
+ router.registerMessage(IsNewApiMsg);
22
24
 
23
25
  router.addHandler(ROUTE, getHandler(service, permissionInteractionService));
24
26
  }
@@ -145,3 +145,31 @@ export class GetTxEncryptionKeyMsg extends Message<Uint8Array> {
145
145
  return GetTxEncryptionKeyMsg.type();
146
146
  }
147
147
  }
148
+
149
+ export class IsNewApiMsg extends Message<boolean> {
150
+ public static type() {
151
+ return "is-new-api-msg";
152
+ }
153
+
154
+ constructor(public readonly chainId: string) {
155
+ super();
156
+ }
157
+
158
+ validateBasic(): void {
159
+ if (!this.chainId) {
160
+ throw new KeplrError("secret-wasm", 100, "chain id not set");
161
+ }
162
+ }
163
+
164
+ override approveExternal(): boolean {
165
+ return true;
166
+ }
167
+
168
+ route(): string {
169
+ return ROUTE;
170
+ }
171
+
172
+ type(): string {
173
+ return IsNewApiMsg.type();
174
+ }
175
+ }
@@ -75,6 +75,19 @@ export class SecretWasmService {
75
75
  return utils.getTxEncryptionKey(nonce);
76
76
  }
77
77
 
78
+ async isNewApi(chainId: string): Promise<boolean> {
79
+ const chainInfo = await this.chainsService.getChainInfoOrThrow(chainId);
80
+
81
+ // XXX: Keplr should generate the seed deterministically according to the account.
82
+ // Otherwise, it will lost the encryption/decryption key if Keplr is uninstalled or local storage is cleared.
83
+ // For now, use the signature of some string to generate the seed.
84
+ // It need to more research.
85
+ const seed = await this.getSeed(chainInfo);
86
+
87
+ const utils = this.getEnigmaUtils(chainInfo, seed);
88
+ return utils.isNewApi;
89
+ }
90
+
78
91
  async encrypt(
79
92
  chainId: string,
80
93
  contractCodeHash: string,