@keplr-wallet/cosmos 0.9.6 → 0.9.7

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.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const index_1 = require("./index");
4
+ describe("Test account parse", () => {
5
+ test("Test fromAminoJSON", () => {
6
+ // Base account
7
+ let account = index_1.BaseAccount.fromAminoJSON({
8
+ height: "8409557",
9
+ result: {
10
+ type: "cosmos-sdk/BaseAccount",
11
+ value: {
12
+ address: "cosmos1vv6hruquzpty4xpks9znkw8gys5x4nsnqw9f4k",
13
+ public_key: {
14
+ type: "tendermint/PubKeySecp256k1",
15
+ value: "Avn3xBbmE0+MEyWMuxhmjjiX1GtCUVyv/Mavg8OcRIm4",
16
+ },
17
+ account_number: "9736",
18
+ sequence: "971",
19
+ },
20
+ },
21
+ });
22
+ expect(account.getAddress()).toBe("cosmos1vv6hruquzpty4xpks9znkw8gys5x4nsnqw9f4k");
23
+ expect(account.getSequence().toString()).toBe("971");
24
+ expect(account.getAccountNumber().toString()).toBe("9736");
25
+ expect(account.getType()).toBe("cosmos-sdk/BaseAccount");
26
+ // Vesting account
27
+ account = index_1.BaseAccount.fromAminoJSON({
28
+ height: "8409738",
29
+ result: {
30
+ type: "cosmos-sdk/DelayedVestingAccount",
31
+ value: {
32
+ base_vesting_account: {
33
+ base_account: {
34
+ address: "cosmos1x3rhderemr703f4lxktk2da99vl5crs28ur3xl",
35
+ public_key: {
36
+ type: "tendermint/PubKeySecp256k1",
37
+ value: "A+Zzm/8QhyL00ISXgiAgeW6zeqZHezVFi2w3iQkJeKyP",
38
+ },
39
+ account_number: "367245",
40
+ sequence: "7",
41
+ },
42
+ original_vesting: [{ denom: "uatom", amount: "16666660000" }],
43
+ delegated_free: [],
44
+ delegated_vesting: [],
45
+ end_time: "1719752607",
46
+ },
47
+ },
48
+ },
49
+ });
50
+ expect(account.getAddress()).toBe("cosmos1x3rhderemr703f4lxktk2da99vl5crs28ur3xl");
51
+ expect(account.getSequence().toString()).toBe("7");
52
+ expect(account.getAccountNumber().toString()).toBe("367245");
53
+ expect(account.getType()).toBe("cosmos-sdk/DelayedVestingAccount");
54
+ // Custom account that embeds the base account (ethermint)
55
+ account = index_1.BaseAccount.fromAminoJSON({
56
+ height: "449",
57
+ result: {
58
+ base_account: {
59
+ address: "evmos1w3ygakvq5snf30pca5g8pnyvvfr7x28djnj34m",
60
+ public_key: {
61
+ type: "tendermint/PubKeySecp256k1",
62
+ value: "AulWtcPTIZWd/CnkFkQOMqDOwU7e+U/Iq8Tli1nhBq6j",
63
+ },
64
+ account_number: "11",
65
+ sequence: "1",
66
+ },
67
+ code_hash: "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
68
+ },
69
+ });
70
+ expect(account.getAddress()).toBe("evmos1w3ygakvq5snf30pca5g8pnyvvfr7x28djnj34m");
71
+ expect(account.getSequence().toString()).toBe("1");
72
+ expect(account.getAccountNumber().toString()).toBe("11");
73
+ expect(account.getType()).toBe("");
74
+ });
75
+ });
76
+ //# sourceMappingURL=account.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.spec.js","sourceRoot":"","sources":["../../src/account/account.spec.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,12 @@ class BaseAccount {
36
36
  }
37
37
  const type = obj.type || "";
38
38
  let value = "value" in obj ? obj.value : obj;
39
+ // If the chain modifies the account type, handle the case where the account type embeds the base account.
40
+ // (Actually, the only existent case is ethermint, and this is the line for handling ethermint)
41
+ const baseAccount = value.BaseAccount || value.baseAccount || value.base_account;
42
+ if (baseAccount) {
43
+ value = baseAccount;
44
+ }
39
45
  // If the account is the vesting account that embeds the base vesting account,
40
46
  // the actual base account exists under the base vesting account.
41
47
  // But, this can be different according to the version of cosmos-sdk.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/account/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAyC;AAUzC,MAAa,WAAW;IAwEtB,YACqB,IAAY,EACZ,OAAe,EACf,aAAkB,EAClB,QAAa;QAHb,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAQ;QACf,kBAAa,GAAb,aAAa,CAAK;QAClB,aAAQ,GAAR,QAAQ,CAAK;IAC/B,CAAC;IA5EG,MAAM,CAAO,aAAa,CAC/B,QAAuB,EACvB,OAAe;IACf,4FAA4F;IAC5F,+GAA+G;IAC/G,uBAAgC,KAAK;;YAErC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;YAE9D,OAAO,WAAW,CAAC,aAAa,CAC9B,MAAM,CAAC,IAAI,EACX,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CACpC,CAAC;QACJ,CAAC;KAAA;IAEM,MAAM,CAAC,aAAa,CACzB,GAQgC;IAChC,4FAA4F;IAC5F,+GAA+G;IAC/G,uBAA+B,EAAE;QAEjC,IAAI,QAAQ,IAAI,GAAG,EAAE;YACnB,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;SAClB;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAE5B,IAAI,KAAK,GAAG,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QAE7C,8EAA8E;QAC9E,iEAAiE;QACjE,qEAAqE;QACrE,8CAA8C;QAC9C,MAAM,kBAAkB,GACtB,KAAK,CAAC,kBAAkB;YACxB,KAAK,CAAC,kBAAkB;YACxB,KAAK,CAAC,oBAAoB,CAAC;QAC7B,IAAI,kBAAkB,EAAE;YACtB,KAAK;gBACH,kBAAkB,CAAC,WAAW;oBAC9B,kBAAkB,CAAC,WAAW;oBAC9B,kBAAkB,CAAC,YAAY,CAAC;SACnC;QAED,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,CAAC,oBAAoB,EAAE;gBACzB,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aACzE;YACD,OAAO,GAAG,oBAAoB,CAAC;SAChC;QAED,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC;QAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAEhC,OAAO,IAAI,WAAW,CACpB,IAAI,EACJ,OAAO,EACP,IAAI,UAAG,CAAC,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,GAAG,CAAC,EAC7B,IAAI,UAAG,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,GAAG,CAAC,CACzB,CAAC;IACJ,CAAC;IASD,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AA9FD,kCA8FC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/account/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAyC;AAUzC,MAAa,WAAW;IAgFtB,YACqB,IAAY,EACZ,OAAe,EACf,aAAkB,EAClB,QAAa;QAHb,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAQ;QACf,kBAAa,GAAb,aAAa,CAAK;QAClB,aAAQ,GAAR,QAAQ,CAAK;IAC/B,CAAC;IApFG,MAAM,CAAO,aAAa,CAC/B,QAAuB,EACvB,OAAe;IACf,4FAA4F;IAC5F,+GAA+G;IAC/G,uBAAgC,KAAK;;YAErC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;YAE9D,OAAO,WAAW,CAAC,aAAa,CAC9B,MAAM,CAAC,IAAI,EACX,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CACpC,CAAC;QACJ,CAAC;KAAA;IAEM,MAAM,CAAC,aAAa,CACzB,GAQgC;IAChC,4FAA4F;IAC5F,+GAA+G;IAC/G,uBAA+B,EAAE;QAEjC,IAAI,QAAQ,IAAI,GAAG,EAAE;YACnB,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;SAClB;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAE5B,IAAI,KAAK,GAAG,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QAE7C,0GAA0G;QAC1G,+FAA+F;QAC/F,MAAM,WAAW,GACf,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,YAAY,CAAC;QAC/D,IAAI,WAAW,EAAE;YACf,KAAK,GAAG,WAAW,CAAC;SACrB;QAED,8EAA8E;QAC9E,iEAAiE;QACjE,qEAAqE;QACrE,8CAA8C;QAC9C,MAAM,kBAAkB,GACtB,KAAK,CAAC,kBAAkB;YACxB,KAAK,CAAC,kBAAkB;YACxB,KAAK,CAAC,oBAAoB,CAAC;QAC7B,IAAI,kBAAkB,EAAE;YACtB,KAAK;gBACH,kBAAkB,CAAC,WAAW;oBAC9B,kBAAkB,CAAC,WAAW;oBAC9B,kBAAkB,CAAC,YAAY,CAAC;SACnC;QAED,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,CAAC,oBAAoB,EAAE;gBACzB,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aACzE;YACD,OAAO,GAAG,oBAAoB,CAAC;SAChC;QAED,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC;QAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAEhC,OAAO,IAAI,WAAW,CACpB,IAAI,EACJ,OAAO,EACP,IAAI,UAAG,CAAC,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,GAAG,CAAC,EAC7B,IAAI,UAAG,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,GAAG,CAAC,CACzB,CAAC;IACJ,CAAC;IASD,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AAtGD,kCAsGC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keplr-wallet/cosmos",
3
- "version": "0.9.6",
3
+ "version": "0.9.7",
4
4
  "main": "build/index.js",
5
5
  "author": "chainapsis",
6
6
  "license": "Apache-2.0",
@@ -10,8 +10,9 @@
10
10
  },
11
11
  "scripts": {
12
12
  "clean": "rm -rf node_modules; rm -rf build",
13
- "build": "tsc; mkdir -p build/stargate/proto/generated && cp ./src/stargate/proto/generated/* ./build/stargate/proto/generated",
14
- "dev": "tsc -w",
13
+ "build": "yarn build:proto && tsc",
14
+ "build:proto": "mkdir -p build/stargate/proto/generated && cp ./src/stargate/proto/generated/* ./build/stargate/proto/generated",
15
+ "dev": "yarn build:proto && tsc -w",
15
16
  "test": "jest --passWithNoTests",
16
17
  "lint-test": "eslint \"src/**/*\" && prettier --check \"src/**/*\"",
17
18
  "lint-fix": "eslint --fix \"src/**/*\" && prettier --write \"src/**/*\""
@@ -26,5 +27,5 @@
26
27
  "long": "^4.0.0",
27
28
  "protobufjs": "^6.10.2"
28
29
  },
29
- "gitHead": "e78b5b9d3a30e42a28cace30ed4b97a14bc92803"
30
+ "gitHead": "5295e9b866f01459b7809b54b6cf9c146b115721"
30
31
  }
@@ -0,0 +1,88 @@
1
+ import { BaseAccount } from "./index";
2
+
3
+ describe("Test account parse", () => {
4
+ test("Test fromAminoJSON", () => {
5
+ // Base account
6
+ let account = BaseAccount.fromAminoJSON({
7
+ height: "8409557",
8
+ result: {
9
+ type: "cosmos-sdk/BaseAccount",
10
+ value: {
11
+ address: "cosmos1vv6hruquzpty4xpks9znkw8gys5x4nsnqw9f4k",
12
+ public_key: {
13
+ type: "tendermint/PubKeySecp256k1",
14
+ value: "Avn3xBbmE0+MEyWMuxhmjjiX1GtCUVyv/Mavg8OcRIm4",
15
+ },
16
+ account_number: "9736",
17
+ sequence: "971",
18
+ },
19
+ },
20
+ });
21
+
22
+ expect(account.getAddress()).toBe(
23
+ "cosmos1vv6hruquzpty4xpks9znkw8gys5x4nsnqw9f4k"
24
+ );
25
+ expect(account.getSequence().toString()).toBe("971");
26
+ expect(account.getAccountNumber().toString()).toBe("9736");
27
+ expect(account.getType()).toBe("cosmos-sdk/BaseAccount");
28
+
29
+ // Vesting account
30
+ account = BaseAccount.fromAminoJSON({
31
+ height: "8409738",
32
+ result: {
33
+ type: "cosmos-sdk/DelayedVestingAccount",
34
+ value: {
35
+ base_vesting_account: {
36
+ base_account: {
37
+ address: "cosmos1x3rhderemr703f4lxktk2da99vl5crs28ur3xl",
38
+ public_key: {
39
+ type: "tendermint/PubKeySecp256k1",
40
+ value: "A+Zzm/8QhyL00ISXgiAgeW6zeqZHezVFi2w3iQkJeKyP",
41
+ },
42
+ account_number: "367245",
43
+ sequence: "7",
44
+ },
45
+ original_vesting: [{ denom: "uatom", amount: "16666660000" }],
46
+ delegated_free: [],
47
+ delegated_vesting: [],
48
+ end_time: "1719752607",
49
+ },
50
+ },
51
+ },
52
+ });
53
+
54
+ expect(account.getAddress()).toBe(
55
+ "cosmos1x3rhderemr703f4lxktk2da99vl5crs28ur3xl"
56
+ );
57
+ expect(account.getSequence().toString()).toBe("7");
58
+ expect(account.getAccountNumber().toString()).toBe("367245");
59
+ expect(account.getType()).toBe("cosmos-sdk/DelayedVestingAccount");
60
+
61
+ // Custom account that embeds the base account (ethermint)
62
+ account = BaseAccount.fromAminoJSON({
63
+ height: "449",
64
+ result: {
65
+ base_account: {
66
+ address: "evmos1w3ygakvq5snf30pca5g8pnyvvfr7x28djnj34m",
67
+ public_key: {
68
+ type: "tendermint/PubKeySecp256k1",
69
+ value: "AulWtcPTIZWd/CnkFkQOMqDOwU7e+U/Iq8Tli1nhBq6j",
70
+ },
71
+ account_number: "11",
72
+ sequence: "1",
73
+ },
74
+ code_hash:
75
+ "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
76
+ },
77
+ // Above makes the type error.
78
+ // But, just test that it can be parsed with ignoring the type error.
79
+ } as any);
80
+
81
+ expect(account.getAddress()).toBe(
82
+ "evmos1w3ygakvq5snf30pca5g8pnyvvfr7x28djnj34m"
83
+ );
84
+ expect(account.getSequence().toString()).toBe("1");
85
+ expect(account.getAccountNumber().toString()).toBe("11");
86
+ expect(account.getType()).toBe("");
87
+ });
88
+ });
@@ -46,6 +46,14 @@ export class BaseAccount implements Account {
46
46
 
47
47
  let value = "value" in obj ? obj.value : obj;
48
48
 
49
+ // If the chain modifies the account type, handle the case where the account type embeds the base account.
50
+ // (Actually, the only existent case is ethermint, and this is the line for handling ethermint)
51
+ const baseAccount =
52
+ value.BaseAccount || value.baseAccount || value.base_account;
53
+ if (baseAccount) {
54
+ value = baseAccount;
55
+ }
56
+
49
57
  // If the account is the vesting account that embeds the base vesting account,
50
58
  // the actual base account exists under the base vesting account.
51
59
  // But, this can be different according to the version of cosmos-sdk.