@swapkit/wallet-keystore 4.3.17 → 4.3.18
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/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var{defineProperty:
|
|
1
|
+
var{defineProperty:h,getOwnPropertyNames:w,getOwnPropertyDescriptor:D}=Object,X=Object.prototype.hasOwnProperty;function P(e){return this[e]}var R=(e)=>{var n=(b??=new WeakMap).get(e),r;if(n)return n;if(n=h({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function"){for(var a of w(e))if(!X.call(n,a))h(n,a,{get:P.bind(e,a),enumerable:!(r=D(e,a))||r.enumerable})}return b.set(e,n),n},b;var F=(e)=>e;function I(e,n){this[e]=F.bind(null,n)}var K=(e,n)=>{for(var r in n)h(e,r,{get:n[r],enumerable:!0,configurable:!0,set:I.bind(n,r)})};var N={};K(N,{validatePhrase:()=>v,keystoreWallet:()=>y,generatePhrase:()=>W,encryptToKeyStore:()=>U,decryptFromKeystore:()=>H,createKeystoreWallet:()=>S,KEYSTORE_SUPPORTED_CHAINS:()=>E});module.exports=R(N);var t=require("@swapkit/helpers"),f=require("@swapkit/wallet-core");var d=require("node:crypto"),A=require("@scure/bip39"),C=require("@scure/bip39/wordlists/english.js");async function O(e){let{blake2b:n}=await import("@noble/hashes/blake2.js"),r=e instanceof Buffer?e:Buffer.from(e,"hex"),a=n(r,{dkLen:32});return Array.from(a).map((i)=>i<16?`0${i.toString(16)}`:i.toString(16)).join("")}async function U(e,n){let a=d.randomBytes(16),i=d.randomBytes(32),o={c:262144,dklen:32,prf:"hmac-sha256",salt:i.toString("hex")},s=d.pbkdf2Sync(n,i,o.c,o.dklen,"sha256"),c=d.createCipheriv("aes-128-ctr",s.subarray(0,16),a),u=Buffer.concat([c.update(Buffer.from(e,"utf8")),c.final()]),l=Buffer.concat([s.subarray(16,32),Buffer.from(u)]),g=await O(l);return{crypto:{cipher:"aes-128-ctr",cipherparams:{iv:a.toString("hex")},ciphertext:u.toString("hex"),kdf:"pbkdf2",kdfparams:o,mac:g},meta:"xchain-keystore",version:1}}function W(e=12){return A.generateMnemonic(C.wordlist,e===12?128:256)}function v(e){return A.validateMnemonic(e,C.wordlist)}async function H(e,n){let{SwapKitError:r}=await import("@swapkit/helpers");switch(e.version){case 1:{let a=e.crypto.kdfparams,i=Buffer.from(a.salt,"hex"),o=d.pbkdf2Sync(n,i,a.c,a.dklen,"sha256"),s=Buffer.from(e.crypto.ciphertext,"hex"),c=Buffer.concat([o.subarray(16,32),s]);if(await O(c)!==e.crypto.mac)throw new r("wallet_keystore_invalid_password");let l=d.createDecipheriv(e.crypto.cipher,o.subarray(0,16),Buffer.from(e.crypto.cipherparams.iv,"hex"));return Buffer.concat([l.update(s),l.final()]).toString("utf8")}default:throw new r("wallet_keystore_unsupported_version")}}function j(e){return typeof e==="object"&&e!==null&&"deriveAddressAtIndex"in e&&typeof e.deriveAddressAtIndex==="function"&&"getExtendedPublicKey"in e&&typeof e.getExtendedPublicKey==="function"&&"getBalance"in e&&typeof e.getBalance==="function"}async function B(e,n){let{createHDWalletHelpers:r,getUtxoApi:a}=await import("@swapkit/toolboxes/utxo");function i(u){let{count:l,startIndex:g=0,change:T=!1}=u;if(l<1||l>1000)throw RangeError(`count must be between 1 and 1000, got ${l}`);if(g<0)throw RangeError(`startIndex must be non-negative, got ${g}`);let p=[];for(let m=0;m<l;m++){let x=n.deriveAddressAtIndex({change:T,index:g+m});if(x)p.push(x)}return p}let{scanForAddresses:o,getAggregatedBalance:s,getAggregatedUtxos:c}=r({chain:e,deriveAddress:(u)=>n.deriveAddressAtIndex(u),getBalance:n.getBalance,getUtxos:(u)=>a(e).getUtxos({address:u,fetchTxHex:!0})});return{deriveAddresses:i,getAggregatedBalance:s,getAggregatedUtxos:c,scanForAddresses:o}}var y=f.createWallet({connect:({addChain:e})=>async function(r,a,i){let o=await S({chains:r,derivationPathMapOrIndex:i,phrase:a});for(let s of Object.values(o))e({...s,chain:s.chain,walletType:t.WalletOption.KEYSTORE});return!0},directSigningSupport:{...Object.fromEntries(t.EVMChains.map((e)=>[e,!0])),...Object.fromEntries(t.UTXOChains.map((e)=>[e,!0])),...Object.fromEntries(t.CosmosChains.filter((e)=>e!==t.Chain.Harbor).map((e)=>[e,!0])),[t.Chain.Aptos]:!0,[t.Chain.Cardano]:!0,[t.Chain.HyperCore]:!0,[t.Chain.Near]:!0,[t.Chain.Ripple]:!0,[t.Chain.Solana]:!0,[t.Chain.Stellar]:!0,[t.Chain.Sui]:!0,[t.Chain.Ton]:!0,[t.Chain.Tron]:!0},name:"connectKeystore",supportedChains:[...t.EVMChains,...t.UTXOChains,...t.CosmosChains.filter((e)=>e!==t.Chain.Harbor),t.Chain.Aptos,t.Chain.Cardano,t.Chain.Ripple,t.Chain.Solana,t.Chain.Stellar,t.Chain.Sui,t.Chain.Ton,t.Chain.Tron,t.Chain.Near,t.Chain.HyperCore],walletType:t.WalletOption.KEYSTORE}),E=f.getWalletSupportedChains(y);async function S({chains:e,phrase:n,derivationPathMapOrIndex:r}){let a=t.filterSupportedChains({chains:e,supportedChains:E,walletType:t.WalletOption.KEYSTORE});return(await Promise.all(a.map(async(o)=>{let{getToolbox:s}=await import("@swapkit/toolboxes"),c=typeof r==="number"?r:0,u=r&&typeof r==="object"?r[o]:void 0,l=t.NetworkDerivationPath[o].slice(0,o===t.Chain.Solana?4:5),g=u||t.updateDerivationPath(l,{index:c}),T=await s(o,{derivationPath:g,phrase:n}),p=await T.getAddress()||"",m=t.UTXOChains.includes(o)&&j(T)?await B(o,T):{};return{...T,...m,address:p,chain:o}}))).reduce((o,s)=>{return o[s.chain]=s,o},{})}
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var p=((e)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(a,r)=>(typeof require<"u"?require:a)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});import{Chain as t,CosmosChains as U,EVMChains as W,filterSupportedChains as P,NetworkDerivationPath as R,UTXOChains as f,updateDerivationPath as F,WalletOption as x}from"@swapkit/helpers";import{createWallet as I,getWalletSupportedChains as K}from"@swapkit/wallet-core";import{createCipheriv as v,createDecipheriv as H,pbkdf2Sync as C,randomBytes as h}from"node:crypto";import{generateMnemonic as y,validateMnemonic as E}from"@scure/bip39";import{wordlist as b}from"@scure/bip39/wordlists/english.js";async function O(e){let{blake2b:a}=await import("@noble/hashes/blake2.js"),r=e instanceof Buffer?e:Buffer.from(e,"hex"),s=a(r,{dkLen:32});return Array.from(s).map((i)=>i<16?`0${i.toString(16)}`:i.toString(16)).join("")}async function S(e,a){let s=h(16),i=h(32),n={c:262144,dklen:32,prf:"hmac-sha256",salt:i.toString("hex")},o=C(a,i,n.c,n.dklen,"sha256"),d=v("aes-128-ctr",o.subarray(0,16),s),u=Buffer.concat([d.update(Buffer.from(e,"utf8")),d.final()]),l=Buffer.concat([o.subarray(16,32),Buffer.from(u)]),c=await O(l);return{crypto:{cipher:"aes-128-ctr",cipherparams:{iv:s.toString("hex")},ciphertext:u.toString("hex"),kdf:"pbkdf2",kdfparams:n,mac:c},meta:"xchain-keystore",version:1}}function w(e=12){return y(b,e===12?128:256)}function D(e){return E(e,b)}async function X(e,a){let{SwapKitError:r}=await import("@swapkit/helpers");switch(e.version){case 1:{let s=e.crypto.kdfparams,i=Buffer.from(s.salt,"hex"),n=C(a,i,s.c,s.dklen,"sha256"),o=Buffer.from(e.crypto.ciphertext,"hex"),d=Buffer.concat([n.subarray(16,32),o]);if(await O(d)!==e.crypto.mac)throw new r("wallet_keystore_invalid_password");let l=H(e.crypto.cipher,n.subarray(0,16),Buffer.from(e.crypto.cipherparams.iv,"hex"));return Buffer.concat([l.update(o),l.final()]).toString("utf8")}default:throw new r("wallet_keystore_unsupported_version")}}function j(e){return typeof e==="object"&&e!==null&&"deriveAddressAtIndex"in e&&typeof e.deriveAddressAtIndex==="function"&&"getExtendedPublicKey"in e&&typeof e.getExtendedPublicKey==="function"&&"getBalance"in e&&typeof e.getBalance==="function"}async function B(e,a){let{createHDWalletHelpers:r,getUtxoApi:s}=await import("@swapkit/toolboxes/utxo");function i(u){let{count:l,startIndex:c=0,change:g=!1}=u;if(l<1||l>1000)throw RangeError(`count must be between 1 and 1000, got ${l}`);if(c<0)throw RangeError(`startIndex must be non-negative, got ${c}`);let m=[];for(let T=0;T<l;T++){let A=a.deriveAddressAtIndex({change:g,index:c+T});if(A)m.push(A)}return m}let{scanForAddresses:n,getAggregatedBalance:o,getAggregatedUtxos:d}=r({chain:e,deriveAddress:(u)=>a.deriveAddressAtIndex(u),getBalance:a.getBalance,getUtxos:(u)=>s(e).getUtxos({address:u,fetchTxHex:!0})});return{deriveAddresses:i,getAggregatedBalance:o,getAggregatedUtxos:d,scanForAddresses:n}}var N=I({connect:({addChain:e})=>async function(r,s,i){let n=await V({chains:r,derivationPathMapOrIndex:i,phrase:s});for(let o of Object.values(n))e({...o,chain:o.chain,walletType:x.KEYSTORE});return!0},directSigningSupport:{...Object.fromEntries(W.map((e)=>[e,!0])),...Object.fromEntries(f.map((e)=>[e,!0])),...Object.fromEntries(U.filter((e)=>e!==t.Harbor).map((e)=>[e,!0])),[t.Aptos]:!0,[t.Cardano]:!0,[t.HyperCore]:!0,[t.Near]:!0,[t.Ripple]:!0,[t.Solana]:!0,[t.Stellar]:!0,[t.Sui]:!0,[t.Ton]:!0,[t.Tron]:!0},name:"connectKeystore",supportedChains:[...W,...f,...U.filter((e)=>e!==t.Harbor),t.Aptos,t.Cardano,t.Ripple,t.Solana,t.Stellar,t.Sui,t.Ton,t.Tron,t.Near,t.HyperCore],walletType:x.KEYSTORE}),Y=K(N);async function V({chains:e,phrase:a,derivationPathMapOrIndex:r}){let s=P({chains:e,supportedChains:Y,walletType:x.KEYSTORE});return(await Promise.all(s.map(async(n)=>{let{getToolbox:o}=await import("@swapkit/toolboxes"),d=typeof r==="number"?r:0,u=r&&typeof r==="object"?r[n]:void 0,l=R[n].slice(0,n===t.Solana?4:5),c=u||F(l,{index:d}),g=await o(n,{derivationPath:c,phrase:a}),m=await g.getAddress()||"",T=f.includes(n)&&j(g)?await B(n,g):{};return{...g,...T,address:m,chain:n}}))).reduce((n,o)=>{return n[o.chain]=o,n},{})}export{D as validatePhrase,N as keystoreWallet,w as generatePhrase,S as encryptToKeyStore,X as decryptFromKeystore,V as createKeystoreWallet,Y as KEYSTORE_SUPPORTED_CHAINS};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { FullWallet } from "@swapkit/toolboxes";
|
|
|
3
3
|
export { decryptFromKeystore, encryptToKeyStore, generatePhrase, type Keystore, validatePhrase, } from "./helpers";
|
|
4
4
|
export declare const keystoreWallet: {
|
|
5
5
|
connectKeystore: {
|
|
6
|
-
connectWallet: (
|
|
6
|
+
connectWallet: ({ addChain }: {
|
|
7
7
|
addChain: import("@swapkit/helpers").AddChainType;
|
|
8
8
|
}) => (chains: Chain[], phrase: string, derivationPathMapOrIndex?: number | {
|
|
9
9
|
ADI?: [44, 118, 0, 0, 0] | [44, 931, 0, 0, 0] | [number, number, number, number, number] | [44, 637, 0, 0, 0] | [44, 60, 0, 0, 0] | [44, 397, 0, 0, 0] | [0, 0, 0, 0, 0] | [44, 144, 0, 0, 0] | [44, 501, 0, 0, 0] | [44, 607, 0, 0, 0] | [44, 195, 0, 0, 0] | [44, 148, 0, 0, 0] | [44, 784, 0, 0, 0] | [1852, 1815, 0, 0, 0] | [44, 9004, 0, 0, 0] | [number, number, number, number, (number | undefined)?] | [44, 145, 0, 0, 0] | [84, 2, 0, 0, 0] | [44, 3, 0, 0, 0] | [44, 5, 0, 0, 0] | [44, 133, 0, 0, 0] | undefined;
|
|
@@ -54,6 +54,7 @@ export declare const keystoreWallet: {
|
|
|
54
54
|
XLAYER?: [44, 118, 0, 0, 0] | [44, 931, 0, 0, 0] | [number, number, number, number, number] | [44, 637, 0, 0, 0] | [44, 60, 0, 0, 0] | [44, 397, 0, 0, 0] | [0, 0, 0, 0, 0] | [44, 144, 0, 0, 0] | [44, 501, 0, 0, 0] | [44, 607, 0, 0, 0] | [44, 195, 0, 0, 0] | [44, 148, 0, 0, 0] | [44, 784, 0, 0, 0] | [1852, 1815, 0, 0, 0] | [44, 9004, 0, 0, 0] | [number, number, number, number, (number | undefined)?] | [44, 145, 0, 0, 0] | [84, 2, 0, 0, 0] | [44, 3, 0, 0, 0] | [44, 5, 0, 0, 0] | [44, 133, 0, 0, 0] | undefined;
|
|
55
55
|
ZEC?: [44, 118, 0, 0, 0] | [44, 931, 0, 0, 0] | [number, number, number, number, number] | [44, 637, 0, 0, 0] | [44, 60, 0, 0, 0] | [44, 397, 0, 0, 0] | [0, 0, 0, 0, 0] | [44, 144, 0, 0, 0] | [44, 501, 0, 0, 0] | [44, 607, 0, 0, 0] | [44, 195, 0, 0, 0] | [44, 148, 0, 0, 0] | [44, 784, 0, 0, 0] | [1852, 1815, 0, 0, 0] | [44, 9004, 0, 0, 0] | [number, number, number, number, (number | undefined)?] | [44, 145, 0, 0, 0] | [84, 2, 0, 0, 0] | [44, 3, 0, 0, 0] | [44, 5, 0, 0, 0] | [44, 133, 0, 0, 0] | undefined;
|
|
56
56
|
} | undefined) => Promise<boolean>;
|
|
57
|
+
directSigningSupport: import("@swapkit/wallet-core").DirectSigningSupport;
|
|
57
58
|
supportedChains: (Chain.Adi | Chain.Aptos | Chain.Arbitrum | Chain.Aurora | Chain.Avalanche | Chain.Base | Chain.Berachain | Chain.BinanceSmartChain | Chain.Bitcoin | Chain.BitcoinCash | Chain.Botanix | Chain.Cardano | Chain.Core | Chain.Corn | Chain.Cosmos | Chain.Cronos | Chain.Dash | Chain.Dogecoin | Chain.Ethereum | Chain.Gnosis | Chain.Hyperevm | Chain.HyperCore | Chain.Kujira | Chain.Litecoin | Chain.Maya | Chain.Monad | Chain.Near | Chain.Noble | Chain.Optimism | Chain.Polygon | Chain.Ripple | Chain.Solana | Chain.Sonic | Chain.Stellar | Chain.Sui | Chain.THORChain | Chain.Ton | Chain.Tron | Chain.Unichain | Chain.XLayer | Chain.Zcash)[];
|
|
58
59
|
};
|
|
59
60
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAEL,KAAK,mBAAmB,EAQzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAkB,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,KAAK,QAAQ,EACb,cAAc,GACf,MAAM,WAAW,CAAC;AAkEnB,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAEL,KAAK,mBAAmB,EAQzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAkB,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,KAAK,QAAQ,EACb,cAAc,GACf,MAAM,WAAW,CAAC;AAkEnB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CzB,CAAC;AAEH,eAAO,MAAM,yBAAyB,6nBAA2C,CAAC;AAElF,wBAAsB,oBAAoB,CAAC,CAAC,SAAS,KAAK,EAAE,EAAE,EAC5D,MAAM,EACN,MAAM,EACN,wBAAwB,GACzB,EAAE;IACD,MAAM,EAAE,CAAC,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB,CAAC,EAAE;SAAG,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE,mBAAmB;KAAE,GAAG,MAAM,CAAC;CAChF,cA4CY,GAAG,oCAEf"}
|
package/package.json
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"dependencies": {
|
|
4
4
|
"@noble/hashes": "2.0.1",
|
|
5
5
|
"@scure/bip39": "2.0.1",
|
|
6
|
-
"@swapkit/helpers": "4.
|
|
7
|
-
"@swapkit/toolboxes": "4.14.
|
|
8
|
-
"@swapkit/wallet-core": "4.
|
|
6
|
+
"@swapkit/helpers": "4.13.0",
|
|
7
|
+
"@swapkit/toolboxes": "4.14.5",
|
|
8
|
+
"@swapkit/wallet-core": "4.2.0"
|
|
9
9
|
},
|
|
10
10
|
"description": "SwapKit - Wallet Keystore",
|
|
11
11
|
"exports": {
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"type-check:go": "tsgo"
|
|
30
30
|
},
|
|
31
31
|
"type": "module",
|
|
32
|
-
"version": "4.3.
|
|
32
|
+
"version": "4.3.18"
|
|
33
33
|
}
|