@trustwallet/wallet-core 4.1.6 → 4.1.8-rc1

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.
@@ -34,7 +34,7 @@ function Ra(){H++;g.monitorRunDependencies&&g.monitorRunDependencies(H);assert(!
34
34
  function Sa(){return K.startsWith("data:application/octet-stream;base64,")}function ma(a){return a.startsWith("file://")}function M(a){return function(){var b=g.asm;assert(Na,"native function `"+a+"` called before runtime initialization");b[a]||assert(b[a],"exported native function `"+a+"` not found");return b[a].apply(null,arguments)}}var K;K="wallet-core.wasm";if(!Sa()){var Ta=K;K=g.locateFile?g.locateFile(Ta,x):x+Ta}
35
35
  function Ua(){var a=K;try{if(a==K&&qa)return new Uint8Array(qa);if(ka)return ka(a);throw"both async and sync fetching of the wasm failed";}catch(b){n(b)}}
36
36
  function Va(){if(!qa&&(ea||fa)){if("function"==typeof fetch&&!ma(K))return fetch(K,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+K+"'";return a.arrayBuffer()}).catch(function(){return Ua()});if(ja)return new Promise(function(a,b){ja(K,function(c){a(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return Ua()})}
37
- var Wa,Xa,Ya={2064404:()=>{if(void 0===g.ea)try{var a="object"===typeof window?window:self,b="undefined"!==typeof a.crypto?a.crypto:a.msCrypto;a=function(){var d=new Uint32Array(1);b.getRandomValues(d);return d[0]>>>0};a();g.ea=a}catch(d){try{var c=require("crypto");a=function(){var e=c.randomBytes(4);return(e[0]<<24|e[1]<<16|e[2]<<8|e[3])>>>0};a();g.ea=a}catch(e){throw"No secure random number generator found";}}},2065126:()=>g.ea()};function Za(a){for(;0<a.length;)a.shift()(g)}
37
+ var Wa,Xa,Ya={2106900:()=>{if(void 0===g.ea)try{var a="object"===typeof window?window:self,b="undefined"!==typeof a.crypto?a.crypto:a.msCrypto;a=function(){var d=new Uint32Array(1);b.getRandomValues(d);return d[0]>>>0};a();g.ea=a}catch(d){try{var c=require("crypto");a=function(){var e=c.randomBytes(4);return(e[0]<<24|e[1]<<16|e[2]<<8|e[3])>>>0};a();g.ea=a}catch(e){throw"No secure random number generator found";}}},2107622:()=>g.ea()};function Za(a){for(;0<a.length;)a.shift()(g)}
38
38
  function va(a){assert("number"===typeof a);return"0x"+a.toString(16).padStart(8,"0")}function pa(a){$a||($a={});$a[a]||($a[a]=1,v&&(a="warning: "+a),y(a))}var $a;function ab(a){this.l=a-24;this.Na=function(b){G[this.l+4>>2]=b};this.Ia=function(b){G[this.l+8>>2]=b};this.Ja=function(){F[this.l>>2]=0};this.Ea=function(){D[this.l+12>>0]=0};this.Ka=function(){D[this.l+13>>0]=0};this.I=function(b,c){this.Da();this.Na(b);this.Ia(c);this.Ja();this.Ea();this.Ka()};this.Da=function(){G[this.l+16>>2]=0}}
39
39
  var bb=0,cb=(a,b)=>{for(var c=0,d=a.length-1;0<=d;d--){var e=a[d];"."===e?a.splice(d,1):".."===e?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift("..");return a},db=a=>{var b="/"===a.charAt(0),c="/"===a.substr(-1);(a=cb(a.split("/").filter(d=>!!d),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a},eb=a=>{var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return".";b&&(b=b.substr(0,b.length-1));return a+b},fb=
40
40
  a=>{if("/"===a)return"/";a=db(a);a=a.replace(/\/$/,"");var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)};
Binary file
@@ -13,6 +13,7 @@ export declare class Default implements Types.IKeyStore {
13
13
  importWallet(wallet: Types.Wallet): Promise<void>;
14
14
  import(mnemonic: string, name: string, password: string, coins: CoinType[], encryption: StoredKeyEncryption): Promise<Types.Wallet>;
15
15
  importKey(key: Uint8Array, name: string, password: string, coin: CoinType, encryption: StoredKeyEncryption): Promise<Types.Wallet>;
16
+ importTON(tonMnemonic: string, name: string, password: string, coin: CoinType, encryption: StoredKeyEncryption): Promise<Types.Wallet>;
16
17
  addAccounts(id: string, password: string, coins: CoinType[]): Promise<Types.Wallet>;
17
18
  getKey(id: string, password: string, account: Types.ActiveAccount): Promise<PrivateKey>;
18
19
  export(id: string, password: string): Promise<string | Uint8Array>;
@@ -75,6 +75,23 @@ var Default = /** @class */ (function () {
75
75
  .catch(function (error) { return reject(error); });
76
76
  });
77
77
  };
78
+ Default.prototype.importTON = function (tonMnemonic, name, password, coin, encryption) {
79
+ var _this = this;
80
+ return new Promise(function (resolve, reject) {
81
+ var _a = _this.core, StoredKey = _a.StoredKey, TONWallet = _a.TONWallet;
82
+ var passphrase = "";
83
+ if (!TONWallet.isValidMnemonic(tonMnemonic, passphrase)) {
84
+ throw Types.Error.InvalidMnemonic;
85
+ }
86
+ var pass = Buffer.from(password);
87
+ var storedKey = StoredKey.importTONWalletWithEncryption(tonMnemonic, name, pass, coin, encryption);
88
+ var wallet = _this.mapWallet(storedKey);
89
+ storedKey.delete();
90
+ _this.importWallet(wallet)
91
+ .then(function () { return resolve(wallet); })
92
+ .catch(function (error) { return reject(error); });
93
+ });
94
+ };
78
95
  Default.prototype.addAccounts = function (id, password, coins) {
79
96
  var _this = this;
80
97
  return this.load(id).then(function (wallet) {
@@ -93,11 +110,21 @@ var Default = /** @class */ (function () {
93
110
  var _this = this;
94
111
  return this.load(id).then(function (wallet) {
95
112
  var storedKey = _this.mapStoredKey(wallet);
96
- var hdWallet = storedKey.wallet(Buffer.from(password));
97
113
  var coin = _this.core.CoinType.values["" + account.coin];
98
- var privateKey = hdWallet.getKey(coin, account.derivationPath);
114
+ var privateKey;
115
+ switch (wallet.type) {
116
+ // In case of BIP39 mnemonic, we should use the custom derivation path.
117
+ case Types.WalletType.Mnemonic:
118
+ var hdWallet = storedKey.wallet(Buffer.from(password));
119
+ privateKey = hdWallet.getKey(coin, account.derivationPath);
120
+ hdWallet.delete();
121
+ break;
122
+ // Otherwise, use the default implementation.
123
+ default:
124
+ privateKey = storedKey.privateKey(coin, Buffer.from(password));
125
+ break;
126
+ }
99
127
  storedKey.delete();
100
- hdWallet.delete();
101
128
  return privateKey;
102
129
  });
103
130
  };
@@ -113,6 +140,9 @@ var Default = /** @class */ (function () {
113
140
  case Types.WalletType.PrivateKey:
114
141
  value = storedKey.decryptPrivateKey(Buffer.from(password));
115
142
  break;
143
+ case Types.WalletType.TonMnemonic:
144
+ value = storedKey.decryptTONMnemonic(Buffer.from(password));
145
+ break;
116
146
  default:
117
147
  throw Types.Error.InvalidJSON;
118
148
  }
@@ -3,7 +3,8 @@ export declare enum WalletType {
3
3
  Mnemonic = "mnemonic",
4
4
  PrivateKey = "privateKey",
5
5
  WatchOnly = "watchOnly",
6
- Hardware = "hardware"
6
+ Hardware = "hardware",
7
+ TonMnemonic = "ton-mnemonic"
7
8
  }
8
9
  export declare enum Error {
9
10
  WalletNotFound = "wallet not found",
@@ -34,6 +35,7 @@ export interface IKeyStore {
34
35
  import(mnemonic: string, name: string, password: string, coins: CoinType[], encryption: StoredKeyEncryption): Promise<Wallet>;
35
36
  importKey(key: Uint8Array, name: string, password: string, coin: CoinType, encryption: StoredKeyEncryption): Promise<Wallet>;
36
37
  importWallet(wallet: Wallet): Promise<void>;
38
+ importTON(tonMnemonic: string, name: string, password: string, coin: CoinType, encryption: StoredKeyEncryption): Promise<Wallet>;
37
39
  addAccounts(id: string, password: string, coins: CoinType[]): Promise<Wallet>;
38
40
  getKey(id: string, password: string, account: ActiveAccount): Promise<PrivateKey>;
39
41
  delete(id: string, password: string): Promise<void>;
@@ -10,6 +10,7 @@ var WalletType;
10
10
  WalletType["PrivateKey"] = "privateKey";
11
11
  WalletType["WatchOnly"] = "watchOnly";
12
12
  WalletType["Hardware"] = "hardware";
13
+ WalletType["TonMnemonic"] = "ton-mnemonic";
13
14
  })(WalletType = exports.WalletType || (exports.WalletType = {}));
14
15
  var Error;
15
16
  (function (Error) {
@@ -329,7 +329,7 @@ export class CoinType {
329
329
  static moonriver: CoinType;
330
330
  static moonbeam: CoinType;
331
331
  static kavaEvm: CoinType;
332
- static klaytn: CoinType;
332
+ static kaia: CoinType;
333
333
  static meter: CoinType;
334
334
  static okxchain: CoinType;
335
335
  static stratis: CoinType;
@@ -589,7 +589,7 @@ export class EthereumChainID {
589
589
  static ronin: EthereumChainID;
590
590
  static kavaevm: EthereumChainID;
591
591
  static iotexevm: EthereumChainID;
592
- static klaytn: EthereumChainID;
592
+ static kaia: EthereumChainID;
593
593
  static avalanchec: EthereumChainID;
594
594
  static evmos: EthereumChainID;
595
595
  static arbitrumnova: EthereumChainID;
@@ -886,6 +886,7 @@ export class SolanaAddress {
886
886
  static createWithString(string: string): SolanaAddress;
887
887
  description(): string;
888
888
  defaultTokenAddress(tokenMintAddress: string): string;
889
+ token2022Address(tokenMintAddress: string): string;
889
890
  delete(): void;
890
891
  }
891
892
  export class SolanaTransaction {
@@ -927,6 +928,8 @@ export class StoredKey {
927
928
  static importPrivateKeyWithEncryption(privateKey: Uint8Array | Buffer, name: string, password: Uint8Array | Buffer, coin: CoinType, encryption: StoredKeyEncryption): StoredKey;
928
929
  static importHDWallet(mnemonic: string, name: string, password: Uint8Array | Buffer, coin: CoinType): StoredKey;
929
930
  static importHDWalletWithEncryption(mnemonic: string, name: string, password: Uint8Array | Buffer, coin: CoinType, encryption: StoredKeyEncryption): StoredKey;
931
+ static importTONWallet(tonMnemonic: string, name: string, password: Uint8Array | Buffer, coin: CoinType): StoredKey;
932
+ static importTONWalletWithEncryption(tonMnemonic: string, name: string, password: Uint8Array | Buffer, coin: CoinType, encryption: StoredKeyEncryption): StoredKey;
930
933
  static importJSON(json: Uint8Array | Buffer): StoredKey;
931
934
  static createLevel(name: string, password: Uint8Array | Buffer, encryptionLevel: StoredKeyEncryptionLevel): StoredKey;
932
935
  static createLevelAndEncryption(name: string, password: Uint8Array | Buffer, encryptionLevel: StoredKeyEncryptionLevel, encryption: StoredKeyEncryption): StoredKey;
@@ -935,6 +938,7 @@ export class StoredKey {
935
938
  identifier(): string;
936
939
  name(): string;
937
940
  isMnemonic(): boolean;
941
+ isTONMnemonic(): boolean;
938
942
  accountCount(): number;
939
943
  encryptionParameters(): string;
940
944
  account(index: number): Account;
@@ -948,6 +952,7 @@ export class StoredKey {
948
952
  store(path: string): boolean;
949
953
  decryptPrivateKey(password: Uint8Array | Buffer): Uint8Array;
950
954
  decryptMnemonic(password: Uint8Array | Buffer): string;
955
+ decryptTONMnemonic(password: Uint8Array | Buffer): string;
951
956
  privateKey(coin: CoinType, password: Uint8Array | Buffer): PrivateKey;
952
957
  wallet(password: Uint8Array | Buffer): HDWallet;
953
958
  exportJSON(): Uint8Array;
@@ -981,7 +986,11 @@ export class TONMessageSigner {
981
986
  static signMessage(privateKey: PrivateKey, message: string): string;
982
987
  }
983
988
  export class TONWallet {
989
+ static isValidMnemonic(mnemonic: string, passphrase: string): boolean;
984
990
  static buildV4R2StateInit(publicKey: PublicKey, workchain: number, walletId: number): string;
991
+ static createWithMnemonic(mnemonic: string, passphrase: string): TONWallet;
992
+ getKey(): PrivateKey;
993
+ delete(): void;
985
994
  }
986
995
  export class TezosMessageSigner {
987
996
  static formatMessage(message: string, url: string): string;
@@ -997,6 +1006,9 @@ export class TransactionCompiler {
997
1006
  export class TransactionDecoder {
998
1007
  static decode(coinType: CoinType, encodedTx: Uint8Array | Buffer): Uint8Array;
999
1008
  }
1009
+ export class TransactionUtil {
1010
+ static calcTxHash(coinType: CoinType, encodedTx: string): string;
1011
+ }
1000
1012
  export class TronMessageSigner {
1001
1013
  static signMessage(privateKey: PrivateKey, message: string): string;
1002
1014
  static verifyMessage(pubKey: PublicKey, message: string, signature: string): boolean;
@@ -1086,6 +1098,7 @@ export interface WalletCore {
1086
1098
  TezosMessageSigner: typeof TezosMessageSigner;
1087
1099
  TransactionCompiler: typeof TransactionCompiler;
1088
1100
  TransactionDecoder: typeof TransactionDecoder;
1101
+ TransactionUtil: typeof TransactionUtil;
1089
1102
  TronMessageSigner: typeof TronMessageSigner;
1090
1103
  WalletConnectRequest: typeof WalletConnectRequest;
1091
1104
  WebAuthn: typeof WebAuthn;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trustwallet/wallet-core",
3
- "version": "4.1.6",
3
+ "version": "4.1.8-rc1",
4
4
  "description": "wallet core wasm and protobuf models",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",