@asichain/asi-wallet-sdk 0.1.3 → 0.1.5
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/README.md +0 -1
- package/dist/index.cjs +3 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +21 -2
- package/dist/index.esm.js +2 -1
- package/dist/index.esm.js.map +1 -1
- package/package.json +12 -10
- package/dist/config/index.d.ts +0 -15
- package/dist/domains/Asset/index.d.ts +0 -12
- package/dist/domains/BlockchainGateway/index.d.ts +0 -48
- package/dist/domains/BrowserStorage/index.d.ts +0 -21
- package/dist/domains/Client/index.d.ts +0 -16
- package/dist/domains/Deploy/factory/index.d.ts +0 -4
- package/dist/domains/Deploy/index.d.ts +0 -8
- package/dist/domains/EncryptedRecord/index.d.ts +0 -10
- package/dist/domains/Error/DeploymentErrorHandler.d.ts +0 -8
- package/dist/domains/Error/index.d.ts +0 -2
- package/dist/domains/Error/meta.d.ts +0 -21
- package/dist/domains/HttpClient/index.d.ts +0 -13
- package/dist/domains/Signer/index.d.ts +0 -12
- package/dist/domains/Vault/index.d.ts +0 -41
- package/dist/domains/Wallet/index.d.ts +0 -58
- package/dist/domains/index.d.ts +0 -15
- package/dist/index.cjs.js +0 -2
- package/dist/index.cjs.js.map +0 -1
- package/dist/services/AssetsService/index.d.ts +0 -7
- package/dist/services/BinaryWriter/index.d.ts +0 -8
- package/dist/services/Crypto/index.d.ts +0 -29
- package/dist/services/Fee/index.d.ts +0 -5
- package/dist/services/KeyDerivation/index.d.ts +0 -15
- package/dist/services/KeysManager/index.d.ts +0 -14
- package/dist/services/Mnemonic/index.d.ts +0 -11
- package/dist/services/Resubmit/DeployResubmitter.d.ts +0 -22
- package/dist/services/Resubmit/NodeManager.d.ts +0 -22
- package/dist/services/Resubmit/index.d.ts +0 -3
- package/dist/services/Resubmit/types.d.ts +0 -32
- package/dist/services/Signer/index.d.ts +0 -5
- package/dist/services/Transfer/index.d.ts +0 -11
- package/dist/services/Wallets/index.d.ts +0 -16
- package/dist/services/index.d.ts +0 -19
- package/dist/utils/codec/index.d.ts +0 -6
- package/dist/utils/constants/index.d.ts +0 -24
- package/dist/utils/decorators/index.d.ts +0 -5
- package/dist/utils/functions/index.d.ts +0 -5
- package/dist/utils/index.d.ts +0 -5
- package/dist/utils/polyfills/index.d.ts +0 -1
- package/dist/utils/validators/index.d.ts +0 -21
package/README.md
CHANGED
|
@@ -311,7 +311,6 @@ Playground available at `http://localhost:5173`. See [docs/PLAYGROUND.md](docs/P
|
|
|
311
311
|
| [@noble/hashes](https://github.com/paulmillr/noble-hashes) | 1.6.0 | Cryptographic hash helpers |
|
|
312
312
|
| [@noble/secp256k1](https://github.com/paulmillr/noble-secp256k1) | 1.7.0 | secp256k1 key generation and signing |
|
|
313
313
|
| [js-sha3](https://github.com/nicknisi/js-sha3) | 0.9.3 | keccak256 hashing |
|
|
314
|
-
| [tiny-secp256k1](https://github.com/nicknisi/tiny-secp256k1) | 2.2.4 | secp256k1 for BIP-32 derivation |
|
|
315
314
|
|
|
316
315
|
**Playground** ([playground/package.json](playground/package.json)):
|
|
317
316
|
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";var e=require("bs58"),t=require("bip39"),r=require("buffer"),s=require("@noble/secp256k1"),n=require("bip32"),o=require("blakejs"),a=require("js-sha3"),i=require("axios");function l(e){var t=Object.create(null);return e&&Object.keys(e).forEach(function(r){if("default"!==r){var s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return e[r]}})}}),t.default=e,Object.freeze(t)}var c=l(t);const d={coinId:"000000",version:"00"},u={BASE_FEE:.0025,VARIATION_RANGE:.1,LABEL:"ASI",TRANSFER:"0.0025",DEPLOY:"0.0025"},h=BigInt(10)**BigInt(8),p={coinType:60,account:0,change:0,index:0};var y;class g{}y=g,g.generateRandomGasFee=()=>{const e=2*(Math.random()-.5)*u.VARIATION_RANGE;return(u.BASE_FEE*(1+e)).toFixed(4)},g.getGasFeeAsNumber=()=>u.BASE_FEE,g.formatGasFee=e=>`${e||y.generateRandomGasFee()} ${u.LABEL}`;const f=t=>{const r=m(t);return e.encode(r)},E=t=>e.decode(t),m=e=>{const t=new Uint8Array(e.length/2);for(let r=0;r<e.length;r+=2)t[r/2]=parseInt(e.substr(r,2),16);return t},w=e=>Array.from(e,e=>e.toString(16).padStart(2,"0")).join(""),I=e=>{const t=new Uint8Array(e);let r="";for(let e=0;e<t.byteLength;e++)r+=String.fromCharCode(t[e]);return btoa(r)},A=e=>{const t=atob(e),r=new Uint8Array(t.length);for(let e=0;e<t.length;e++)r[e]=t.charCodeAt(e);return r.buffer},N=e=>BigInt("0x"+Buffer.from(e).toString("hex")),v=e=>Uint8Array.from(Buffer.from(e.toString(16).padStart(64,"0"),"hex"));var b;!function(e){e.ENCRYPT="encrypt",e.DECRYPT="decrypt",e.DERIVATION="deriveKey"}(b||(b={}));const S=2,D=12,R=16,x=256,L="AES-GCM",_="SHA-256",O="raw",C="PBKDF2",T=1e5;b.ENCRYPT,b.DECRYPT;class P{static async encryptWithPassword(e,t){const r=crypto.getRandomValues(new Uint8Array(R)),s=crypto.getRandomValues(new Uint8Array(D)),n=await this.deriveKey(t,r),o=await crypto.subtle.encrypt({name:L,iv:s},n,(new TextEncoder).encode(e));return{data:I(o),salt:I(r.buffer),iv:I(s.buffer),version:S}}static async decryptWithPassword(e,t){if(e.version!==S)throw new Error(`Unsupported version ${e.version}`);const r=new Uint8Array(A(e.salt)),s=new Uint8Array(A(e.iv)),n=await this.deriveKey(t,r),o=await crypto.subtle.decrypt({name:L,iv:s},n,A(e.data));return(new TextDecoder).decode(o)}static async deriveKey(e,t){const r=await crypto.subtle.importKey(O,(new TextEncoder).encode(e),C,!1,[b.DERIVATION]);return crypto.subtle.deriveKey({name:C,salt:new Uint8Array(t),iterations:T,hash:_},r,{name:L,length:x},!1,[b.ENCRYPT,b.DECRYPT])}}const U=()=>{"undefined"==typeof window||window.Buffer||(window.Buffer=r.Buffer)};var k;U(),exports.MnemonicStrength=void 0,(k=exports.MnemonicStrength||(exports.MnemonicStrength={}))[k.TWELVE_WORDS=128]="TWELVE_WORDS",k[k.TWENTY_FOUR_WORDS=256]="TWENTY_FOUR_WORDS";class B{static generateMnemonic(e=exports.MnemonicStrength.TWELVE_WORDS){return c.generateMnemonic(e)}static generateMnemonicArray(e=exports.MnemonicStrength.TWELVE_WORDS){return this.mnemonicToWordArray(this.generateMnemonic(e))}static isMnemonicValid(e){return c.validateMnemonic(e)}static mnemonicToWordArray(e){return e.trim().split(" ")}static wordArrayToMnemonic(e){return e.join(" ")}}
|
|
2
|
+
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function V(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function K(e,...t){if(!((r=e)instanceof Uint8Array||ArrayBuffer.isView(r)&&"Uint8Array"===r.constructor.name))throw new Error("Uint8Array expected");var r;if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function M(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function F(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function W(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function H(e,t){return e<<32-t|e>>>t}function G(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("string expected");return new Uint8Array((new TextEncoder).encode(e))}(e)),K(e),e}class ${}function Y(e){const t=t=>e().update(G(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function j(e,t,r){return e&t^~e&r}function z(e,t,r){return e&t^e&r^t&r}class X extends ${constructor(e,t,r,s){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=s,this.buffer=new Uint8Array(e),this.view=W(this.buffer)}update(e){M(this),K(e=G(e));const{view:t,buffer:r,blockLen:s}=this,n=e.length;for(let o=0;o<n;){const a=Math.min(s-this.pos,n-o);if(a===s){const t=W(e);for(;s<=n-o;o+=s)this.process(t,o);continue}r.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===s&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){M(this),function(e,t){K(e);const r=t.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}(e,this),this.finished=!0;const{buffer:t,view:r,blockLen:s,isLE:n}=this;let{pos:o}=this;t[o++]=128,F(this.buffer.subarray(o)),this.padOffset>s-o&&(this.process(r,0),o=0);for(let e=o;e<s;e++)t[e]=0;!function(e,t,r,s){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,r,s);const n=BigInt(32),o=BigInt(4294967295),a=Number(r>>n&o),i=Number(r&o),l=s?4:0,c=s?0:4;e.setUint32(t+l,a,s),e.setUint32(t+c,i,s)}(r,s-8,BigInt(8*this.length),n),this.process(r,0);const a=W(e),i=this.outputLen;if(i%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const l=i/4,c=this.get();if(l>c.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<l;e++)a.setUint32(4*e,c[e],n)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:r,length:s,finished:n,destroyed:o,pos:a}=this;return e.destroyed=o,e.finished=n,e.length=s,e.pos=a,s%t&&e.buffer.set(r),e}clone(){return this._cloneInto()}}const J=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),q=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Z=new Uint32Array(64);class Q extends X{constructor(e=32){super(64,e,8,!1),this.A=0|J[0],this.B=0|J[1],this.C=0|J[2],this.D=0|J[3],this.E=0|J[4],this.F=0|J[5],this.G=0|J[6],this.H=0|J[7]}get(){const{A:e,B:t,C:r,D:s,E:n,F:o,G:a,H:i}=this;return[e,t,r,s,n,o,a,i]}set(e,t,r,s,n,o,a,i){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|s,this.E=0|n,this.F=0|o,this.G=0|a,this.H=0|i}process(e,t){for(let r=0;r<16;r++,t+=4)Z[r]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=Z[e-15],r=Z[e-2],s=H(t,7)^H(t,18)^t>>>3,n=H(r,17)^H(r,19)^r>>>10;Z[e]=n+Z[e-7]+s+Z[e-16]|0}let{A:r,B:s,C:n,D:o,E:a,F:i,G:l,H:c}=this;for(let e=0;e<64;e++){const t=c+(H(a,6)^H(a,11)^H(a,25))+j(a,i,l)+q[e]+Z[e]|0,d=(H(r,2)^H(r,13)^H(r,22))+z(r,s,n)|0;c=l,l=i,i=a,a=o+t|0,o=n,n=s,s=r,r=t+d|0}r=r+this.A|0,s=s+this.B|0,n=n+this.C|0,o=o+this.D|0,a=a+this.E|0,i=i+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(r,s,n,o,a,i,l,c)}roundClean(){F(Z)}destroy(){this.set(0,0,0,0,0,0,0,0),F(this.buffer)}}const ee=Y(()=>new Q);class te extends ${constructor(e,t){super(),this.finished=!1,this.destroyed=!1,function(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.createHasher");V(e.outputLen),V(e.blockLen)}(e);const r=G(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,n=new Uint8Array(s);n.set(r.length>s?e.create().update(r).digest():r);for(let e=0;e<n.length;e++)n[e]^=54;this.iHash.update(n),this.oHash=e.create();for(let e=0;e<n.length;e++)n[e]^=106;this.oHash.update(n),F(n)}update(e){return M(this),this.iHash.update(e),this}digestInto(e){M(this),K(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:r,finished:s,destroyed:n,blockLen:o,outputLen:a}=this;return e.finished=s,e.destroyed=n,e.blockLen=o,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const re=(e,t,r)=>new te(e,t).update(r).digest();re.create=(e,t)=>new te(e,t),s.utils.hmacSha256Sync=(e,...t)=>re(ee,e,s.utils.concatBytes(...t));const se=s.CURVE.n,ne={isPoint(e){try{return s.Point.fromHex(e),!0}catch{return!1}},isPrivate(e){if(32!==e.length)return!1;const t=N(e);return t>0n&&t<se},pointFromScalar(e,t=!0){try{return s.getPublicKey(e,t)}catch{return null}},pointAddScalar(e,t,r=!0){try{const n=s.Point.fromHex(e),o=N(t),a=s.Point.BASE.multiply(o);return n.add(a).toRawBytes(r)}catch{return null}},privateAdd(e,t){const r=(N(e)+N(t))%se;return 0n===r?null:v(r)},privateNegate(e){const t=N(e);return v((se-t)%se)},sign:(e,t)=>s.signSync(e,t,{der:!1}),verify:(e,t,r)=>s.verify(r,e,t)};U();class oe{static buildBip44Path({coinType:e=60,account:t=0,change:r=0,index:s=0}){return`m/44'/${e}'/${t}'/${r}/${s}`}static derivePrivateKey(e,t){const r=e.derivePath(t);if(!r.privateKey)throw new Error("No private key at derived node");return new Uint8Array(r.privateKey)}static async mnemonicToSeed(e,r=""){return"string"==typeof e?await t.mnemonicToSeed(e,r):await t.mnemonicToSeed(B.wordArrayToMnemonic(e),r)}static seedToMasterNode(e){return n.BIP32Factory(ne).fromSeed(e)}static async deriveKeyFromMnemonic(e,t=p){const r=this.buildBip44Path(t),s=await oe.mnemonicToSeed(e),n=oe.seedToMasterNode(s);return oe.derivePrivateKey(n,r)}static async deriveNextKeyFromMnemonic(e,t,r=p){const s=t+1;return await this.deriveKeyFromMnemonic(e,{...r,index:s})}}const{randomBytes:ae,bytesToHex:ie}=s.utils;class le{static generateRandomKey(e=32){if(!e||e<0||!Number.isInteger(e))throw new Error("PrivateKeyLength must be a positive integer");return ae(e)}static generateKeyPair(e=32){if(!e||e<0||!Number.isInteger(e))throw new Error("PrivateKeyLength must be a positive integer");const t=ae(e);return{privateKey:t,publicKey:s.getPublicKey(t)}}static getKeyPairFromPrivateKey(e){return{privateKey:e,publicKey:s.getPublicKey(e)}}static getPublicKeyFromPrivateKey(e){return s.getPublicKey(e)}static convertKeyToHex(e){return ie(e)}static async deriveKeyFromMnemonic(e,t){return await oe.deriveKeyFromMnemonic(e,t)}static generateMpcKeyPair(){throw new Error("MPC key generation is not implemented yet.")}}const{blake2bHex:ce}=o,{keccak256:de}=a;class ue{static createWallet(e,t){let r;r=e?le.getKeyPairFromPrivateKey(e):le.generateKeyPair();return{address:this.deriveAddressFromPublicKey(r.publicKey),publicKey:r.publicKey,privateKey:r.privateKey}}static async createWalletFromMnemonic(e,t){const r=e?B.mnemonicToWordArray(e):B.generateMnemonicArray(),s=B.wordArrayToMnemonic(r);if(!s||!B.isMnemonicValid(s))throw new Error("WalletsService.createWalletFromMnemonic: Recovery mnemonic is missing or invalid");const n=await oe.mnemonicToSeed(r),o=oe.seedToMasterNode(n),a=oe.buildBip44Path({coinType:60,account:0,change:0,index:t||0}),i=oe.derivePrivateKey(o,a);return{...this.createWallet(i),mnemonic:s}}static deriveAddressFromPrivateKey(e){const t=le.getKeyPairFromPrivateKey(e);return this.deriveAddressFromPublicKey(t.publicKey)}static deriveAddressFromPublicKey(e){const t=de(e.slice(1)),r=m(t.slice(-40)),s=de(r),n=`${d.coinId}${d.version}${s}`,o=m(n),a=ce(o,void 0,32).slice(0,8);return f(`${n}${a}`)}}function he(e,t,r,s,n,o){function a(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var i,l=s.kind,c="getter"===l?"get":"setter"===l?"set":"value",d=!t&&e?s.static?e:e.prototype:null,u=t||(d?Object.getOwnPropertyDescriptor(d,s.name):{}),h=!1,p=r.length-1;p>=0;p--){var y={};for(var g in s)y[g]="access"===g?{}:s[g];for(var g in s.access)y.access[g]=s.access[g];y.addInitializer=function(e){if(h)throw new TypeError("Cannot add initializers after decoration has completed");o.push(a(e||null))};var f=(0,r[p])("accessor"===l?{get:u.get,set:u.set}:u[c],y);if("accessor"===l){if(void 0===f)continue;if(null===f||"object"!=typeof f)throw new TypeError("Object expected");(i=a(f.get))&&(u.get=i),(i=a(f.set))&&(u.set=i),(i=a(f.init))&&n.unshift(i)}else(i=a(f))&&("field"===l?n.unshift(i):u[c]=i)}d&&Object.defineProperty(d,s.name,u),h=!0}function pe(e,t,r){for(var s=arguments.length>2,n=0;n<t.length;n++)r=s?t[n].call(e,r):t[n].call(e);return s?r:void 0}var ye,ge;"function"==typeof SuppressedError&&SuppressedError,exports.RecoverableDeployErrors=void 0,(ye=exports.RecoverableDeployErrors||(exports.RecoverableDeployErrors={})).READ_ONLY_NODE="READ_ONLY_NODE",ye.CASPER_INSTANCE_UNAVAILABLE="CASPER_INSTANCE_UNAVAILABLE",ye.INVALID_DEPLOY_ID="INVALID_DEPLOY_ID",ye.INVALID_BLOCK_NUMBER="INVALID_BLOCK_NUMBER",exports.FatalDeployErrors=void 0,(ge=exports.FatalDeployErrors||(exports.FatalDeployErrors={})).INSUFFICIENT_BALANCE="INSUFFICIENT_BALANCE",ge.WRONG_NETWORK="WRONG_NETWORK",ge.PARSING_ERROR="PARSING_ERROR",ge.LOW_PHLO_PRICE="LOW_PHLO_PRICE",ge.SIGNATURE_ERROR="SIGNATURE_ERROR",ge.STORAGE_RETRIEVAL_ERROR="STORAGE_RETRIEVAL_ERROR",ge.UNKNOWN_ERROR="UNKNOWN_ERROR",ge.DEPLOY_SUBMIT_TIMEOUT="DEPLOY_SUBMIT_TIMEOUT",ge.BLOCK_INCLUSION_TIMEOUT="BLOCK_INCLUSION_TIMEOUT",ge.FINALIZATION_TIMEOUT="FINALIZATION_TIMEOUT";const fe={[exports.RecoverableDeployErrors.READ_ONLY_NODE]:"Node is read-only. Trying another node...",[exports.RecoverableDeployErrors.CASPER_INSTANCE_UNAVAILABLE]:"Casper instance not available. Trying another node...",[exports.RecoverableDeployErrors.INVALID_DEPLOY_ID]:"Invalid deploy ID. Please try again.",[exports.RecoverableDeployErrors.INVALID_BLOCK_NUMBER]:"Invalid block number. Please try again.",[exports.FatalDeployErrors.INSUFFICIENT_BALANCE]:"Insufficient balance. Please top up your account.",[exports.FatalDeployErrors.WRONG_NETWORK]:"Wrong network. Please contact technical support.",[exports.FatalDeployErrors.PARSING_ERROR]:"Parsing error. Please contact technical support.",[exports.FatalDeployErrors.LOW_PHLO_PRICE]:"Phlo price too low. Please rebuild the transaction with a higher phlo price.",[exports.FatalDeployErrors.SIGNATURE_ERROR]:"Signature verification failed. Please try again.",[exports.FatalDeployErrors.STORAGE_RETRIEVAL_ERROR]:"Storage retrieval error. Please try again later.",[exports.FatalDeployErrors.UNKNOWN_ERROR]:"An unknown error occurred. Please try again.",[exports.FatalDeployErrors.DEPLOY_SUBMIT_TIMEOUT]:"Deploy submission timed out. Please try again.",[exports.FatalDeployErrors.BLOCK_INCLUSION_TIMEOUT]:"Deploy was not included in a block within the expected time.",[exports.FatalDeployErrors.FINALIZATION_TIMEOUT]:"Block finalization polling timed out."};function Ee(e,t){return function(...t){return"string"==typeof t[0]&&(t[0]=t[0].toLowerCase()),e.apply(this,t)}}let me=(()=>{var e;let t,r,s=[];return e=class{parseDeploymentError(e){return e.includes("read only")?exports.RecoverableDeployErrors.READ_ONLY_NODE:e.includes("casper instance")?exports.RecoverableDeployErrors.CASPER_INSTANCE_UNAVAILABLE:e.includes("invalid deploy ID")?exports.RecoverableDeployErrors.INVALID_DEPLOY_ID:e.includes("invalid block number")?exports.RecoverableDeployErrors.INVALID_BLOCK_NUMBER:e.includes("insufficient balance")?exports.FatalDeployErrors.INSUFFICIENT_BALANCE:e.includes("wrong network")?exports.FatalDeployErrors.WRONG_NETWORK:e.includes("parsing error")?exports.FatalDeployErrors.PARSING_ERROR:e.includes("low")&&e.includes("phlo")?exports.FatalDeployErrors.LOW_PHLO_PRICE:e.includes("signature")||e.includes("sign")||e.includes("invalid signature")?exports.FatalDeployErrors.SIGNATURE_ERROR:e.includes("storage")||e.includes("retrieval")?exports.FatalDeployErrors.STORAGE_RETRIEVAL_ERROR:exports.FatalDeployErrors.UNKNOWN_ERROR}isDeploymentErrorRecoverable(e){return Object.values(exports.RecoverableDeployErrors).includes(e)}isDeploymentErrorFatal(e){return Object.values(exports.FatalDeployErrors).includes(e)}isPollingErrorRecoverable(e){return e.includes("casper instance")||e.includes("storage")||e.includes("parsing")}getErrorMessageByErrorType(e){return fe[e]??fe[exports.FatalDeployErrors.UNKNOWN_ERROR]}constructor(){pe(this,s)}},(()=>{const n="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;t=[Ee],r=[Ee],he(e,null,t,{kind:"method",name:"parseDeploymentError",static:!1,private:!1,access:{has:e=>"parseDeploymentError"in e,get:e=>e.parseDeploymentError},metadata:n},null,s),he(e,null,r,{kind:"method",name:"isPollingErrorRecoverable",static:!1,private:!1,access:{has:e=>"isPollingErrorRecoverable"in e,get:e=>e.isPollingErrorRecoverable},metadata:n},null,s),n&&Object.defineProperty(e,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:n})})(),e})();class we{constructor(e){this.client=e}async get(e){return(await this.client.get(e)).data}async post(e,t){return(await this.client.post(e,t)).data}getBaseUrl(){return this.client.defaults.baseURL}}var Ie,Ae;exports.DeployStatus=void 0,(Ie=exports.DeployStatus||(exports.DeployStatus={})).DEPLOYING="Deploying",Ie.INCLUDED_IN_BLOCK="IncludedInBlock",Ie.FINALIZED="Finalized",Ie.CHECK_ERROR="CheckingError";class Ne{constructor(e,t){this.validatorClient=e,this.indexerClient=t}static createHttpClient(e){const t=i.create({baseURL:e.baseUrl,...e.axiosConfig});return new we(t)}changeValidator(e){return this.validatorClient=Ne.createHttpClient(e),this}changeIndexer(e){return this.indexerClient=Ne.createHttpClient(e),this}static init(e){return Ne.instance=new Ne(this.createHttpClient(e.validator),this.createHttpClient(e.indexer)),Ne.instance}static isInitialized(){return void 0!==Ne?.instance}static getInstance(){if(!Ne.isInitialized())throw new Error("BlockchainGateway is not initialized. Call BlockchainGateway.init() first.");return Ne.instance}getValidatorClientUrl(){return this.validatorClient.getBaseUrl()??""}async submitDeploy(e){try{const t=await this.validatorClient.post("/api/deploy",e,{headers:{"Content-Type":"application/json"}});if(console.log("BlockchainGateway.submitDeploy: Deploy result:",t),"string"==typeof t){const e=/DeployId is:\s*([a-fA-F0-9]+)/.exec(t);return e?e[1]:t}return t.signature||t.deployId||t}catch(e){const t="BlockchainGateway.submitDeploy: "+this.getGatewayErrorMessage(e);throw new Error(t)}}async submitExploratoryDeploy(e){try{return await this.indexerClient.post("/api/explore-deploy",e)}catch(e){const t="BlockchainGateway.submitExploratoryDeploy: "+this.getGatewayErrorMessage(e);throw new Error(t)}}async exploreDeployData(e){try{return(await this.submitExploratoryDeploy(e)).expr}catch(e){const t="BlockchainGateway.exploreDeployData: "+this.getGatewayErrorMessage(e);throw console.error(t),new Error(t)}}async getDeploy(e){return await this.indexerClient.get(`/api/deploy/${e}`)}async isDeployFinalized(e){return e.faultTolerance>=.99}async getDeployStatus(e){try{let t;if(t=await this.getDeploy(e),!t?.blockHash)return{status:exports.DeployStatus.DEPLOYING};return{status:await this.isDeployFinalized(t)?exports.DeployStatus.FINALIZED:exports.DeployStatus.INCLUDED_IN_BLOCK}}catch(e){const t="BlockchainGateway.getDeployStatus: "+this.getGatewayErrorMessage(e);return{status:exports.DeployStatus.CHECK_ERROR,errorMessage:t}}}async getBlock(e){const t=await this.indexerClient.get(`/api/block/${e}`);return t?.blockInfo}async getLatestBlockNumber(){try{const e=await this.getLatestBlock();return e?.blockNumber??-1}catch(e){const t="BlockchainGateway.getLatestBlockNumber: "+this.getGatewayErrorMessage(e);return console.error(t),-1}}async isValidatorActive(){try{return await this.validatorClient.get("/status"),!0}catch(e){return console.error("BlockchainGateway.isValidatorActive: Node health check failed:",e),!1}}getGatewayErrorMessage(e){if(i.isAxiosError(e)){const t=e.response?.status??e.code,r=e.response?.statusText??"";return`Axios error while requesting "${e.config?.url??""}": [${t}] ${r} - ${e.message}`}return e instanceof Error?e.message:String(e)}validateBlocksResponse(e){if(!e?.length){throw new Error("BlockchainGateway.validateBlocksResponse: No blocks returned from /api/blocks endpoint")}}async getLatestBlock(){const e=await this.indexerClient.get("/api/blocks/1");return this.validateBlocksResponse(e),e[0]}}exports.WalletClientModes=void 0,(Ae=exports.WalletClientModes||(exports.WalletClientModes={})).LOCAL="local",Ae.MPC="mpc";const ve={mode:exports.WalletClientModes.LOCAL},be=5e5,Se={phloPrice:1,useRandomNode:!0,deployValiditySeconds:80,nodeSelectionAttempts:3,deployRetries:3,deployIntervalSeconds:5,pollingIntervalSeconds:3};function De(e,t){return function(...r){if(!Ne.isInitialized())throw new Error(`${t.kind} ${String(t.name)}: BlockchainGateway is not initialized. Call BlockchainGateway.init() first.`);return e.apply(this,r)}}let Re=(()=>{var e;let t,r,s=[];return e=class{constructor(e,t,r){if(this.retriesLeft=pe(this,s),this.inactiveNodesUrls=new Set,this.currentNodeUrl="",!e?.length)throw new Error("At least one node URL must be provided");this.availableNodesUrls=e,this.useRandomNode=r,this.retriesLeft=t}static initialize(t,r=Se.nodeSelectionAttempts,s=Se.useRandomNode){const n=s?Math.max(1,r):0,o=new e(t,n,s);return e.instance=o,o}async connectDefaultNode(){if(this.useRandomNode)throw new Error("NodeManager.connectDefaultNode: Random node selection is enabled, cannot connect to default node");await this.connectNode(this.availableNodesUrls[0])}async connectNode(e){Ne.getInstance().getValidatorClientUrl()!==e&&Ne.getInstance().changeValidator({baseUrl:e});if(!await Ne.getInstance().isValidatorActive()){this.deactivateNode(e);const t=`NodeManager.connectNode: Node ${e} is not active`;throw console.error(t),new Error(t)}this.currentNodeUrl=e}static getInstance(){if(!e.instance)throw new Error("NodeManager is not initialized. Call NodeManager.initialize() first.");return e.instance}isInitialized(){return!!this.currentNodeUrl}markNodeInactive(e){this.inactiveNodesUrls.add(e)}deactivateCurrentNode(){this.isInitialized()&&this.deactivateNode(this.currentNodeUrl)}deactivateNode(e){this.retriesLeft--,this.markNodeInactive(e),this.currentNodeUrl===e&&(this.currentNodeUrl="")}getAvailableNodesUrls(){return this.availableNodesUrls.filter(e=>!this.inactiveNodesUrls.has(e))}getRetriesLeft(){return this.retriesLeft}getRandomAvailableNodeUrl(){const e=this.getAvailableNodesUrls();if(!e?.length)throw console.error("NodeManager.getRandomAvailableNodeUrl: No available node URLs to select"),new Error("NodeManager: no available node URLs");return e[Math.floor(Math.random()*e.length)]}async connectActiveRandomNode(){if(!this.useRandomNode)throw new Error("NodeManager.connectActiveRandomNode: Random node selection is disabled, connect to default node");for(;this.retriesLeft>0;){const e=this.getRandomAvailableNodeUrl();if(console.log(`NodeManager.connectActiveRandomNode: Attempting to connect to node ${e}. Retries left: ${this.retriesLeft}`),e){try{await this.connectNode(e)}catch(e){continue}return}}throw new Error("NodeManager.connectActiveRandomNode: No active node URL found after all attempts")}},(()=>{const n="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;t=[De],r=[De],he(e,null,t,{kind:"method",name:"connectDefaultNode",static:!1,private:!1,access:{has:e=>"connectDefaultNode"in e,get:e=>e.connectDefaultNode},metadata:n},null,s),he(e,null,r,{kind:"method",name:"connectActiveRandomNode",static:!1,private:!1,access:{has:e=>"connectActiveRandomNode"in e,get:e=>e.connectActiveRandomNode},metadata:n},null,s),n&&Object.defineProperty(e,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:n})})(),e})();const xe=127;class Le{constructor(){this.buffer=[]}writeString(e,t){if(!t)return;const r=e<<3|2;this.writeInteger(r);const s=(new TextEncoder).encode(t);this.writeInteger(s.length),this.buffer.push(...Array.from(s))}writeInt64(e,t){if(!t)return;const r=e<<3;this.writeInteger(r),this.writeInteger64(t)}writeInteger(e){for(;e>xe;)this.buffer.push(e&xe|128),e>>>=7;this.buffer.push(e)}writeInteger64(e){for(;e>xe;)this.buffer.push(e&xe|128),e=Math.floor(e/128);this.buffer.push(e)}getResultBuffer(){return new Uint8Array(this.buffer)}}const{blake2bHex:_e}=o;class Oe{static async sign(e,t){const{wallet:r,data:s}=e;try{const e=await t();return await r.withSigningCapability(e,async e=>{const t=this.deployDataProtobufSerialize(s),r=_e(t,void 0,32),n=Uint8Array.from(Buffer.from(r,"hex")),o=await e.signDigest(n),a=e.getPublicKey();return{data:{term:s.term,timestamp:s.timestamp,phloPrice:s.phloPrice,phloLimit:s.phloLimit,validAfterBlockNumber:s.validAfterBlockNumber,shardId:s.shardId},deployer:w(a),signature:w(o),sigAlgorithm:"secp256k1"}})}catch(e){const t=`SignerService.sign: ${e.message}`;throw new Error(t)}}}Oe.deployDataProtobufSerialize=e=>{const{term:t,timestamp:r,phloPrice:s,phloLimit:n,validAfterBlockNumber:o,shardId:a=""}=e,i=new Le;return i.writeString(2,t),i.writeInt64(3,r),i.writeInt64(7,s),i.writeInt64(8,n),i.writeInt64(10,o),i.writeString(11,a),i.getResultBuffer()};const Ce=/[,\s]+/g,Te=/^\d+(?:\.\d+)?$/,Pe=/(\.\d*?[1-9])0+$/,Ue=/\.0+$/,ke=e=>{const t=e/h,r=e%h,s=h.toString().length-1,n=r.toString().padStart(s,"0");return`${t.toString()}.${n}`.replace(Pe,"$1").replace(Ue,"")},Be=ke,{blake2bHex:Ve}=o,Ke=/[<>:"/\\|?*]/,Me=/^[a-zA-Z0-9]+$/,Fe=/^[1-9A-HJ-NP-Za-km-z]+$/,We=`${d.coinId}${d.version}`;var He;exports.AddressValidationErrorCode=void 0,(He=exports.AddressValidationErrorCode||(exports.AddressValidationErrorCode={})).INVALID_PREFIX="INVALID_PREFIX",He.INVALID_LENGTH="INVALID_LENGTH",He.INVALID_ALPHABET="INVALID_ALPHABET",He.INVALID_BASE58="INVALID_BASE58",He.INVALID_HEX_LENGTH="INVALID_HEX_LENGTH",He.INVALID_CHAIN_PREFIX="INVALID_CHAIN_PREFIX",He.INVALID_CHECKSUM="INVALID_CHECKSUM",He.NON_CANONICAL="NON_CANONICAL";const Ge=e=>({isValid:!1,errorCode:e}),$e=e=>{if(!e.startsWith("1111"))return Ge(exports.AddressValidationErrorCode.INVALID_PREFIX);if(e.length<50||e.length>54)return Ge(exports.AddressValidationErrorCode.INVALID_LENGTH);if(!Me.test(e))return Ge(exports.AddressValidationErrorCode.INVALID_ALPHABET);if(!Fe.test(e))return Ge(exports.AddressValidationErrorCode.INVALID_BASE58);const t=w(E(e));if(80!==t.length)return Ge(exports.AddressValidationErrorCode.INVALID_HEX_LENGTH);if(f(t)!==e)return Ge(exports.AddressValidationErrorCode.NON_CANONICAL);const r=t.slice(0,72),s=t.slice(72);if(!r.startsWith(We))return Ge(exports.AddressValidationErrorCode.INVALID_CHAIN_PREFIX);const n=Ve(m(r),void 0,32).slice(0,8);return 8!==s.length||s!==n?Ge(exports.AddressValidationErrorCode.INVALID_CHECKSUM):{isValid:!0}};const Ye=e=>e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t");let je=(()=>{var e;let t,r,s=[];return e=class{getBlockchainGateway(){return Ne.getInstance()}async transfer(e,t,r,s,n,o=5e5){try{const a=$e(e);if(!a.isValid)throw new Error(`AssetsService.transfer: Invalid 'fromAddress': ${a.errorCode??"UNKNOWN"}`);const i=$e(t);if(!i.isValid)throw new Error(`AssetsService.transfer: Invalid 'toAddress': ${i.errorCode??"UNKNOWN"}`);if(e===t)throw new Error("AssetsService.transfer: Sender and recipient addresses cannot be the same");if(r<=0n)throw new Error("AssetsService.transfer: Transfer amount must be greater than zero");const l=this.getBlockchainGateway(),c=((e,t,r)=>{if(r<=0n)throw new Error("Transfer amount must be greater than zero");const s=Ye(e),n=Ye(t),o=r.toString();return`\n new \n deployerId(\`rho:rchain:deployerId\`),\n stdout(\`rho:io:stdout\`),\n rl(\`rho:registry:lookup\`),\n ASIVaultCh,\n vaultCh,\n toVaultCh,\n asiVaultkeyCh,\n resultCh\n in {\n rl!(\`rho:rchain:asiVault\`, *ASIVaultCh) |\n for (@(_, ASIVault) <- ASIVaultCh) {\n @ASIVault!("findOrCreate", "${s}", *vaultCh) |\n @ASIVault!("findOrCreate", "${n}", *toVaultCh) |\n @ASIVault!("deployerAuthKey", *deployerId, *asiVaultkeyCh) |\n for (@(true, vault) <- vaultCh; key <- asiVaultkeyCh; @(true, toVault) <- toVaultCh) {\n @vault!("transfer", "${n}", ${o}, *key, *resultCh) |\n for (@result <- resultCh) {\n match result {\n (true, Nil) => {\n stdout!(("Transfer successful:", ${o}, "ASI"))\n }\n (false, reason) => {\n stdout!(("Transfer failed:", reason))\n }\n }\n }\n } |\n for (@(false, errorMsg) <- vaultCh) {\n stdout!(("Sender vault error:", errorMsg))\n } |\n for (@(false, errorMsg) <- toVaultCh) {\n stdout!(("Destination vault error:", errorMsg))\n }\n }\n }\n `})(e,t,r),d=await l.getLatestBlockNumber();if(-1===d)throw new Error("AssetsService.transfer: Invalid block number");const u={term:c,phloLimit:o,phloPrice:1,validAfterBlockNumber:d-1,timestamp:Date.now(),shardId:"root"},h=await Oe.sign({wallet:s,data:u},n);return await l.submitDeploy(h)}catch(e){const t="AssetsService.transfer: "+e.message;throw new Error(t)}}async getASIBalance(e){const t=$e(e);if(!t.isValid)throw new Error(`AssetsService.getASIBalance: Invalid address: ${t.errorCode??"UNKNOWN"}`);const r=this.getBlockchainGateway(),s=(e=>`\n new return, rl(\`rho:registry:lookup\`), ASIVaultCh, vaultCh in {\n rl!(\`rho:rchain:asiVault\`, *ASIVaultCh) |\n for (@(_, ASIVault) <- ASIVaultCh) {\n @ASIVault!("findOrCreate", "${Ye(e)}", *vaultCh) |\n for (@maybeVault <- vaultCh) {\n match maybeVault {\n (true, vault) => @vault!("balance", *return)\n (false, err) => return!(err)\n }\n }\n }\n }\n`)(e);try{const e=await r.exploreDeployData(s);if(e&&e.length>0){const t=e[0];if(t?.ExprInt?.data)return BigInt(t.ExprInt.data);if(t?.ExprString?.data)throw new Error("Balance check error:")}return BigInt(0)}catch(e){return BigInt(0)}}constructor(){pe(this,s)}},(()=>{const n="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;t=[De],r=[De],he(e,null,t,{kind:"method",name:"transfer",static:!1,private:!1,access:{has:e=>"transfer"in e,get:e=>e.transfer},metadata:n},null,s),he(e,null,r,{kind:"method",name:"getASIBalance",static:!1,private:!1,access:{has:e=>"getASIBalance"in e,get:e=>e.getASIBalance},metadata:n},null,s),n&&Object.defineProperty(e,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:n})})(),e})();class ze{static async createAndEncrypt(e,t){const r=await P.encryptWithPassword(e,t);return new ze(r)}static createFromEncryptedData(e){return new ze(e)}static createFromStringifiedEncryptedData(e){return new ze(JSON.parse(e))}constructor(e){this.encryptedSeedData=e}async decrypt(e){return await P.decryptWithPassword(this.encryptedSeedData,e)}toString(){return JSON.stringify(this.encryptedSeedData)}}var Xe;exports.WalletMemoryKeys=void 0,(Xe=exports.WalletMemoryKeys||(exports.WalletMemoryKeys={})).PRIVATE_KEY="private_key",Xe.CRYPTO_SALT="crypto_salt",Xe.CRYPTO_IV="crypto_iv",Xe.CRYPTO_VERSION="crypto version";class Je{constructor(e,t,r,s,n){this.name=e,this.index=n,this.masterNodeId=s,this.address=t,this.privateKey=r,this.assets=new Map,this.isLocked=!0}static async fromPrivateKey(e,t,r,s=null,n=null){const o=ue.deriveAddressFromPrivateKey(t),a=await this.encryptPrivateKey(t,r);return new Je(e,o,a,s,n)}static fromEncryptedData(e,t,r,s,n){const o=$e(t);if(!o.isValid)throw new Error(`Invalid address format: ${o.errorCode??"UNKNOWN"}`);return new Je(e,t,r,s,n)}async decrypt(e){if(!Je.unsafeRawKeyExportEnabled)throw new Error("Wallet.decrypt is disabled by default for security. Use withSigningCapability() instead.");return await this.decryptPrivateKey(e)}static enableUnsafeRawKeyExportForLegacyInterop(){Je.unsafeRawKeyExportEnabled=!0}static disableUnsafeRawKeyExport(){Je.unsafeRawKeyExportEnabled=!1}static isUnsafeRawKeyExportEnabled(){return Je.unsafeRawKeyExportEnabled}async decryptPrivateKey(e){try{const t=await P.decryptWithPassword(this.privateKey,e),r=JSON.parse(t);if(r&&"object"==typeof r&&!Array.isArray(r)){const e=Object.keys(r).sort((e,t)=>Number(e)-Number(t)).map(e=>{const t=r[e],s="string"==typeof t?Number(t):t;return"number"!=typeof s||isNaN(s)?0:s});return new Uint8Array(e)}return new Uint8Array(r)}catch(e){throw new Error("Unlock Failed: "+e?.message)}}async withSigningCapability(e,t){const r=await this.decryptPrivateKey(e);let n=!1;const o={signDigest:async e=>{if(n)throw new Error("Signing capability has expired");return await s.sign(e,r)},getPublicKey:()=>{if(n)throw new Error("Signing capability has expired");return le.getPublicKeyFromPrivateKey(r)}};try{return await t(o)}finally{n=!0,r.fill(0)}}getEncryptedPrivateKey(){return this.privateKey}registerAsset(e){this.assets.set(e.getId(),e)}getAddress(){return this.address}getName(){return this.name}getIndex(){return this.index}getAssets(){return this.assets}isWalletLocked(){return this.isLocked}toString(){const e={name:this.name,address:this.address,encryptedPrivateKey:JSON.stringify(this.privateKey),masterNodeId:this.masterNodeId??"",index:this.index?.toString()??""};return JSON.stringify(e)}static async encryptPrivateKey(e,t){return await P.encryptWithPassword(JSON.stringify(e),t)}}Je.unsafeRawKeyExportEnabled=!1;class qe{constructor(e){if("undefined"==typeof window)throw new Error("getVault can only be called in a browser environment");if(this.isLocked=!1,this.wallets=new Map,this.seeds=new Map,this.encryptedVaultData=null,!e)return;const t=JSON.parse(e);this.encryptedVaultData=t,this.isLocked=!0}static getSavedVaultKeys(){this.ensureBrowserEnvironment();const e=[];for(let t=0;t<localStorage.length;t++){const r=localStorage.key(t);r&&r.startsWith(this.vaultPrefix)&&e.push(r)}return e}static getVaultDataFromStorage(e){return this.ensureBrowserEnvironment(),localStorage.getItem(e)}isVaultLocked(){return this.isLocked}save(e="0"){if(qe.ensureBrowserEnvironment(),!this.isLocked)throw new Error("Cannot save an unlocked vault");const t=`${qe.vaultPrefix}_${e}`;localStorage.setItem(t,JSON.stringify(this.encryptedVaultData))}async lock(e){this.ensureUnlocked();const t=this.toString();this.encryptedVaultData=await P.encryptWithPassword(t,e),this.wallets=new Map,this.seeds=new Map,this.isLocked=!0}async unlock(e){if(!this.isLocked)return;if(!this.encryptedVaultData)throw new Error("Vault was unlocked on undefined encryptedVaultData");const t=await P.decryptWithPassword(this.encryptedVaultData,e),{wallets:r,seeds:s}=JSON.parse(t);this.metaToWallets(r),this.metaToSeeds(s),this.isLocked=!1}isEmpty(){return this.ensureUnlocked(),0===this.wallets.size}getWallets(){return Array.from(this.wallets.values())}getWalletsCount(){return this.ensureUnlocked(),this.wallets.size}getWalletAddresses(){return this.ensureUnlocked(),Array.from(this.wallets.keys())}addWallet(e){this.ensureUnlocked(),this.wallets.set(e.getAddress(),e)}removeWallet(e){this.ensureUnlocked(),this.wallets.delete(e)}getWallet(e){return this.ensureUnlocked(),this.wallets.get(e)}hasWallet(e){return this.ensureUnlocked(),this.wallets.has(e)}hasSeed(e){return this.ensureUnlocked(),this.seeds.has(e)}metaToWallets(e){const t=new Map;Object.keys(e).forEach(r=>{const s=JSON.parse(e[r]),n=Je.fromEncryptedData(s.name,s.address,JSON.parse(s.encryptedPrivateKey),s.masterNodeId,s.index?+s.index:null);t.set(r,n)}),this.wallets=t}metaToSeeds(e){const t=new Map;Object.keys(e).forEach(r=>{const s=ze.createFromStringifiedEncryptedData(e[r]);t.set(r,s)}),this.seeds=t}getSeeds(){return this.ensureUnlocked(),Array.from(this.seeds.values())}getSeed(e){return this.ensureUnlocked(),this.seeds.get(e)}addSeed(e,t){this.ensureUnlocked(),this.seeds.set(e,t)}removeSeed(e){this.ensureUnlocked(),this.seeds.delete(e)}getSeedsIds(){return this.ensureUnlocked(),Array.from(this.seeds.keys())}toString(){const e={},t={};this.ensureUnlocked();const r=this.getWalletAddresses(),s=this.getSeedsIds();return r.forEach(e=>{const r=this.getWallet(e);r&&(t[e]=r.toString())}),s.forEach(t=>{const r=this.getSeed(t);r&&(e[t]=r.toString())}),JSON.stringify({wallets:t,seeds:e})}ensureUnlocked(){if(this.isLocked)throw new Error("Attempted to access locked vault")}static ensureBrowserEnvironment(){if("undefined"==typeof window)throw new Error("getVault can only be called in a browser environment")}}qe.vaultPrefix="ASI_WALLETS_VAULT";class Ze{constructor(e){this.vault=e}static async create(e={}){const t=e.vault||new qe;if(t.isVaultLocked()){if(!e.password)throw new Error("Vault is locked. Please provide a password to unlock it.");await t.unlock(e.password)}return new Ze(t)}async createWallet(e,t,r){const s=await Je.fromPrivateKey(e,t,r);return this.vault.addWallet(s),s}selectActiveWallet(e){return!!this.vault.hasWallet(e)&&(this.activeWalletAddress=e,!0)}getActiveWallet(){if(this.activeWalletAddress)return this.vault.getWallet(this.activeWalletAddress)}getWallets(){return this.vault.getWallets()}}exports.ASI_BASE_UNIT=h,exports.ASI_CHAIN_PREFIX=d,exports.ASI_COIN_TYPE=60,exports.ASI_DECIMALS=8,exports.Asset=class{constructor(e,t,r=8){this.id=e,this.name=t,this.decimals=r}getId(){return this.id}getName(){return this.name}getDecimals(){return this.decimals}},exports.AssetsService=je,exports.AxiosHttpClient=we,exports.BinaryWriter=Le,exports.BlockchainGateway=Ne,exports.Client=Ze,exports.CryptoService=P,exports.DEFAULT_AXIOS_TIMEOUT_MS=3e4,exports.DEFAULT_BIP_44_PATH_OPTIONS=p,exports.DEFAULT_CLIENT_CONFIG=ve,exports.DEFAULT_DECIMALS_AMOUNT=8,exports.DEFAULT_PHLO_LIMIT=be,exports.DEFAULT_RESUBMIT_CONFIG=Se,exports.DEFAULT_STORAGE_KEY="0",exports.DeployResubmitter=class{constructor(e,t){if(this.startSubmissionTime=0,this.config=e,this.nodeManager=Re.initialize(t,e.nodeSelectionAttempts,e.useRandomNode),this.errorHandler=new me,!Ne.isInitialized())throw new Error("BlockchainGateway is not initialized")}isDeployExpired(){return Date.now()-this.startSubmissionTime>=1e3*this.config.deployValiditySeconds}sleep(e){return new Promise(t=>setTimeout(t,1e3*e))}async retryDeployToOneNode(e,t,r,s){let n=this.config.deployRetries,o={success:!1};for(;n>0&&!this.isDeployExpired();){try{const n=Ne.getInstance(),a=await n.getLatestBlockNumber();if(-1===a)throw new Error("DeployResubmitter.retryDeployToOneNode: Invalid block number");const i={term:e,phloLimit:s||be,phloPrice:1,validAfterBlockNumber:a-1,timestamp:Date.now(),shardId:"root"},l=await Oe.sign({wallet:t,data:i},r),c=await n.submitDeploy(l);if("string"!=typeof c){throw new Error("Invalid deploy ID received: "+c)}return o={success:!0,deployId:c},o}catch(e){const t="DeployResubmitter.retryDeployToOneNode:"+e.message,r=this.errorHandler.parseDeploymentError(t);if(console.error(t),o.error={blockchainError:{type:r,message:t}},this.errorHandler.isDeploymentErrorFatal(r))break;n--}await this.sleep(this.config.deployIntervalSeconds)}return this.isDeployExpired()&&(o.error=o?.error||{},o.error.exceededTimeout=exports.FatalDeployErrors.DEPLOY_SUBMIT_TIMEOUT),{success:!1,error:o.error}}async retryDeployToRandomNodes(e,t,r,s){let n={success:!1};for(;!this.isDeployExpired()&&this.nodeManager.getRetriesLeft()>0&&(await this.nodeManager.connectActiveRandomNode(),n=await this.retryDeployToOneNode(e,t,r,s),!n.success)&&(this.nodeManager.deactivateCurrentNode(),n.error?.blockchainError?.type)&&!this.errorHandler.isDeploymentErrorFatal(n.error?.blockchainError?.type););return n}async pollDeployStatus(e){let t;for(;!this.isDeployExpired();){const r=await Ne.getInstance().getDeployStatus(e),s=r.status;if(s===exports.DeployStatus.CHECK_ERROR){const e=`DeployResubmitter.pollDeployStatus: ${"errorMessage"in r?r.errorMessage:"Unknown error"}`,s=this.errorHandler.parseDeploymentError(e);console.error(e);const n={type:s,message:e};if(this.errorHandler.isDeploymentErrorFatal(s)&&!e.includes("Bad Request"))return{success:!1,deployStatus:exports.DeployStatus.CHECK_ERROR,error:{blockchainError:n}};t=n}if(console.log("DeployResubmitter.pollDeployStatus: current deploy status:",s),s==exports.DeployStatus.INCLUDED_IN_BLOCK||s==exports.DeployStatus.FINALIZED)return{success:!0,deployStatus:r.status};await this.sleep(this.config.pollingIntervalSeconds)}return{success:!1,deployStatus:t?exports.DeployStatus.CHECK_ERROR:exports.DeployStatus.DEPLOYING,error:{...t,exceededTimeout:exports.FatalDeployErrors.BLOCK_INCLUSION_TIMEOUT}}}async resubmit(e,t,r,s){let n;if(console.log("DeployResubmitter: starting deploy submission with resubmission logic"),this.startSubmissionTime=Date.now(),this.config.useRandomNode?n=await this.retryDeployToRandomNodes(e,t,r,s):(await this.nodeManager.connectDefaultNode(),n=await this.retryDeployToOneNode(e,t,r,s)),!n.success||!n?.deployId)return n;console.log(`DeployResubmitter: deploy submitted successfully with ID: ${n.deployId}. Starting to poll for status...`);const o=await this.pollDeployStatus(n.deployId);return console.log(`DeployResubmitter: finished polling deploy status. Final status: ${o.deployStatus}, success: ${o.success}`),o}},exports.DeploymentErrorHandler=me,exports.EncryptedRecord=ze,exports.FAULT_TOLERANCE_THRESHOLD=.99,exports.FeeService=g,exports.GasFee=u,exports.HEX_BYTE_PADDING=64,exports.HEX_RADIX=16,exports.INVALID_BLOCK_NUMBER=-1,exports.KeyDerivationService=oe,exports.KeysManager=le,exports.MAX_WALLETS_PER_ACCOUNT=20,exports.MnemonicService=B,exports.POWER_BASE=10,exports.PRIVATE_KEY_LENGTH=32,exports.ResubmitNodeManager=Re,exports.SecureStorage=class{constructor(e="storage_prefix"){if("undefined"==typeof localStorage)throw new Error("localStorage is not supported in this environment.");this.prefix=e}write(e,t){localStorage.setItem(this.createKey(e),t)}read(e){return localStorage.getItem(this.createKey(e))}delete(e){localStorage.removeItem(this.createKey(e))}has(e){return!!localStorage.getItem(this.createKey(e))}isEmpty(){return!this.getIds().length}clear(){this.getIds().forEach(e=>localStorage.removeItem(e))}getIds(){const e=[];for(let t=0;t<localStorage.length;t++){const r=localStorage.key(t);if(!r)break;r.startsWith(`${this.prefix}`)&&e.push(r)}return e}createKey(e){return`${this.prefix}_${e}`}},exports.SignerService=Oe,exports.Vault=qe,exports.Wallet=Je,exports.WalletsService=ue,exports.arrayBufferToBase64=I,exports.base64ToArrayBuffer=A,exports.bigIntToBuffer=v,exports.bufferToBigInt=N,exports.decodeBase16=m,exports.decodeBase58=E,exports.deploymentErrorMessages=fe,exports.encodeBase16=w,exports.encodeBase58=f,exports.fromAtomicAmount=Be,exports.fromAtomicAmountToNumber=e=>{const t=e/h,r=e%h;return t>BigInt(Number.MAX_SAFE_INTEGER)?(console.warn("Integer part exceeds Number.MAX_SAFE_INTEGER; returning imprecise Number"),Number(ke(e))):Number(t)+Number(r)/Number(h)},exports.fromAtomicAmountToString=ke,exports.genRandomHex=e=>[...Array(e)].map(()=>Math.floor(16*Math.random()).toString(16)).join(""),exports.getDeploymentErrorMessage=function(e){return fe[e]??"An unknown error occurred. Please try again."},exports.isAddress=e=>$e(e).isValid,exports.setupBufferPolyfill=U,exports.toAtomicAmount=e=>{const t=h.toString().length-1;if("number"==typeof e){if(!Number.isFinite(e))throw new Error("Invalid number");e=String(e)}let r=String(e).trim();if(!r.length)throw new Error("Cannot process empty amount");let s=!1;if(r.startsWith("-")&&(s=!0,r=r.slice(1)),r=r.replace(Ce,""),!Te.test(r))throw new Error("Invalid amount format");const[n,o=""]=r.split("."),a=n||"0";let i=o;i.length>t&&(console.warn(`Fraction ${i} has more than allowed decimals; truncating`),i=i.slice(0,t)),i=i.padEnd(t,"0");const l=BigInt(a)*h+BigInt(i||"0");return s?-l:l},exports.validateAccountName=(e,t=30)=>e&&0!==e.trim().length?e.length>t?{isValid:!1,error:`Account name must be ${t} characters or less`}:Ke.test(e)?{isValid:!1,error:"Account name contains invalid characters"}:{isValid:!0}:{isValid:!1,error:"Account name is required"},exports.validateAddress=$e;
|
|
3
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/utils/constants/index.ts","../src/services/Fee/index.ts","../src/utils/codec/index.ts","../src/services/Crypto/index.ts","../src/utils/polyfills/index.ts","../src/services/Mnemonic/index.ts","../node_modules/@noble/hashes/esm/utils.js","../node_modules/@noble/hashes/esm/_md.js","../node_modules/@noble/hashes/esm/sha2.js","../node_modules/@noble/hashes/esm/hmac.js","../src/services/KeyDerivation/eccAdapter.ts","../src/services/KeyDerivation/index.ts","../src/services/KeysManager/index.ts","../src/services/Wallets/index.ts","../node_modules/tslib/tslib.es6.js","../src/domains/Error/meta.ts","../src/domains/Error/DeploymentErrorHandler.ts","../src/domains/HttpClient/index.ts","../src/domains/BlockchainGateway/index.ts","../src/config/index.ts","../src/utils/decorators/index.ts","../src/services/Resubmit/NodeManager.ts","../src/services/BinaryWriter/index.ts","../src/services/Signer/index.ts","../src/utils/functions/index.ts","../src/utils/validators/index.ts","../src/domains/Deploy/factory/index.ts","../src/services/AssetsService/index.ts","../src/domains/EncryptedRecord/index.ts","../src/domains/Wallet/index.ts","../src/domains/Vault/index.ts","../src/domains/Client/index.ts","../src/domains/Asset/index.ts","../src/services/Resubmit/DeployResubmitter.ts","../src/domains/BrowserStorage/index.ts"],"sourcesContent":[null,null,null,null,null,null,"/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\n/** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */\nexport function isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is positive integer. */\nexport function anumber(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error('positive integer expected, got ' + n);\n}\n/** Asserts something is Uint8Array. */\nexport function abytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n/** Asserts something is hash */\nexport function ahash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.createHasher');\n anumber(h.outputLen);\n anumber(h.blockLen);\n}\n/** Asserts a hash instance has not been destroyed / finished */\nexport function aexists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\n/** Asserts output is properly-sized byte array */\nexport function aoutput(out, instance) {\n abytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error('digestInto() expects output buffer of length at least ' + min);\n }\n}\n/** Cast u8 / u16 / u32 to u8. */\nexport function u8(arr) {\n return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** Cast u8 / u16 / u32 to u32. */\nexport function u32(arr) {\n return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n/** Zeroize a byte array. Warning: JS provides no guarantees. */\nexport function clean(...arrays) {\n for (let i = 0; i < arrays.length; i++) {\n arrays[i].fill(0);\n }\n}\n/** Create DataView of an array for easy byte-level manipulation. */\nexport function createView(arr) {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** The rotate right (circular right shift) operation for uint32 */\nexport function rotr(word, shift) {\n return (word << (32 - shift)) | (word >>> shift);\n}\n/** The rotate left (circular left shift) operation for uint32 */\nexport function rotl(word, shift) {\n return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexport const isLE = /* @__PURE__ */ (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n/** The byte swap operation for uint32 */\nexport function byteSwap(word) {\n return (((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff));\n}\n/** Conditionally byte swap if on a big-endian platform */\nexport const swap8IfBE = isLE\n ? (n) => n\n : (n) => byteSwap(n);\n/** @deprecated */\nexport const byteSwapIfBE = swap8IfBE;\n/** In place byte swap for Uint32Array */\nexport function byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n return arr;\n}\nexport const swap32IfBE = isLE\n ? (u) => u\n : byteSwap32;\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = /* @__PURE__ */ (() => \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')();\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin)\n return bytes.toHex();\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n if (ch >= asciis._0 && ch <= asciis._9)\n return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F)\n return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f)\n return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // @ts-ignore\n if (hasHexBuiltin)\n return Uint8Array.fromHex(hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n }\n return array;\n}\n/**\n * There is no setImmediate in browser and setTimeout is slow.\n * Call of async fn will return Promise, which will be fullfiled only on\n * next scheduler queue processing step and this is exactly what we need.\n */\nexport const nextTick = async () => { };\n/** Returns control to thread each 'tick' ms to avoid blocking. */\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\n/**\n * Converts string to bytes using UTF8 encoding.\n * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\nexport function bytesToUtf8(bytes) {\n return new TextDecoder().decode(bytes);\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/**\n * Helper for KDFs: consumes uint8array or string.\n * When string is passed, does utf8 decoding, using TextDecoder.\n */\nexport function kdfInputToBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/** Copies several Uint8Arrays into one. */\nexport function concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && {}.toString.call(opts) !== '[object Object]')\n throw new Error('options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\n/** For runtime check if class implements interface */\nexport class Hash {\n}\n/** Wraps hash function, creating an interface on top of it */\nexport function createHasher(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nexport function createOptHasher(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexport function createXOFer(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexport const wrapConstructor = createHasher;\nexport const wrapConstructorWithOpts = createOptHasher;\nexport const wrapXOFConstructorWithOpts = createXOFer;\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nexport function randomBytes(bytesLength = 32) {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto && typeof crypto.randomBytes === 'function') {\n return Uint8Array.from(crypto.randomBytes(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","/**\n * Internal Merkle-Damgard hash utils.\n * @module\n */\nimport { Hash, abytes, aexists, aoutput, clean, createView, toBytes } from \"./utils.js\";\n/** Polyfill for Safari 14. https://caniuse.com/mdn-javascript_builtins_dataview_setbiguint64 */\nexport function setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n/** Choice: a ? b : c */\nexport function Chi(a, b, c) {\n return (a & b) ^ (~a & c);\n}\n/** Majority function, true if any two inputs is true. */\nexport function Maj(a, b, c) {\n return (a & b) ^ (a & c) ^ (b & c);\n}\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport class HashMD extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n aexists(this);\n data = toBytes(data);\n abytes(data);\n const { view, buffer, blockLen } = this;\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n aexists(this);\n aoutput(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n clean(this.buffer.subarray(pos));\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.destroyed = destroyed;\n to.finished = finished;\n to.length = length;\n to.pos = pos;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n clone() {\n return this._cloneInto();\n }\n}\n/**\n * Initial SHA-2 state: fractional parts of square roots of first 16 primes 2..53.\n * Check out `test/misc/sha2-gen-iv.js` for recomputation guide.\n */\n/** Initial SHA256 state. Bits 0..32 of frac part of sqrt of primes 2..19 */\nexport const SHA256_IV = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,\n]);\n/** Initial SHA224 state. Bits 32..64 of frac part of sqrt of primes 23..53 */\nexport const SHA224_IV = /* @__PURE__ */ Uint32Array.from([\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4,\n]);\n/** Initial SHA384 state. Bits 0..64 of frac part of sqrt of primes 23..53 */\nexport const SHA384_IV = /* @__PURE__ */ Uint32Array.from([\n 0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4,\n]);\n/** Initial SHA512 state. Bits 0..64 of frac part of sqrt of primes 2..19 */\nexport const SHA512_IV = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179,\n]);\n//# sourceMappingURL=_md.js.map","/**\n * SHA2 hash function. A.k.a. sha256, sha384, sha512, sha512_224, sha512_256.\n * SHA256 is the fastest hash implementable in JS, even faster than Blake3.\n * Check out [RFC 4634](https://datatracker.ietf.org/doc/html/rfc4634) and\n * [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n */\nimport { Chi, HashMD, Maj, SHA224_IV, SHA256_IV, SHA384_IV, SHA512_IV } from \"./_md.js\";\nimport * as u64 from \"./_u64.js\";\nimport { clean, createHasher, rotr } from \"./utils.js\";\n/**\n * Round constants:\n * First 32 bits of fractional parts of the cube roots of the first 64 primes 2..311)\n */\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ Uint32Array.from([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n/** Reusable temporary buffer. \"W\" comes straight from spec. */\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD {\n constructor(outputLen = 32) {\n super(64, outputLen, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = SHA256_IV[0] | 0;\n this.B = SHA256_IV[1] | 0;\n this.C = SHA256_IV[2] | 0;\n this.D = SHA256_IV[3] | 0;\n this.E = SHA256_IV[4] | 0;\n this.F = SHA256_IV[5] | 0;\n this.G = SHA256_IV[6] | 0;\n this.H = SHA256_IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n clean(SHA256_W);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n clean(this.buffer);\n }\n}\nexport class SHA224 extends SHA256 {\n constructor() {\n super(28);\n this.A = SHA224_IV[0] | 0;\n this.B = SHA224_IV[1] | 0;\n this.C = SHA224_IV[2] | 0;\n this.D = SHA224_IV[3] | 0;\n this.E = SHA224_IV[4] | 0;\n this.F = SHA224_IV[5] | 0;\n this.G = SHA224_IV[6] | 0;\n this.H = SHA224_IV[7] | 0;\n }\n}\n// SHA2-512 is slower than sha256 in js because u64 operations are slow.\n// Round contants\n// First 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409\n// prettier-ignore\nconst K512 = /* @__PURE__ */ (() => u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n))))();\nconst SHA512_Kh = /* @__PURE__ */ (() => K512[0])();\nconst SHA512_Kl = /* @__PURE__ */ (() => K512[1])();\n// Reusable temporary buffers\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\nexport class SHA512 extends HashMD {\n constructor(outputLen = 64) {\n super(128, outputLen, 16, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = SHA512_IV[0] | 0;\n this.Al = SHA512_IV[1] | 0;\n this.Bh = SHA512_IV[2] | 0;\n this.Bl = SHA512_IV[3] | 0;\n this.Ch = SHA512_IV[4] | 0;\n this.Cl = SHA512_IV[5] | 0;\n this.Dh = SHA512_IV[6] | 0;\n this.Dl = SHA512_IV[7] | 0;\n this.Eh = SHA512_IV[8] | 0;\n this.El = SHA512_IV[9] | 0;\n this.Fh = SHA512_IV[10] | 0;\n this.Fl = SHA512_IV[11] | 0;\n this.Gh = SHA512_IV[12] | 0;\n this.Gl = SHA512_IV[13] | 0;\n this.Hh = SHA512_IV[14] | 0;\n this.Hl = SHA512_IV[15] | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n clean(SHA512_W_H, SHA512_W_L);\n }\n destroy() {\n clean(this.buffer);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nexport class SHA384 extends SHA512 {\n constructor() {\n super(48);\n this.Ah = SHA384_IV[0] | 0;\n this.Al = SHA384_IV[1] | 0;\n this.Bh = SHA384_IV[2] | 0;\n this.Bl = SHA384_IV[3] | 0;\n this.Ch = SHA384_IV[4] | 0;\n this.Cl = SHA384_IV[5] | 0;\n this.Dh = SHA384_IV[6] | 0;\n this.Dl = SHA384_IV[7] | 0;\n this.Eh = SHA384_IV[8] | 0;\n this.El = SHA384_IV[9] | 0;\n this.Fh = SHA384_IV[10] | 0;\n this.Fl = SHA384_IV[11] | 0;\n this.Gh = SHA384_IV[12] | 0;\n this.Gl = SHA384_IV[13] | 0;\n this.Hh = SHA384_IV[14] | 0;\n this.Hl = SHA384_IV[15] | 0;\n }\n}\n/**\n * Truncated SHA512/256 and SHA512/224.\n * SHA512_IV is XORed with 0xa5a5a5a5a5a5a5a5, then used as \"intermediary\" IV of SHA512/t.\n * Then t hashes string to produce result IV.\n * See `test/misc/sha2-gen-iv.js`.\n */\n/** SHA512/224 IV */\nconst T224_IV = /* @__PURE__ */ Uint32Array.from([\n 0x8c3d37c8, 0x19544da2, 0x73e19966, 0x89dcd4d6, 0x1dfab7ae, 0x32ff9c82, 0x679dd514, 0x582f9fcf,\n 0x0f6d2b69, 0x7bd44da8, 0x77e36f73, 0x04c48942, 0x3f9d85a8, 0x6a1d36c8, 0x1112e6ad, 0x91d692a1,\n]);\n/** SHA512/256 IV */\nconst T256_IV = /* @__PURE__ */ Uint32Array.from([\n 0x22312194, 0xfc2bf72c, 0x9f555fa3, 0xc84c64c2, 0x2393b86b, 0x6f53b151, 0x96387719, 0x5940eabd,\n 0x96283ee2, 0xa88effe3, 0xbe5e1e25, 0x53863992, 0x2b0199fc, 0x2c85b8aa, 0x0eb72ddc, 0x81c52ca2,\n]);\nexport class SHA512_224 extends SHA512 {\n constructor() {\n super(28);\n this.Ah = T224_IV[0] | 0;\n this.Al = T224_IV[1] | 0;\n this.Bh = T224_IV[2] | 0;\n this.Bl = T224_IV[3] | 0;\n this.Ch = T224_IV[4] | 0;\n this.Cl = T224_IV[5] | 0;\n this.Dh = T224_IV[6] | 0;\n this.Dl = T224_IV[7] | 0;\n this.Eh = T224_IV[8] | 0;\n this.El = T224_IV[9] | 0;\n this.Fh = T224_IV[10] | 0;\n this.Fl = T224_IV[11] | 0;\n this.Gh = T224_IV[12] | 0;\n this.Gl = T224_IV[13] | 0;\n this.Hh = T224_IV[14] | 0;\n this.Hl = T224_IV[15] | 0;\n }\n}\nexport class SHA512_256 extends SHA512 {\n constructor() {\n super(32);\n this.Ah = T256_IV[0] | 0;\n this.Al = T256_IV[1] | 0;\n this.Bh = T256_IV[2] | 0;\n this.Bl = T256_IV[3] | 0;\n this.Ch = T256_IV[4] | 0;\n this.Cl = T256_IV[5] | 0;\n this.Dh = T256_IV[6] | 0;\n this.Dl = T256_IV[7] | 0;\n this.Eh = T256_IV[8] | 0;\n this.El = T256_IV[9] | 0;\n this.Fh = T256_IV[10] | 0;\n this.Fl = T256_IV[11] | 0;\n this.Gh = T256_IV[12] | 0;\n this.Gl = T256_IV[13] | 0;\n this.Hh = T256_IV[14] | 0;\n this.Hl = T256_IV[15] | 0;\n }\n}\n/**\n * SHA2-256 hash function from RFC 4634.\n *\n * It is the fastest JS hash, even faster than Blake3.\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n */\nexport const sha256 = /* @__PURE__ */ createHasher(() => new SHA256());\n/** SHA2-224 hash function from RFC 4634 */\nexport const sha224 = /* @__PURE__ */ createHasher(() => new SHA224());\n/** SHA2-512 hash function from RFC 4634. */\nexport const sha512 = /* @__PURE__ */ createHasher(() => new SHA512());\n/** SHA2-384 hash function from RFC 4634. */\nexport const sha384 = /* @__PURE__ */ createHasher(() => new SHA384());\n/**\n * SHA2-512/256 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_256 = /* @__PURE__ */ createHasher(() => new SHA512_256());\n/**\n * SHA2-512/224 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_224 = /* @__PURE__ */ createHasher(() => new SHA512_224());\n//# sourceMappingURL=sha2.js.map","/**\n * HMAC: RFC2104 message authentication code.\n * @module\n */\nimport { abytes, aexists, ahash, clean, Hash, toBytes } from \"./utils.js\";\nexport class HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n ahash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new Error('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n clean(pad);\n }\n update(buf) {\n aexists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n aexists(this);\n abytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n clone() {\n return this._cloneInto();\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\n */\nexport const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nhmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map",null,null,null,null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ASI_CHAIN_PREFIX","coinId","version","GasFee","BASE_FEE","VARIATION_RANGE","LABEL","TRANSFER","DEPLOY","ASI_BASE_UNIT","BigInt","DEFAULT_BIP_44_PATH_OPTIONS","coinType","account","change","index","FeeService","generateRandomGasFee","variation","Math","random","toFixed","getGasFeeAsNumber","formatGasFee","fee","_a","encodeBase58","hex","bytes","decodeBase16","bs58","encode","decodeBase58","value","decode","Uint8Array","length","i","parseInt","substr","encodeBase16","Array","from","byte","toString","padStart","join","arrayBufferToBase64","buffer","binary","byteLength","String","fromCharCode","btoa","base64ToArrayBuffer","base64","atob","charCodeAt","bufferToBigInt","Buffer","bigIntToBuffer","num","KeyUsage","CryptoConfig","ENCRYPT","DECRYPT","CryptoService","encryptWithPassword","data","password","salt","crypto","getRandomValues","iv","key","this","deriveKey","encrypted","subtle","encrypt","name","TextEncoder","decryptWithPassword","payload","passphrase","Error","decrypted","decrypt","TextDecoder","keyMaterial","importKey","DERIVATION","iterations","hash","setupBufferPolyfill","window","MnemonicStrength","MnemonicService","generateMnemonic","strength","TWELVE_WORDS","bip39","generateMnemonicArray","mnemonicToWordArray","isMnemonicValid","mnemonic","validateMnemonic","trim","split","wordArrayToMnemonic","words","anumber","n","Number","isSafeInteger","abytes","b","lengths","a","ArrayBuffer","isView","constructor","includes","aexists","instance","checkFinished","destroyed","finished","clean","arrays","fill","createView","arr","DataView","byteOffset","rotr","word","shift","toBytes","str","utf8ToBytes","Hash","createHasher","hashCons","hashC","msg","update","digest","tmp","outputLen","blockLen","create","Chi","c","Maj","HashMD","padOffset","isLE","super","pos","view","len","take","min","dataView","process","set","subarray","roundClean","digestInto","out","aoutput","setBigUint64","_32n","_u32_max","wh","wl","h","l","setUint32","oview","outLen","state","get","res","slice","destroy","_cloneInto","to","clone","SHA256_IV","Uint32Array","SHA256_K","SHA256_W","SHA256","A","B","C","D","E","F","G","H","offset","getUint32","W15","W2","s0","s1","T1","T2","sha256","HMAC","_key","ahash","iHash","pad","oHash","buf","Object","getPrototypeOf","hmac","message","utils","hmacSha256Sync","messages","concatBytes","CURVE_ORDER","CURVE","ECC","isPoint","publicKeyBytes","Point","fromHex","isPrivate","privateKeyBytes","privateKeyNumber","pointFromScalar","compressed","getPublicKey","pointAddScalar","publicKeyPoint","tweakValue","publicKeyPointObject","tweakNumber","tweakPointObject","BASE","multiply","add","toRawBytes","privateAdd","result","privateNegate","sign","messageHash","signSync","der","verify","signature","KeyDerivationService","buildBip44Path","derivePrivateKey","masterNode","path","node","derivePath","privateKey","mnemonicToSeed","mnemonicWords","seedToMasterNode","seed","BIP32Factory","fromSeed","deriveKeyFromMnemonic","options","bip44Path","deriveNextKeyFromMnemonic","currentIndex","nextIndex","randomBytes","bytesToHex","KeysManager","generateRandomKey","isInteger","generateKeyPair","keyLength","publicKey","getKeyPairFromPrivateKey","getPublicKeyFromPrivateKey","convertKeyToHex","generateMpcKeyPair","blake2bHex","blakejs","keccak256","sha3","WalletsService","createWallet","keyPair","address","deriveAddressFromPublicKey","createWalletFromMnemonic","mnemonicToUse","normalizedMnemonic","deriveAddressFromPrivateKey","addressBase","addressBaseHash","addressPayload","addressPayloadBytes","checksum","undefined","__esDecorate","ctor","descriptorIn","decorators","contextIn","initializers","extraInitializers","accept","f","TypeError","_","kind","target","prototype","descriptor","getOwnPropertyDescriptor","done","context","p","access","addInitializer","push","init","unshift","defineProperty","__runInitializers","thisArg","useValue","arguments","call","RecoverableDeployErrors","FatalDeployErrors","SuppressedError","deploymentErrorMessages","READ_ONLY_NODE","CASPER_INSTANCE_UNAVAILABLE","INVALID_DEPLOY_ID","INVALID_BLOCK_NUMBER","INSUFFICIENT_BALANCE","WRONG_NETWORK","PARSING_ERROR","LOW_PHLO_PRICE","SIGNATURE_ERROR","STORAGE_RETRIEVAL_ERROR","UNKNOWN_ERROR","DEPLOY_SUBMIT_TIMEOUT","BLOCK_INCLUSION_TIMEOUT","FINALIZATION_TIMEOUT","useLowerCaseMessage","methodArguments","toLowerCase","apply","parseDeploymentError","errorMessage","isDeploymentErrorRecoverable","errorType","values","isDeploymentErrorFatal","isPollingErrorRecoverable","getErrorMessageByErrorType","_instanceExtraInitializers","_parseDeploymentError_decorators","static","private","has","obj","metadata","_metadata","_isPollingErrorRecoverable_decorators","AxiosHttpClient","client","url","post","getBaseUrl","defaults","baseURL","DeployStatus","WalletClientModes","BlockchainGateway","validatorClient","indexerClient","createHttpClient","config","axiosInstance","axios","baseUrl","axiosConfig","changeValidator","changeIndexer","validator","indexer","isInitialized","getInstance","getValidatorClientUrl","submitDeploy","deployData","headers","console","log","deployIdMatch","exec","deployId","error","getGatewayErrorMessage","submitExploratoryDeploy","rholangCode","exploreDeployData","expr","getDeploy","deployHash","isDeployFinalized","deploy","faultTolerance","getDeployStatus","blockHash","status","DEPLOYING","FINALIZED","INCLUDED_IN_BLOCK","CHECK_ERROR","getBlock","response","blockInfo","getLatestBlockNumber","block","getLatestBlock","blockNumber","isValidatorActive","isAxiosError","code","statusText","validateBlocksResponse","blocks","DEFAULT_CLIENT_CONFIG","mode","LOCAL","DEFAULT_PHLO_LIMIT","DEFAULT_RESUBMIT_CONFIG","phloPrice","useRandomNode","deployValiditySeconds","nodeSelectionAttempts","deployRetries","deployIntervalSeconds","pollingIntervalSeconds","RequireBlockchainGateway","availableNodesUrls","retriesLeft","inactiveNodesUrls","Set","currentNodeUrl","initialize","attempts","max","connectDefaultNode","connectNode","nodeUrl","deactivateNode","markNodeInactive","deactivateCurrentNode","getAvailableNodesUrls","filter","getRetriesLeft","getRandomAvailableNodeUrl","availableNodeUrls","floor","connectActiveRandomNode","_connectDefaultNode_decorators","_connectActiveRandomNode_decorators","MAX_BYTE_VALUE","BinaryWriterService","writeString","fieldNumber","writeInteger","writeInt64","writeInteger64","getResultBuffer","SignerService","request","passwordProvider","wallet","withSigningCapability","async","signingCapability","deploySerialized","deployDataProtobufSerialize","hashed","suitableBytes","signDigest","term","timestamp","phloLimit","validAfterBlockNumber","shardId","deployer","sigAlgorithm","writer","BinaryWriter","REGEX_THOUSANDS","REGEX_AMOUNT_FORMAT","REGEX_TRIM_TRAILING_ZEROS","REGEX_DOT_ZERO","fromAtomicAmountToString","atomicAmount","integerPart","remainder","decimals","fraction","replace","fromAtomicAmount","INVALID_ACCOUNT_NAME_CHARS","ADDRESS_ALPHABET_REGEX","ADDRESS_BASE58_ALPHABET_REGEX","ADDRESS_PREFIX_HEX","AddressValidationErrorCode","getInvalidResult","errorCode","isValid","validateAddress","startsWith","INVALID_PREFIX","INVALID_LENGTH","test","INVALID_ALPHABET","INVALID_BASE58","decodedHex","ADDRESS_PAYLOAD_HEX_LENGTH","INVALID_HEX_LENGTH","NON_CANONICAL","payloadHex","checksumHex","INVALID_CHAIN_PREFIX","expectedChecksumHex","INVALID_CHECKSUM","escapeRholangString","getBlockchainGateway","transfer","fromAddress","toAddress","amount","fromValidation","toValidation","gateway","transferRho","escapedFromAddress","escapedToAddress","amountString","createTransferDeploy","latestBlockNumber","Date","now","signedDeploy","getASIBalance","validation","checkBalanceRho","createCheckBalanceDeploy","firstExpr","ExprInt","ExprString","_transfer_decorators","_getASIBalance_decorators","EncryptedRecord","createAndEncrypt","encryptedData","createFromEncryptedData","createFromStringifiedEncryptedData","JSON","parse","encryptedSeedData","stringify","WalletMemoryKeys","Wallet","encryptedPrivateKey","masterNodeId","assets","Map","isLocked","fromPrivateKey","encryptPrivateKey","fromEncryptedData","unsafeRawKeyExportEnabled","decryptPrivateKey","enableUnsafeRawKeyExportForLegacyInterop","disableUnsafeRawKeyExport","isUnsafeRawKeyExportEnabled","parsed","isArray","keys","sort","map","k","v","isNaN","callback","expired","getEncryptedPrivateKey","registerAsset","asset","getId","getAddress","getName","getIndex","getAssets","isWalletLocked","meta","Vault","VaultData","wallets","seeds","encryptedVaultData","parsedData","getSavedVaultKeys","ensureBrowserEnvironment","localStorage","vaultPrefix","getVaultDataFromStorage","vaultKey","getItem","isVaultLocked","save","storageKey","setItem","lock","ensureUnlocked","rawVaultData","unlock","decryptedData","metaToWallets","metaToSeeds","isEmpty","size","getWallets","getWalletsCount","getWalletAddresses","addWallet","removeWallet","delete","getWallet","hasWallet","hasSeed","seedId","forEach","walletMeta","id","getSeeds","getSeed","addSeed","removeSeed","getSeedsIds","seedsMeta","walletsMeta","addresses","seedsIds","Client","vault","selectActiveWallet","walletAddress","activeWalletAddress","getActiveWallet","getDecimals","startSubmissionTime","nodeManager","NodeManager","errorHandler","DeploymentErrorHandler","isDeployExpired","sleep","sec","Promise","resolve","setTimeout","retryDeployToOneNode","deployResult","success","blockchainError","type","exceededTimeout","retryDeployToRandomNodes","pollDeployStatus","last_error","checkDeployResult","deployStatus","resubmit","pollResult","prefix","write","createKey","read","removeItem","getIds","clear","idsArray","localStorageKey","MAX_SAFE_INTEGER","warn","isFinite","isNegative","integerPartRaw","fractionRaw","padEnd","maxLength"],"mappings":"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","x_google_ignoreList":[6,7,8,9,14]}
|
package/dist/index.d.ts
CHANGED
|
@@ -392,6 +392,21 @@ declare class Vault {
|
|
|
392
392
|
private static ensureBrowserEnvironment;
|
|
393
393
|
}
|
|
394
394
|
|
|
395
|
+
interface ClientOptions {
|
|
396
|
+
vault?: Vault;
|
|
397
|
+
password?: string;
|
|
398
|
+
}
|
|
399
|
+
declare class Client {
|
|
400
|
+
private readonly vault;
|
|
401
|
+
private activeWalletAddress?;
|
|
402
|
+
private constructor();
|
|
403
|
+
static create(options?: ClientOptions): Promise<Client>;
|
|
404
|
+
createWallet(name: string, privateKey: Uint8Array, password: string): Promise<Wallet>;
|
|
405
|
+
selectActiveWallet(walletAddress: Address): boolean;
|
|
406
|
+
getActiveWallet(): Wallet | undefined;
|
|
407
|
+
getWallets(): Wallet[];
|
|
408
|
+
}
|
|
409
|
+
|
|
395
410
|
interface HttpClient {
|
|
396
411
|
get<T = any>(url: string, config?: AxiosRequestConfig): Promise<T>;
|
|
397
412
|
post<T = any>(url: string, data?: any, config?: AxiosRequestConfig): Promise<T>;
|
|
@@ -446,6 +461,8 @@ declare const decodeBase16: (hex: string) => Uint8Array;
|
|
|
446
461
|
declare const encodeBase16: (bytes: Uint8Array) => string;
|
|
447
462
|
declare const arrayBufferToBase64: (buffer: ArrayBuffer) => string;
|
|
448
463
|
declare const base64ToArrayBuffer: (base64: string) => ArrayBuffer;
|
|
464
|
+
declare const bufferToBigInt: (buffer: Uint8Array) => bigint;
|
|
465
|
+
declare const bigIntToBuffer: (num: bigint) => Uint8Array;
|
|
449
466
|
|
|
450
467
|
declare const PRIVATE_KEY_LENGTH = 32;
|
|
451
468
|
declare const ASI_CHAIN_PREFIX: {
|
|
@@ -461,6 +478,8 @@ declare const GasFee: {
|
|
|
461
478
|
TRANSFER: string;
|
|
462
479
|
DEPLOY: string;
|
|
463
480
|
};
|
|
481
|
+
declare const HEX_RADIX: number;
|
|
482
|
+
declare const HEX_BYTE_PADDING: number;
|
|
464
483
|
declare const POWER_BASE: number;
|
|
465
484
|
declare const ASI_BASE_UNIT: bigint;
|
|
466
485
|
declare const FAULT_TOLERANCE_THRESHOLD: number;
|
|
@@ -501,5 +520,5 @@ interface AddressValidationResult {
|
|
|
501
520
|
declare const validateAddress: (address: string) => AddressValidationResult;
|
|
502
521
|
declare const isAddress: (address: string) => address is Address;
|
|
503
522
|
|
|
504
|
-
export { ASI_BASE_UNIT, ASI_CHAIN_PREFIX, ASI_COIN_TYPE, ASI_DECIMALS, AddressValidationErrorCode, Asset, AssetsService, AxiosHttpClient, BinaryWriterService as BinaryWriter, BlockchainGateway, CryptoService, DEFAULT_AXIOS_TIMEOUT_MS, DEFAULT_BIP_44_PATH_OPTIONS, DEFAULT_CLIENT_CONFIG, DEFAULT_DECIMALS_AMOUNT, DEFAULT_PHLO_LIMIT, DEFAULT_RESUBMIT_CONFIG, DEFAULT_STORAGE_KEY, DeployResubmitter, DeployStatus, DeploymentErrorHandler, EncryptedRecord, FAULT_TOLERANCE_THRESHOLD, FatalDeployErrors, FeeService, GasFee, INVALID_BLOCK_NUMBER, KeyDerivationService, KeysManager, MAX_WALLETS_PER_ACCOUNT, MnemonicService, MnemonicStrength, POWER_BASE, PRIVATE_KEY_LENGTH, RecoverableDeployErrors, NodeManager as ResubmitNodeManager, BrowserStorage as SecureStorage, SignerService, Vault, Wallet, WalletClientModes, WalletMemoryKeys, WalletsService, arrayBufferToBase64, base64ToArrayBuffer, decodeBase16, decodeBase58, deploymentErrorMessages, encodeBase16, encodeBase58, fromAtomicAmount, fromAtomicAmountToNumber, fromAtomicAmountToString, genRandomHex, getDeploymentErrorMessage, isAddress, setupBufferPolyfill, toAtomicAmount, validateAccountName, validateAddress };
|
|
505
|
-
export type { Address, AddressValidationResult, AssetId, Assets, Bip44PathOptions, BlockchainGatewayConfig, CreateWalletOptions, CryptoConfig, DeployStatusResult, DeploymentErrorType, EncryptedData, HttpClient, KeyPair, PasswordProvider, ResubmitConfig, ResubmitResult, Seeds, SignedResult, SigningCapability, SigningRequest, StoredSeedsMetaRecords, StoredWalletMeta, StoredWalletsMetaRecords, StringifiedWalletMeta, VaultRawData, WalletClientConfig, WalletMemory, WalletMeta, Wallets };
|
|
523
|
+
export { ASI_BASE_UNIT, ASI_CHAIN_PREFIX, ASI_COIN_TYPE, ASI_DECIMALS, AddressValidationErrorCode, Asset, AssetsService, AxiosHttpClient, BinaryWriterService as BinaryWriter, BlockchainGateway, Client, CryptoService, DEFAULT_AXIOS_TIMEOUT_MS, DEFAULT_BIP_44_PATH_OPTIONS, DEFAULT_CLIENT_CONFIG, DEFAULT_DECIMALS_AMOUNT, DEFAULT_PHLO_LIMIT, DEFAULT_RESUBMIT_CONFIG, DEFAULT_STORAGE_KEY, DeployResubmitter, DeployStatus, DeploymentErrorHandler, EncryptedRecord, FAULT_TOLERANCE_THRESHOLD, FatalDeployErrors, FeeService, GasFee, HEX_BYTE_PADDING, HEX_RADIX, INVALID_BLOCK_NUMBER, KeyDerivationService, KeysManager, MAX_WALLETS_PER_ACCOUNT, MnemonicService, MnemonicStrength, POWER_BASE, PRIVATE_KEY_LENGTH, RecoverableDeployErrors, NodeManager as ResubmitNodeManager, BrowserStorage as SecureStorage, SignerService, Vault, Wallet, WalletClientModes, WalletMemoryKeys, WalletsService, arrayBufferToBase64, base64ToArrayBuffer, bigIntToBuffer, bufferToBigInt, decodeBase16, decodeBase58, deploymentErrorMessages, encodeBase16, encodeBase58, fromAtomicAmount, fromAtomicAmountToNumber, fromAtomicAmountToString, genRandomHex, getDeploymentErrorMessage, isAddress, setupBufferPolyfill, toAtomicAmount, validateAccountName, validateAddress };
|
|
524
|
+
export type { Address, AddressValidationResult, AssetId, Assets, Bip44PathOptions, BlockchainGatewayConfig, ClientOptions, CreateWalletOptions, CryptoConfig, DeployStatusResult, DeploymentErrorType, EncryptedData, HttpClient, KeyPair, PasswordProvider, ResubmitConfig, ResubmitResult, Seeds, SignedResult, SigningCapability, SigningRequest, StoredSeedsMetaRecords, StoredWalletMeta, StoredWalletsMetaRecords, StringifiedWalletMeta, VaultRawData, WalletClientConfig, WalletMemory, WalletMeta, Wallets };
|