@ecency/sdk 2.2.14 → 2.2.16

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.
@@ -797,6 +797,20 @@ declare const config: {
797
797
  */
798
798
  retry: number;
799
799
  };
800
+ /**
801
+ * Validated setter for the Hive RPC node list — replaces `config.nodes`.
802
+ * Trims, drops non-http(s) entries, and de-dupes (order-preserving). A no-op
803
+ * if nothing valid remains, so a bad input can't empty the list.
804
+ *
805
+ * Lives here, in the React-free `hive-tx` core, on purpose: it must be
806
+ * reachable from BOTH the full `@ecency/sdk` entry (via
807
+ * `ConfigManager.setHiveNodes`, which delegates here) and the lean
808
+ * `@ecency/sdk/hive` server/CLI entry — without dragging react-query or the
809
+ * DMCA/ReDoS surface of `ConfigManager` into the lean entry. Within a single
810
+ * bundle this mutates the one `config` instance `callRPC` reads; the
811
+ * cross-bundle single-instance guarantee is a separate (build-level) concern.
812
+ */
813
+ declare const setNodes: (nodes: string[]) => void;
800
814
 
801
815
  type Memo = {
802
816
  /**
@@ -962,4 +976,4 @@ declare namespace utils {
962
976
  export { type utils_WitnessProps as WitnessProps, utils_buildWitnessSetProperties as buildWitnessSetProperties, utils_makeBitMaskFilter as makeBitMaskFilter, utils_operations as operations, utils_validateUsername as validateUsername };
963
977
  }
964
978
 
965
- export { type LimitOrderCreate2Operation as $, type Authority as A, type BroadcastResult as B, type CustomJsonOperation as C, type CustomOperation as D, type ClaimAccountOperation as E, type CreateClaimedAccountOperation as F, type ClaimRewardBalanceOperation as G, type DelegateVestingSharesOperation as H, type DeleteCommentOperation as I, type CommentOptionsOperation as J, type SetWithdrawVestingRouteOperation as K, type WitnessUpdateOperation as L, Memo as M, type WitnessSetPropertiesOperation as N, type Operation as O, PrivateKey as P, type DeclineVotingRightsOperation as Q, type ResetAccountOperation as R, Signature as S, Transaction as T, type SetResetAccountOperation as U, type VoteOperation as V, type WitnessProps$1 as W, type TransferToSavingsOperation as X, type TransferFromSavingsOperation as Y, type CancelTransferFromSavingsOperation as Z, type LimitOrderCreateOperation as _, PublicKey as a, type LimitOrderCancelOperation as a0, type FeedPublishOperation as a1, type EscrowTransferOperation as a2, type EscrowDisputeOperation as a3, type EscrowReleaseOperation as a4, type EscrowApproveOperation as a5, type RecoverAccountOperation as a6, type RequestAccountRecoveryOperation as a7, type ChangeRecoveryAccountOperation as a8, type RecurrentTransferOperation as a9, type CreateProposalOperation as aa, type UpdateProposalOperation as ab, type UpdateProposalVotesOperation as ac, type RemoveProposalOperation as ad, type WitnessSetPropertiesParams as ae, type Extension as af, type TransactionType as ag, type BroadcastError as ah, type CallResponse as ai, type DigestData as aj, type TransactionStatus as ak, type OperationName as b, config as c, callRPC as d, callRPCBroadcast as e, callREST as f, callWithQuorum as g, type OperationBody as h, type AssetSymbol as i, type AccountCreateOperation as j, type Beneficiary as k, type Price as l, type ChainProperties as m, type CommentOperation as n, operations as o, type TransferOperation as p, type TransferToVestingOperation as q, type WithdrawVestingOperation as r, type AccountCreateWithDelegationOperation as s, type AccountUpdateOperation as t, utils as u, type AccountUpdate2Operation as v, type AccountWitnessVoteOperation as w, type AccountWitnessProxyOperation as x, type ConvertOperation as y, type CollateralizedConvertOperation as z };
979
+ export { type LimitOrderCreateOperation as $, type Authority as A, type BroadcastResult as B, type CustomJsonOperation as C, type CollateralizedConvertOperation as D, type CustomOperation as E, type ClaimAccountOperation as F, type CreateClaimedAccountOperation as G, type ClaimRewardBalanceOperation as H, type DelegateVestingSharesOperation as I, type DeleteCommentOperation as J, type CommentOptionsOperation as K, type SetWithdrawVestingRouteOperation as L, Memo as M, type WitnessUpdateOperation as N, type Operation as O, PrivateKey as P, type WitnessSetPropertiesOperation as Q, type DeclineVotingRightsOperation as R, Signature as S, Transaction as T, type ResetAccountOperation as U, type VoteOperation as V, type WitnessProps$1 as W, type SetResetAccountOperation as X, type TransferToSavingsOperation as Y, type TransferFromSavingsOperation as Z, type CancelTransferFromSavingsOperation as _, PublicKey as a, type LimitOrderCreate2Operation as a0, type LimitOrderCancelOperation as a1, type FeedPublishOperation as a2, type EscrowTransferOperation as a3, type EscrowDisputeOperation as a4, type EscrowReleaseOperation as a5, type EscrowApproveOperation as a6, type RecoverAccountOperation as a7, type RequestAccountRecoveryOperation as a8, type ChangeRecoveryAccountOperation as a9, type RecurrentTransferOperation as aa, type CreateProposalOperation as ab, type UpdateProposalOperation as ac, type UpdateProposalVotesOperation as ad, type RemoveProposalOperation as ae, type WitnessSetPropertiesParams as af, type Extension as ag, type TransactionType as ah, type BroadcastError as ai, type CallResponse as aj, type DigestData as ak, type TransactionStatus as al, type OperationName as b, config as c, callRPC as d, callRPCBroadcast as e, callREST as f, callWithQuorum as g, type OperationBody as h, type AssetSymbol as i, type AccountCreateOperation as j, type Beneficiary as k, type Price as l, type ChainProperties as m, type CommentOperation as n, operations as o, type TransferOperation as p, type TransferToVestingOperation as q, type WithdrawVestingOperation as r, setNodes as s, type AccountCreateWithDelegationOperation as t, utils as u, type AccountUpdateOperation as v, type AccountUpdate2Operation as w, type AccountWitnessVoteOperation as x, type AccountWitnessProxyOperation as y, type ConvertOperation as z };
@@ -1 +1 @@
1
- export { j as AccountCreateOperation, s as AccountCreateWithDelegationOperation, v as AccountUpdate2Operation, t as AccountUpdateOperation, x as AccountWitnessProxyOperation, w as AccountWitnessVoteOperation, i as AssetSymbol, A as Authority, k as Beneficiary, ah as BroadcastError, B as BroadcastResult, ai as CallResponse, Z as CancelTransferFromSavingsOperation, m as ChainProperties, a8 as ChangeRecoveryAccountOperation, E as ClaimAccountOperation, G as ClaimRewardBalanceOperation, z as CollateralizedConvertOperation, n as CommentOperation, J as CommentOptionsOperation, y as ConvertOperation, F as CreateClaimedAccountOperation, aa as CreateProposalOperation, C as CustomJsonOperation, D as CustomOperation, Q as DeclineVotingRightsOperation, H as DelegateVestingSharesOperation, I as DeleteCommentOperation, aj as DigestData, a5 as EscrowApproveOperation, a3 as EscrowDisputeOperation, a4 as EscrowReleaseOperation, a2 as EscrowTransferOperation, af as Extension, a1 as FeedPublishOperation, a0 as LimitOrderCancelOperation, $ as LimitOrderCreate2Operation, _ as LimitOrderCreateOperation, M as Memo, O as Operation, h as OperationBody, b as OperationName, l as Price, P as PrivateKey, a as PublicKey, a6 as RecoverAccountOperation, a9 as RecurrentTransferOperation, ad as RemoveProposalOperation, a7 as RequestAccountRecoveryOperation, R as ResetAccountOperation, U as SetResetAccountOperation, K as SetWithdrawVestingRouteOperation, S as Signature, T as Transaction, ak as TransactionStatus, ag as TransactionType, Y as TransferFromSavingsOperation, p as TransferOperation, X as TransferToSavingsOperation, q as TransferToVestingOperation, ab as UpdateProposalOperation, ac as UpdateProposalVotesOperation, V as VoteOperation, r as WithdrawVestingOperation, W as WitnessProps, N as WitnessSetPropertiesOperation, ae as WitnessSetPropertiesParams, L as WitnessUpdateOperation, f as callREST, d as callRPC, e as callRPCBroadcast, g as callWithQuorum, c as config, u as utils } from './hive-T9MxuBH_.js';
1
+ export { j as AccountCreateOperation, t as AccountCreateWithDelegationOperation, w as AccountUpdate2Operation, v as AccountUpdateOperation, y as AccountWitnessProxyOperation, x as AccountWitnessVoteOperation, i as AssetSymbol, A as Authority, k as Beneficiary, ai as BroadcastError, B as BroadcastResult, aj as CallResponse, _ as CancelTransferFromSavingsOperation, m as ChainProperties, a9 as ChangeRecoveryAccountOperation, F as ClaimAccountOperation, H as ClaimRewardBalanceOperation, D as CollateralizedConvertOperation, n as CommentOperation, K as CommentOptionsOperation, z as ConvertOperation, G as CreateClaimedAccountOperation, ab as CreateProposalOperation, C as CustomJsonOperation, E as CustomOperation, R as DeclineVotingRightsOperation, I as DelegateVestingSharesOperation, J as DeleteCommentOperation, ak as DigestData, a6 as EscrowApproveOperation, a4 as EscrowDisputeOperation, a5 as EscrowReleaseOperation, a3 as EscrowTransferOperation, ag as Extension, a2 as FeedPublishOperation, a1 as LimitOrderCancelOperation, a0 as LimitOrderCreate2Operation, $ as LimitOrderCreateOperation, M as Memo, O as Operation, h as OperationBody, b as OperationName, l as Price, P as PrivateKey, a as PublicKey, a7 as RecoverAccountOperation, aa as RecurrentTransferOperation, ae as RemoveProposalOperation, a8 as RequestAccountRecoveryOperation, U as ResetAccountOperation, X as SetResetAccountOperation, L as SetWithdrawVestingRouteOperation, S as Signature, T as Transaction, al as TransactionStatus, ah as TransactionType, Z as TransferFromSavingsOperation, p as TransferOperation, Y as TransferToSavingsOperation, q as TransferToVestingOperation, ac as UpdateProposalOperation, ad as UpdateProposalVotesOperation, V as VoteOperation, r as WithdrawVestingOperation, W as WitnessProps, Q as WitnessSetPropertiesOperation, af as WitnessSetPropertiesParams, N as WitnessUpdateOperation, f as callREST, d as callRPC, e as callRPCBroadcast, g as callWithQuorum, c as config, s as setNodes, u as utils } from './hive-CdgAgNEJ.js';
@@ -1,9 +1,9 @@
1
- import {hexToBytes,bytesToHex}from'@noble/hashes/utils.js';import {ripemd160}from'@noble/hashes/legacy.js';import ge from'bs58';import {secp256k1}from'@noble/curves/secp256k1.js';import {sha256,sha512}from'@noble/hashes/sha2.js';import {cbc}from'@noble/ciphers/aes.js';var fe=Object.defineProperty;var et=(n,e,t)=>e in n?fe(n,e,{enumerable:true,configurable:true,writable:true,value:t}):n[e]=t;var tt=(n,e)=>{for(var t in e)fe(n,t,{get:e[t],enumerable:true});};var m=(n,e,t)=>et(n,typeof e!="symbol"?e+"":e,t);var J=new ArrayBuffer(0),W=null,G=null;function rt(){return W||(typeof TextEncoder<"u"?W=new TextEncoder:W={encode(n){let e=[];for(let t=0;t<n.length;t++){let r=n.charCodeAt(t);if(r<128)e.push(r);else if(r<2048)e.push(192|r>>6,128|r&63);else if(r>=55296&&r<=56319&&t+1<n.length){let i=n.charCodeAt(++t);r=65536+((r&1023)<<10)+(i&1023),e.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|r&63);}else e.push(224|r>>12,128|r>>6&63,128|r&63);}return new Uint8Array(e)}}),W}function le(){return G||(typeof TextDecoder<"u"?G=new TextDecoder:G={decode(n){let e=n instanceof ArrayBuffer?new Uint8Array(n):new Uint8Array(n.buffer,n.byteOffset,n.byteLength),t="";for(let r=0;r<e.length;){let i=e[r],o;i<128?(o=i,r+=1):(i&224)===192?(o=(i&31)<<6|e[r+1]&63,r+=2):(i&240)===224?(o=(i&15)<<12|(e[r+1]&63)<<6|e[r+2]&63,r+=3):(o=(i&7)<<18|(e[r+1]&63)<<12|(e[r+2]&63)<<6|e[r+3]&63,r+=4),o<=65535?t+=String.fromCharCode(o):(o-=65536,t+=String.fromCharCode(55296+(o>>10),56320+(o&1023)));}return t}}),G}var b=class b{constructor(e=b.DEFAULT_CAPACITY,t=b.DEFAULT_ENDIAN){m(this,"buffer");m(this,"view");m(this,"offset");m(this,"markedOffset");m(this,"limit");m(this,"littleEndian");m(this,"readUInt32",this.readUint32);this.buffer=e===0?J:new ArrayBuffer(e),this.view=e===0?new DataView(J):new DataView(this.buffer),this.offset=0,this.markedOffset=-1,this.limit=e,this.littleEndian=t;}static allocate(e,t){return new b(e,t)}static concat(e,t){let r=0;for(let d=0;d<e.length;++d){let c=e[d];if(c instanceof b)r+=c.limit-c.offset;else if(c instanceof Uint8Array)r+=c.length;else if(c instanceof ArrayBuffer)r+=c.byteLength;else if(Array.isArray(c))r+=c.length;else throw TypeError("Illegal buffer")}if(r===0)return new b(0,t);let i=new b(r,t),o=new Uint8Array(i.buffer),a=0;for(let d=0;d<e.length;++d){let c=e[d];c instanceof b?(o.set(new Uint8Array(c.buffer,c.offset,c.limit-c.offset),a),a+=c.limit-c.offset):c instanceof Uint8Array?(o.set(c,a),a+=c.length):c instanceof ArrayBuffer?(o.set(new Uint8Array(c),a),a+=c.byteLength):(o.set(c,a),a+=c.length);}return i.limit=i.offset=a,i.offset=0,i}static wrap(e,t){if(e instanceof b){let i=e.clone();return i.markedOffset=-1,i}let r;if(e instanceof Uint8Array)r=new b(0,t),e.length>0&&(r.buffer=e.buffer,r.offset=e.byteOffset,r.limit=e.byteOffset+e.byteLength,r.view=new DataView(e.buffer));else if(e instanceof ArrayBuffer)r=new b(0,t),e.byteLength>0&&(r.buffer=e,r.offset=0,r.limit=e.byteLength,r.view=e.byteLength>0?new DataView(e):new DataView(J));else if(Array.isArray(e))r=new b(e.length,t),r.limit=e.length,new Uint8Array(r.buffer).set(e);else throw TypeError("Illegal buffer");return r}writeBytes(e,t){return this.append(e,t)}writeInt8(e,t){let r=typeof t>"u";return r?t=this.offset:t=t,t+1>this.buffer.byteLength&&this.resize(t+1),this.view.setInt8(t,e),r&&(this.offset+=1),this}writeByte(e,t){return this.writeInt8(e,t)}writeUint8(e,t){let r=typeof t>"u";return r?t=this.offset:t=t,t+1>this.buffer.byteLength&&this.resize(t+1),this.view.setUint8(t,e),r&&(this.offset+=1),this}writeUInt8(e,t){return this.writeUint8(e,t)}readUint8(e){let t=typeof e>"u";t?e=this.offset:e=e;let r=this.view.getUint8(e);return t&&(this.offset+=1),r}readUInt8(e){return this.readUint8(e)}writeInt16(e,t){let r=typeof t>"u";return r?t=this.offset:t=t,t+2>this.buffer.byteLength&&this.resize(t+2),this.view.setInt16(t,e,this.littleEndian),r&&(this.offset+=2),this}writeShort(e,t){return this.writeInt16(e,t)}writeUint16(e,t){let r=typeof t>"u";return r?t=this.offset:t=t,t+2>this.buffer.byteLength&&this.resize(t+2),this.view.setUint16(t,e,this.littleEndian),r&&(this.offset+=2),this}writeUInt16(e,t){return this.writeUint16(e,t)}writeInt32(e,t){let r=typeof t>"u";return r?t=this.offset:t=t,t+4>this.buffer.byteLength&&this.resize(t+4),this.view.setInt32(t,e,this.littleEndian),r&&(this.offset+=4),this}writeInt(e,t){return this.writeInt32(e,t)}writeUint32(e,t){let r=typeof t>"u";return r?t=this.offset:t=t,t+4>this.buffer.byteLength&&this.resize(t+4),this.view.setUint32(t,e,this.littleEndian),r&&(this.offset+=4),this}writeUInt32(e,t){return this.writeUint32(e,t)}readUint32(e){let t=typeof e>"u";t?e=this.offset:e=e;let r=this.view.getUint32(e,this.littleEndian);return t&&(this.offset+=4),r}append(e,t){let r=typeof t>"u";r?t=this.offset:t=t;let i;return e instanceof b?(i=new Uint8Array(e.buffer,e.offset,e.limit-e.offset),e.offset+=i.length):e instanceof Uint8Array?i=e:e instanceof ArrayBuffer?i=new Uint8Array(e):i=new Uint8Array(e),i.length<=0?this:(t+i.length>this.buffer.byteLength&&this.resize(t+i.length),new Uint8Array(this.buffer).set(i,t),r&&(this.offset+=i.length),this)}clone(e){let t=new b(0,this.littleEndian);return e?(t.buffer=new ArrayBuffer(this.buffer.byteLength),new Uint8Array(t.buffer).set(new Uint8Array(this.buffer)),t.view=new DataView(t.buffer)):(t.buffer=this.buffer,t.view=this.view),t.offset=this.offset,t.markedOffset=this.markedOffset,t.limit=this.limit,t}copy(e,t){if(e===void 0&&(e=this.offset),t===void 0&&(t=this.limit),e===t)return new b(0,this.littleEndian);let r=t-e,i=new b(r,this.littleEndian);return i.offset=0,i.limit=r,new Uint8Array(i.buffer).set(new Uint8Array(this.buffer).subarray(e,t),0),i}copyTo(e,t,r,i){let o=typeof t>"u",a=typeof r>"u";t=o?e.offset:t,r=a?this.offset:r,i=i===void 0?this.limit:i;let d=i-r;return d===0?e:(e.ensureCapacity(t+d),new Uint8Array(e.buffer).set(new Uint8Array(this.buffer).subarray(r,i),t),a&&(this.offset+=d),o&&(e.offset+=d),this)}ensureCapacity(e){let t=this.buffer.byteLength;return t<e?this.resize((t*=2)>e?t:e):this}flip(){return this.limit=this.offset,this.offset=0,this}resize(e){if(this.buffer.byteLength<e){let t=new ArrayBuffer(e);new Uint8Array(t).set(new Uint8Array(this.buffer)),this.buffer=t,this.view=new DataView(t);}return this}skip(e){return this.offset+=e,this}writeInt64(e,t){let r=typeof t>"u";return r?t=this.offset:t=t,typeof e=="number"&&(e=BigInt(e)),t+8>this.buffer.byteLength&&this.resize(t+8),this.view.setBigInt64(t,e,this.littleEndian),r&&(this.offset+=8),this}writeLong(e,t){return this.writeInt64(e,t)}readInt64(e){let t=typeof e>"u";t?e=this.offset:e=e;let r=this.view.getBigInt64(e,this.littleEndian);return t&&(this.offset+=8),r}readLong(e){return this.readInt64(e)}writeUint64(e,t){let r=typeof t>"u";return r?t=this.offset:t=t,typeof e=="number"&&(e=BigInt(e)),t+8>this.buffer.byteLength&&this.resize(t+8),this.view.setBigUint64(t,e,this.littleEndian),r&&(this.offset+=8),this}writeUInt64(e,t){return this.writeUint64(e,t)}readUint64(e){let t=typeof e>"u";t?e=this.offset:e=e;let r=this.view.getBigUint64(e,this.littleEndian);return t&&(this.offset+=8),r}readUInt64(e){return this.readUint64(e)}toBuffer(e){let t=this.offset,r=this.limit;return !e&&t===0&&r===this.buffer.byteLength?this.buffer:t===r?J:this.buffer.slice(t,r)}toArrayBuffer(e){return this.toBuffer(e)}writeVarint32(e,t){let r=typeof t>"u";r?t=this.offset:t=t;let i=this.calculateVarint32(e);for(t+i>this.buffer.byteLength&&this.resize(t+i),e>>>=0;e>=128;)this.view.setUint8(t++,e&127|128),e>>>=7;return this.view.setUint8(t++,e),r?(this.offset=t,this):i}readVarint32(e){let t=typeof e>"u";typeof e>"u"&&(e=this.offset);let r=0,i=0,o;do o=this.view.getUint8(e++),r<5&&(i|=(o&127)<<7*r),++r;while((o&128)!==0);return i|=0,t?(this.offset=e,i):{value:i,length:r}}calculateVarint32(e){return e=e>>>0,e<128?1:e<16384?2:e<1<<21?3:e<1<<28?4:5}writeVString(e,t){let r=typeof t>"u",i=r?this.offset:t,o=rt().encode(e),a=o.length,d=this.calculateVarint32(a);return i+d+a>this.buffer.byteLength&&this.resize(i+d+a),this.writeVarint32(a,i),i+=d,new Uint8Array(this.buffer).set(o,i),i+=a,r?(this.offset=i,this):i-(t||0)}readVString(e){let t=typeof e>"u";t?e=this.offset:e=e;let r=e,i=this.readVarint32(e),o=i.value,a=i.length;e+=a;let d=le().decode(new Uint8Array(this.buffer,e,o));return e+=o,t?(this.offset=e,d):{string:d,length:e-r}}readUTF8String(e,t){let r=typeof t>"u";r?t=this.offset:t=t;let i=le().decode(new Uint8Array(this.buffer,t,e));return r?(this.offset+=e,i):{string:i,length:e}}};m(b,"LITTLE_ENDIAN",true),m(b,"BIG_ENDIAN",false),m(b,"DEFAULT_CAPACITY",16),m(b,"DEFAULT_ENDIAN",b.BIG_ENDIAN);var _=b;var w={nodes:["https://api.hive.blog","https://api.deathwing.me","https://api.openhive.network","https://techcoderx.com","https://api.syncad.com","https://rpc.mahdiyari.info"],restNodes:["https://hapi.ecency.com","https://api.hive.blog","https://rpc.mahdiyari.info","https://techcoderx.com","https://hiveapi.actifit.io","https://api.c0ff33a.uk"],chain_id:"beeab0de00000000000000000000000000000000000000000000000000000000",address_prefix:"STM",timeout:5e3,broadcastTimeout:15e3,retry:1};var R=class n{constructor(e,t,r){m(this,"data");m(this,"recovery");m(this,"compressed");this.data=e,this.recovery=t,this.compressed=r??true;}static from(e){if(typeof e=="string"){let t=hexToBytes(e),r=parseInt(bytesToHex(t.subarray(0,1)),16)-31,i=true;r<0&&(i=false,r=r+4);let o=t.subarray(1);return new n(o,r,i)}else throw new Error("Expected string for data")}toBuffer(){let e=new Uint8Array(65).fill(0);return this.compressed?e[0]=this.recovery+31&255:e[0]=this.recovery+27&255,e.set(this.data,1),e}customToString(){return bytesToHex(this.toBuffer())}toString(){return this.customToString()}getPublicKey(e){if(e instanceof Uint8Array&&e.length!==32||typeof e=="string"&&e.length!==64)throw new Error("Expected a valid sha256 hash as message");typeof e=="string"&&(e=hexToBytes(e));let t=secp256k1.Signature.fromBytes(this.data,"compact"),r=new secp256k1.Signature(t.r,t.s,this.recovery);return new U(r.recoverPublicKey(e).toBytes())}};var U=class n{constructor(e,t){m(this,"key");m(this,"prefix");this.key=e,this.prefix=t??w.address_prefix;}static fromString(e){let t=w.address_prefix;if(typeof e!="string"||e.length<=t.length)throw new Error("Invalid public key");let r=e.slice(0,t.length);if(r!==t)throw new Error(`Public key must start with ${t}`);let i;try{i=ge.decode(e.slice(t.length));}catch{throw new Error("Invalid public key encoding")}if(i.length!==37)throw new Error("Invalid public key length");let o=i.subarray(0,33),a=i.subarray(33,37),d=ripemd160(o).subarray(0,4);if(!it(a,d))throw new Error("Public key checksum mismatch");try{secp256k1.Point.fromBytes(o);}catch{throw new Error("Invalid public key")}return new n(o,r)}static from(e){return e instanceof n?e:n.fromString(e)}verify(e,t){return typeof t=="string"&&(t=R.from(t)),secp256k1.verify(t.data,e,this.key,{prehash:false,format:"compact"})}toString(){return nt(this.key,this.prefix)}toJSON(){return this.toString()}inspect(){return `PublicKey: ${this.toString()}`}},nt=(n,e)=>{let t=ripemd160(n);return e+ge.encode(new Uint8Array([...n,...t.subarray(0,4)]))},it=(n,e)=>{if(n.byteLength!==e.byteLength)return false;for(let t=0;t<n.byteLength;t++)if(n[t]!==e[t])return false;return true};var Q=class n{constructor(e,t){m(this,"amount");m(this,"symbol");this.amount=e,this.symbol=t==="HIVE"?"STEEM":t==="HBD"?"SBD":t;}static fromString(e,t=null){let[r,i]=e.split(" ");if(["STEEM","VESTS","SBD","TESTS","TBD","HIVE","HBD"].indexOf(i)===-1)throw new Error(`Invalid asset symbol: ${i}`);if(t&&i!==t)throw new Error(`Invalid asset, expected symbol: ${t} got: ${i}`);let o=Number.parseFloat(r);if(!Number.isFinite(o))throw new Error(`Invalid asset amount: ${r}`);return new n(o,i)}static from(e,t){if(e instanceof n){if(t&&e.symbol!==t)throw new Error(`Invalid asset, expected symbol: ${t} got: ${e.symbol}`);return e}else {if(typeof e=="number"&&Number.isFinite(e))return new n(e,t||"STEEM");if(typeof e=="string")return n.fromString(e,t);throw new Error(`Invalid asset '${String(e)}'`)}}getPrecision(){switch(this.symbol){case "TESTS":case "TBD":case "STEEM":case "SBD":case "HBD":case "HIVE":return 3;case "VESTS":return 6;default:return 3}}toString(){return `${this.amount.toFixed(this.getPrecision())} ${this.symbol}`}toJSON(){return this.toString()}};var X=class n{constructor(e){m(this,"buffer");this.buffer=e;}static from(e){return e instanceof n?e:e instanceof Uint8Array?new n(e):typeof e=="string"?new n(hexToBytes(e)):new n(new Uint8Array(e))}toString(){return bytesToHex(this.buffer)}toJSON(){return this.toString()}};var f={vote:0,comment:1,transfer:2,transfer_to_vesting:3,withdraw_vesting:4,limit_order_create:5,limit_order_cancel:6,feed_publish:7,convert:8,account_create:9,account_update:10,witness_update:11,account_witness_vote:12,account_witness_proxy:13,custom:15,delete_comment:17,custom_json:18,comment_options:19,set_withdraw_vesting_route:20,limit_order_create2:21,claim_account:22,create_claimed_account:23,request_account_recovery:24,recover_account:25,change_recovery_account:26,escrow_transfer:27,escrow_dispute:28,escrow_release:29,escrow_approve:31,transfer_to_savings:32,transfer_from_savings:33,cancel_transfer_from_savings:34,decline_voting_rights:36,reset_account:37,set_reset_account:38,claim_reward_balance:39,delegate_vesting_shares:40,account_create_with_delegation:41,witness_set_properties:42,account_update2:43,create_proposal:44,update_proposal_votes:45,remove_proposal:46,update_proposal:47,collateralized_convert:48,recurrent_transfer:49},T=()=>{throw new Error("Void can not be serialized")},s=(n,e)=>{n.writeVString(e);};var at=(n,e)=>{n.writeInt16(e);};var we=(n,e)=>{n.writeInt64(e);},_e=(n,e)=>{n.writeUint8(e);},k=(n,e)=>{n.writeUint16(e);},S=(n,e)=>{n.writeUint32(e);},be=(n,e)=>{n.writeUint64(e);},z=(n,e)=>{n.writeByte(e?1:0);},Ae=n=>(e,t)=>{let[r,i]=t;e.writeVarint32(r),n[r](e,i);},g=(n,e)=>{let t=Q.from(e),r=t.getPrecision();n.writeInt64(Math.round(t.amount*Math.pow(10,r))),n.writeUint8(r);for(let i=0;i<7;i++)n.writeUint8(t.symbol.charCodeAt(i)||0);},F=(n,e)=>{n.writeUint32(Math.floor(new Date(e+"Z").getTime()/1e3));},D=(n,e)=>{e===null||typeof e=="string"&&e.slice(-39)==="1111111111111111111111111111111114T1Anm"?n.append(new Uint8Array(33).fill(0)):n.append(U.from(e).key);},Be=(n=null)=>(e,t)=>{t=X.from(t);let r=t.buffer.length;if(n){if(r!==n)throw new Error(`Unable to serialize binary. Expected ${n} bytes, got ${r}`)}else e.writeVarint32(r);e.append(t.buffer);},ve=Be(),ie=(n,e)=>(t,r)=>{t.writeVarint32(r.length);for(let[i,o]of r)n(t,i),e(t,o);},A=n=>(e,t)=>{e.writeVarint32(t.length);for(let r of t)n(e,r);},P=n=>(e,t)=>{for(let[r,i]of n)try{i(e,t[r]);}catch(o){throw o.message=`${r}: ${o.message}`,o}},K=n=>(e,t)=>{t!==void 0?(e.writeByte(1),n(e,t)):e.writeByte(0);},x=P([["weight_threshold",S],["account_auths",ie(s,k)],["key_auths",ie(D,k)]]),ct=P([["account",s],["weight",k]]),oe=P([["base",g],["quote",g]]),ut=P([["account_creation_fee",g],["maximum_block_size",S],["hbd_interest_rate",k]]),l=(n,e)=>{let t=P(e);return (r,i)=>{r.writeVarint32(n),t(r,i);}},u={};u.account_create=l(f.account_create,[["fee",g],["creator",s],["new_account_name",s],["owner",x],["active",x],["posting",x],["memo_key",D],["json_metadata",s]]);u.account_create_with_delegation=l(f.account_create_with_delegation,[["fee",g],["delegation",g],["creator",s],["new_account_name",s],["owner",x],["active",x],["posting",x],["memo_key",D],["json_metadata",s],["extensions",A(T)]]);u.account_update=l(f.account_update,[["account",s],["owner",K(x)],["active",K(x)],["posting",K(x)],["memo_key",D],["json_metadata",s]]);u.account_witness_proxy=l(f.account_witness_proxy,[["account",s],["proxy",s]]);u.account_witness_vote=l(f.account_witness_vote,[["account",s],["witness",s],["approve",z]]);u.cancel_transfer_from_savings=l(f.cancel_transfer_from_savings,[["from",s],["request_id",S]]);u.change_recovery_account=l(f.change_recovery_account,[["account_to_recover",s],["new_recovery_account",s],["extensions",A(T)]]);u.claim_account=l(f.claim_account,[["creator",s],["fee",g],["extensions",A(T)]]);u.claim_reward_balance=l(f.claim_reward_balance,[["account",s],["reward_hive",g],["reward_hbd",g],["reward_vests",g]]);u.comment=l(f.comment,[["parent_author",s],["parent_permlink",s],["author",s],["permlink",s],["title",s],["body",s],["json_metadata",s]]);u.comment_options=l(f.comment_options,[["author",s],["permlink",s],["max_accepted_payout",g],["percent_hbd",k],["allow_votes",z],["allow_curation_rewards",z],["extensions",A(Ae([P([["beneficiaries",A(ct)]])]))]]);u.convert=l(f.convert,[["owner",s],["requestid",S],["amount",g]]);u.create_claimed_account=l(f.create_claimed_account,[["creator",s],["new_account_name",s],["owner",x],["active",x],["posting",x],["memo_key",D],["json_metadata",s],["extensions",A(T)]]);u.custom=l(f.custom,[["required_auths",A(s)],["id",k],["data",ve]]);u.custom_json=l(f.custom_json,[["required_auths",A(s)],["required_posting_auths",A(s)],["id",s],["json",s]]);u.decline_voting_rights=l(f.decline_voting_rights,[["account",s],["decline",z]]);u.delegate_vesting_shares=l(f.delegate_vesting_shares,[["delegator",s],["delegatee",s],["vesting_shares",g]]);u.delete_comment=l(f.delete_comment,[["author",s],["permlink",s]]);u.escrow_approve=l(f.escrow_approve,[["from",s],["to",s],["agent",s],["who",s],["escrow_id",S],["approve",z]]);u.escrow_dispute=l(f.escrow_dispute,[["from",s],["to",s],["agent",s],["who",s],["escrow_id",S]]);u.escrow_release=l(f.escrow_release,[["from",s],["to",s],["agent",s],["who",s],["receiver",s],["escrow_id",S],["hbd_amount",g],["hive_amount",g]]);u.escrow_transfer=l(f.escrow_transfer,[["from",s],["to",s],["hbd_amount",g],["hive_amount",g],["escrow_id",S],["agent",s],["fee",g],["json_meta",s],["ratification_deadline",F],["escrow_expiration",F]]);u.feed_publish=l(f.feed_publish,[["publisher",s],["exchange_rate",oe]]);u.limit_order_cancel=l(f.limit_order_cancel,[["owner",s],["orderid",S]]);u.limit_order_create=l(f.limit_order_create,[["owner",s],["orderid",S],["amount_to_sell",g],["min_to_receive",g],["fill_or_kill",z],["expiration",F]]);u.limit_order_create2=l(f.limit_order_create2,[["owner",s],["orderid",S],["amount_to_sell",g],["exchange_rate",oe],["fill_or_kill",z],["expiration",F]]);u.recover_account=l(f.recover_account,[["account_to_recover",s],["new_owner_authority",x],["recent_owner_authority",x],["extensions",A(T)]]);u.request_account_recovery=l(f.request_account_recovery,[["recovery_account",s],["account_to_recover",s],["new_owner_authority",x],["extensions",A(T)]]);u.reset_account=l(f.reset_account,[["reset_account",s],["account_to_reset",s],["new_owner_authority",x]]);u.set_reset_account=l(f.set_reset_account,[["account",s],["current_reset_account",s],["reset_account",s]]);u.set_withdraw_vesting_route=l(f.set_withdraw_vesting_route,[["from_account",s],["to_account",s],["percent",k],["auto_vest",z]]);u.transfer=l(f.transfer,[["from",s],["to",s],["amount",g],["memo",s]]);u.transfer_from_savings=l(f.transfer_from_savings,[["from",s],["request_id",S],["to",s],["amount",g],["memo",s]]);u.transfer_to_savings=l(f.transfer_to_savings,[["from",s],["to",s],["amount",g],["memo",s]]);u.transfer_to_vesting=l(f.transfer_to_vesting,[["from",s],["to",s],["amount",g]]);u.vote=l(f.vote,[["voter",s],["author",s],["permlink",s],["weight",at]]);u.withdraw_vesting=l(f.withdraw_vesting,[["account",s],["vesting_shares",g]]);u.witness_update=l(f.witness_update,[["owner",s],["url",s],["block_signing_key",D],["props",ut],["fee",g]]);u.witness_set_properties=l(f.witness_set_properties,[["owner",s],["props",ie(s,ve)],["extensions",A(T)]]);u.account_update2=l(f.account_update2,[["account",s],["owner",K(x)],["active",K(x)],["posting",K(x)],["memo_key",K(D)],["json_metadata",s],["posting_json_metadata",s],["extensions",A(T)]]);u.create_proposal=l(f.create_proposal,[["creator",s],["receiver",s],["start_date",F],["end_date",F],["daily_pay",g],["subject",s],["permlink",s],["extensions",A(T)]]);u.update_proposal_votes=l(f.update_proposal_votes,[["voter",s],["proposal_ids",A(we)],["approve",z],["extensions",A(T)]]);u.remove_proposal=l(f.remove_proposal,[["proposal_owner",s],["proposal_ids",A(we)],["extensions",A(T)]]);var ft=P([["end_date",F]]);u.update_proposal=l(f.update_proposal,[["proposal_id",be],["creator",s],["daily_pay",g],["subject",s],["permlink",s],["extensions",A(Ae([T,ft]))]]);u.collateralized_convert=l(f.collateralized_convert,[["owner",s],["requestid",S],["amount",g]]);u.recurrent_transfer=l(f.recurrent_transfer,[["from",s],["to",s],["amount",g],["memo",s],["recurrence",k],["executions",k],["extensions",A(P([["type",_e],["value",P([["pair_id",_e]])]]))]]);var lt=(n,e)=>{let t=u[e[0]];if(!t)throw new Error(`No serializer for operation: ${e[0]}`);try{t(n,e[1]);}catch(r){throw r.message=`${e[0]}: ${r.message}`,r}},dt=P([["ref_block_num",k],["ref_block_prefix",S],["expiration",F],["operations",A(lt)],["extensions",A(s)]]),ht=P([["from",D],["to",D],["nonce",be],["check",S],["encrypted",Be()]]),L={Asset:g,Memo:ht,Price:oe,PublicKey:D,String:s,Transaction:dt,UInt16:k,UInt32:S};var $=n=>new Promise(e=>setTimeout(e,n));var O=class extends Error{constructor(t){super(t.message);m(this,"name","RPCError");m(this,"data");m(this,"code");m(this,"stack");this.code=t.code,"data"in t&&(this.data=t.data);}},H=class extends Error{constructor(t,r,i=0){super(r);m(this,"node");m(this,"rateLimitMs");this.node=t,this.rateLimitMs=i;}},mt=["ECONNREFUSED","ENOTFOUND","EHOSTUNREACH","EAI_AGAIN"];function yt(n){if(!n)return false;let e=[String(n.message||""),String(n.code||"")],t=n.cause;for(let i=0;t&&i<5;i++)e.push(String(t.code||""),String(t.message||"")),t=t.cause;let r=e.join(" ");return mt.some(i=>r.includes(i))}function pt(n,e){return !!(n===-32603||n<=-32e3&&n>=-32099||n===-32601||n===-32602&&/unable to parse|endpoint data|internal/i.test(e))}function Ue(n){let e=n.indexOf(".");return e>0?n.slice(0,e):n}var gt=2,_t=6e4,xe=12e4,wt=30,Z=class{constructor(){m(this,"health",new Map);}getOrCreate(e){let t=this.health.get(e);return t||(t={consecutiveFailures:0,lastFailureTime:0,rateLimitedUntil:0,apiFailures:new Map,headBlock:0,headBlockUpdatedAt:0},this.health.set(e,t)),t}recordSuccess(e,t){let r=this.getOrCreate(e);r.consecutiveFailures=0,t&&r.apiFailures.delete(t);}recordFailure(e,t){let r=this.getOrCreate(e);if(t){let i=Date.now(),o=r.apiFailures.get(t)??{count:0,cooldownUntil:0,lastFailureTime:0};(o.cooldownUntil>0&&o.cooldownUntil<=i||o.lastFailureTime>0&&i-o.lastFailureTime>3e4)&&(o.count=0,o.cooldownUntil=0),o.count++,o.lastFailureTime=i,o.count>=gt&&(o.cooldownUntil=i+_t),r.apiFailures.set(t,o);}else r.consecutiveFailures++,r.lastFailureTime=Date.now();}recordRateLimit(e,t=1e4){let r=this.getOrCreate(e);r.rateLimitedUntil=Date.now()+t,r.consecutiveFailures++,r.lastFailureTime=Date.now();}recordHeadBlock(e,t){if(!t||!Number.isFinite(t))return;let r=this.getOrCreate(e);r.headBlock=t,r.headBlockUpdatedAt=Date.now();}consensusHeadBlock(){let e=Date.now(),t=[];for(let r of this.health.values())r.headBlock>0&&e-r.headBlockUpdatedAt<=xe&&t.push(r.headBlock);return t.length<2?0:(t.sort((r,i)=>r-i),t[Math.floor((t.length-1)/2)])}isNodeHealthy(e,t){let r=this.health.get(e);if(!r)return true;let i=Date.now();if(r.rateLimitedUntil>i||r.consecutiveFailures>=3&&i-r.lastFailureTime<3e4)return false;if(t){let a=r.apiFailures.get(t);if(a&&a.cooldownUntil>i)return false}let o=this.consensusHeadBlock();return !(o>0&&r.headBlock>0&&i-r.headBlockUpdatedAt<=xe&&o-r.headBlock>wt)}getOrderedNodes(e,t){let r=[],i=[];for(let o of e)this.isNodeHealthy(o,t)?r.push(o):i.push(o);return [...r,...i]}},M=new Z,V=new Z;function Se(n,e,t,r){t instanceof H?t.rateLimitMs>0?n.recordRateLimit(e,t.rateLimitMs):n.recordFailure(e,r):t instanceof O?n.recordFailure(e,r):n.recordFailure(e);}function bt(n,e,t,r){if(!r||typeof r!="object"||!t.includes("get_dynamic_global_properties"))return;let i=r.head_block_number;typeof i=="number"&&n.recordHeadBlock(e,i);}function At(){if(typeof DOMException<"u")return new DOMException("The operation was aborted due to timeout","TimeoutError");let n=new Error("The operation was aborted due to timeout");return n.name="TimeoutError",n}function Ee(n){if(typeof AbortSignal.timeout=="function")return {signal:AbortSignal.timeout(n),cleanup:()=>{}};let e=new AbortController,t=setTimeout(()=>e.abort(At()),n);return {signal:e.signal,cleanup:()=>clearTimeout(t)}}function Te(n,e){if(!e)return {signal:n,cleanup:()=>{}};if(typeof AbortSignal.any=="function")return {signal:AbortSignal.any([n,e]),cleanup:()=>{}};let t=new AbortController;if(n.aborted)return t.abort(n.reason),{signal:t.signal,cleanup:()=>{}};if(e.aborted)return t.abort(e.reason),{signal:t.signal,cleanup:()=>{}};let r=()=>t.abort(n.reason),i=()=>t.abort(e.reason);n.addEventListener("abort",r,{once:true}),e.addEventListener("abort",i,{once:true});let o=()=>{n.removeEventListener("abort",r),e.removeEventListener("abort",i);};return {signal:t.signal,cleanup:o}}var ee=async(n,e,t,r=w.timeout,i=false,o)=>{let a=Math.floor(Math.random()*1e8),d={jsonrpc:"2.0",method:e,params:t,id:a},{signal:c,cleanup:p}=Ee(r),{signal:h,cleanup:y}=Te(c,o),I=()=>{p(),y();};try{let B=await fetch(n,{method:"POST",body:JSON.stringify(d),headers:{"Content-Type":"application/json"},signal:h});if(B.status===429){let N=B.headers.get("Retry-After"),j=N?parseInt(N,10)*1e3:1e4;throw new H(n,"HTTP 429 Rate Limited",j)}if(B.status===503)throw new H(n,"HTTP 503 Service Unavailable");let E=await B.json();if(!E||typeof E.id>"u"||E.id!==a||E.jsonrpc!=="2.0")throw new Error("JSONRPC id mismatch");if("result"in E)return E.result;if("error"in E){let N=E.error;throw "message"in N&&"code"in N?new O(N):E.error}throw E}catch(B){if(B instanceof O||B instanceof H||o?.aborted)throw B;if(i)return ee(n,e,t,r,false,o);throw B}finally{I();}};function Ie(){return $(50+Math.random()*50)}var te=async(n,e=[],t=w.timeout,r=w.retry,i)=>{if(!Array.isArray(w.nodes))throw new Error("config.nodes is not an array");if(w.nodes.length===0)throw new Error("config.nodes is empty");let o=Ue(n),a=new Set,d;for(let c=0;c<=r;c++){let p=M.getOrderedNodes(w.nodes,o),h=p.find(y=>!a.has(y));h||(a.clear(),h=p[0]),a.add(h);try{let y=await ee(h,n,e,t,!1,i);return M.recordSuccess(h,o),bt(M,h,n,y),y}catch(y){if(y instanceof O&&!pt(y.code,y.message)||i?.aborted)throw y;Se(M,h,y,o),d=y,c<r&&await Ie();}}throw d},se=async(n,e=[],t=w.broadcastTimeout,r)=>{if(!Array.isArray(w.nodes))throw new Error("config.nodes is not an array");if(w.nodes.length===0)throw new Error("config.nodes is empty");let i=Ue(n),o=new Set,a;for(let d=0;d<w.nodes.length;d++){let p=M.getOrderedNodes(w.nodes,i).find(h=>!o.has(h));if(!p)break;if(o.add(p),r?.aborted)throw new Error("Aborted");try{let h=await ee(p,n,e,t,!1,r);return M.recordSuccess(p,i),h}catch(h){if(h instanceof O||r?.aborted||(Se(M,p,h,i),a=h,!yt(h)))throw h}}throw a},Bt={balance:"/balance-api",hafah:"/hafah-api",hafbe:"/hafbe-api",hivemind:"/hivemind-api",hivesense:"/hivesense-api",reputation:"/reputation-api","nft-tracker":"/nft-tracker-api",hafsql:"/hafsql",status:"/status-api"};async function vt(n,e,t,r=w.timeout,i=w.retry,o){if(!Array.isArray(w.restNodes))throw new Error("config.restNodes is not an array");if(w.restNodes.length===0)throw new Error("config.restNodes is empty");let a=new Set,d,c=false;for(let p=0;p<=i;p++){let h=V.getOrderedNodes(w.restNodes,n),y=h.find(v=>!a.has(v));y||(a.clear(),y=h[0]),a.add(y);let I=y+Bt[n],B=e,E=t||{},N=new Set;Object.entries(E).forEach(([v,C])=>{B.includes(`{${v}}`)&&(B=B.replace(`{${v}}`,encodeURIComponent(String(C))),N.add(v));});let j=new URL(I+B);if(Object.entries(E).forEach(([v,C])=>{N.has(v)||(Array.isArray(C)?C.forEach(ne=>j.searchParams.append(v,String(ne))):j.searchParams.set(v,String(C)));}),o?.aborted)throw new Error("Aborted");c=false;let{signal:We,cleanup:Ge}=Ee(r),{signal:Qe,cleanup:Xe}=Te(We,o),Ze=()=>{Ge(),Xe();};try{let v=await fetch(j.toString(),{signal:Qe});if(v.status===404)throw new Error("HTTP 404 - Hint: can happen on wrong params");if(v.status===429){let C=v.headers.get("Retry-After"),ne=C?parseInt(C,10)*1e3:1e4;throw V.recordRateLimit(y,ne),c=!0,new Error(`HTTP 429 Rate Limited by ${y}`)}if(v.status===503)throw V.recordFailure(y,n),c=!0,new Error(`HTTP 503 Service Unavailable from ${y}`);if(!v.ok)throw V.recordFailure(y,n),c=!0,new Error(`HTTP ${v.status} from ${y}`);return V.recordSuccess(y,n),v.json()}catch(v){if(v?.message?.includes("HTTP 404"))throw v;c||V.recordFailure(y,n),d=v,p<i&&await Ie();}finally{Ze();}}throw d}var xt=async(n,e=[],t=2,r)=>{if(!Array.isArray(w.nodes))throw new Error("config.nodes is not an Array");if(t>w.nodes.length)throw new Error("quorum > config.nodes.length");let o=(c=>{let p=[...c];for(let h=p.length-1;h>0;h--){let y=Math.floor(Math.random()*(h+1));[p[h],p[y]]=[p[y],p[h]];}return p})(w.nodes),a=Math.min(t,o.length),d=[];for(;a>0&&o.length>0;){let c=o.splice(0,a),p=[],h=[];for(let I=0;I<c.length;I++)p.push(ee(c[I],n,e,void 0,true,r).then(B=>h.push(B)).catch(()=>{}));await Promise.all(p),d.push(...h);let y=Ut(d,t);if(y)return y;if(a=Math.min(t,o.length),a===0)throw new Error("No more nodes available.")}throw new Error("Couldn't reach quorum.")};function Ut(n,e){let t=new Map;for(let i of n){let o=JSON.stringify(i);t.has(o)||t.set(o,[]),t.get(o).push(i);}let r=Array.from(t.values()).find(i=>i.length>=e);return r?r[0]:null}var Et=hexToBytes(w.chain_id),ae=class n{constructor(e){m(this,"transaction");m(this,"expiration",6e4);m(this,"txId");m(this,"createTransaction",async e=>{let t=await te("condenser_api.get_dynamic_global_properties",[]),r=hexToBytes(t.head_block_id),i=Number(new Uint32Array(r.buffer,r.byteOffset+4,1)[0]),o=new Date(Date.now()+e).toISOString().slice(0,-5);this.transaction={expiration:o,extensions:[],operations:[],ref_block_num:t.head_block_number&65535,ref_block_prefix:i,signatures:[]};});e?.transaction&&(e.transaction instanceof n?(this.transaction=e.transaction.transaction,this.expiration=e.transaction.expiration):this.transaction=e.transaction,this.txId=this.digest().txId),e?.expiration&&(this.expiration=e.expiration);}async addOperation(e,t){this.transaction||await this.createTransaction(this.expiration),this.transaction.operations.push([e,t]);}sign(e){if(!this.transaction)throw new Error("First create a transaction by .addOperation()");if(this.transaction){let{digest:t,txId:r}=this.digest();Array.isArray(e)||(e=[e]);for(let i of e){let o=i.sign(t);this.transaction.signatures.push(o.customToString());}return this.txId=r,this.transaction}else throw new Error("No transaction to sign")}async broadcast(e=false){if(!this.transaction)throw new Error("Attempted to broadcast an empty transaction. Add operations by .addOperation()");if(this.transaction.signatures.length===0)throw new Error("Attempted to broadcast a transaction with no signatures. Sign using .sign(keys)");try{await se("condenser_api.broadcast_transaction",[this.transaction]);}catch(o){if(!(o instanceof O&&o.message.includes("Duplicate transaction check failed")))throw o}if(this.txId||(this.txId=this.digest().txId),!e)return {tx_id:this.txId,status:"unknown"};let t=60;await $(1e3);let r=await this.checkStatus(),i=1;for(;r?.status!=="within_irreversible_block"&&r?.status!=="expired_irreversible"&&r?.status!=="too_old"&&i<t;)await $(1e3+i*300),r=await this.checkStatus(),i++;return {tx_id:this.txId,status:r?.status??"unknown"}}digest(){if(!this.transaction)throw new Error("First create a transaction by .addOperation()");let e=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN),t={...this.transaction};try{L.Transaction(e,t);}catch(a){throw new Error("Unable to serialize transaction: "+a)}e.flip();let r=new Uint8Array(e.toBuffer()),i=bytesToHex(sha256(r)).slice(0,40);return {digest:sha256(new Uint8Array([...Et,...r])),txId:i}}addSignature(e){if(!this.transaction)throw new Error("First create a transaction by .create(operations)");if(typeof e!="string")throw new Error("Signature must be string");if(e.length!==130)throw new Error("Signature must be 130 characters long");return this.transaction.signatures.push(e),this.transaction}async checkStatus(){return this.txId||(this.txId=this.digest().txId),te("transaction_status_api.find_transaction",{transaction_id:this.txId,expiration:this.transaction?.expiration})}};var ze=new Uint8Array([128]),Y=class n{constructor(e){m(this,"key");this.key=e;try{secp256k1.getPublicKey(e);}catch{throw new Error("invalid private key")}}static from(e){return typeof e=="string"?n.fromString(e):new n(e)}static fromString(e){return new n(Pt(e).subarray(1))}static fromSeed(e){if(typeof e=="string")if(/^[0-9a-fA-F]+$/.test(e))e=hexToBytes(e);else {let r=[];for(let i=0;i<e.length;i++){let o=e.charCodeAt(i);if(o<128)r.push(o);else if(o<2048)r.push(192|o>>6,128|o&63);else if(o>=55296&&o<=56319&&i+1<e.length){let a=e.charCodeAt(++i);o=65536+((o&1023)<<10)+(a&1023),r.push(240|o>>18,128|o>>12&63,128|o>>6&63,128|o&63);}else r.push(224|o>>12,128|o>>6&63,128|o&63);}e=new Uint8Array(r);}return new n(sha256(e))}static fromLogin(e,t,r="active"){let i=e+r+t;return n.fromSeed(i)}sign(e){let t=secp256k1.sign(e,this.key,{extraEntropy:true,format:"recovered",prehash:false}),r=parseInt(bytesToHex(t.subarray(0,1)),16);return R.from((r+31).toString(16)+bytesToHex(t.subarray(1)))}createPublic(e){return new U(secp256k1.getPublicKey(this.key),e)}toString(){return kt(new Uint8Array([...ze,...this.key]))}inspect(){let e=this.toString();return `PrivateKey: ${e.slice(0,6)}...${e.slice(-6)}`}getSharedSecret(e){let t=secp256k1.getSharedSecret(this.key,e.key);return sha512(t.subarray(1))}static randomKey(){return new n(secp256k1.keygen().secretKey)}},Oe=n=>sha256(sha256(n)),kt=n=>{let e=Oe(n);return ge.encode(new Uint8Array([...n,...e.slice(0,4)]))},Pt=n=>{let e=ge.decode(n);if(!De(e.slice(0,1),ze))throw new Error("Private key network id mismatch");let t=e.slice(-4),r=e.slice(0,-4),i=Oe(r).slice(0,4);if(!De(t,i))throw new Error("Private key checksum mismatch");return r},De=(n,e)=>{if(n===e)return true;if(n.byteLength!==e.byteLength)return false;let t=n.byteLength,r=0;for(;r<t&&n[r]===e[r];)r++;return r===t};var Fe=(n,e,t,r=Ct())=>Ke(n,e,r,t),Re=(n,e,t,r,i)=>Ke(n,e,t,r,i).message,Ke=(n,e,t,r,i)=>{let o=t,a=n.getSharedSecret(e),d=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);d.writeUint64(o),d.append(a),d.flip();let c=sha512(new Uint8Array(d.toBuffer())),p=c.subarray(32,48),h=c.subarray(0,32),y=sha256(c).subarray(0,4),I=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);I.append(y),I.flip();let B=I.readUint32();if(i!==void 0){if(B!==i)throw new Error("Invalid key");r=zt(r,h,p);}else r=Ot(r,h,p);return {nonce:o,message:r,checksum:B}},zt=(n,e,t)=>{let r=n;return r=cbc(e,t).decrypt(r),r},Ot=(n,e,t)=>{let r=n;return r=cbc(e,t).encrypt(r),r},ue=null,Ct=()=>{if(ue===null){let t=secp256k1.utils.randomSecretKey();ue=t[0]<<8|t[1];}let n=BigInt(Date.now()),e=++ue%65536;return n=n<<BigInt(16)|BigInt(e),n};var Me=n=>{let e=Ht(n,33);return new U(e)},Rt=n=>n.readUint64(),Kt=n=>n.readUint32(),Mt=n=>{let e=n.readVarint32(),t=n.copy(n.offset,n.offset+e);return n.skip(e),new Uint8Array(t.toBuffer())},Vt=n=>e=>{let t={},r=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);r.append(e),r.flip();for(let[i,o]of n)try{t[i]=o(r);}catch(a){throw a.message=`${i}: ${a.message}`,a}return t};function Ht(n,e){if(n){let t=n.copy(n.offset,n.offset+e);return n.skip(e),new Uint8Array(t.toBuffer())}else throw Error("No buffer found on first parameter")}var jt=Vt([["from",Me],["to",Me],["nonce",Rt],["check",Kt],["encrypted",Mt]]),Ve={Memo:jt};var je=(n,e,t,r)=>{if(!t.startsWith("#"))return t;t=t.substring(1),qe(),n=Ye(n),e=$t(e);let i=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);i.writeVString(t);let o=new Uint8Array(i.copy(0,i.offset).toBuffer()),{nonce:a,message:d,checksum:c}=Fe(n,e,o,r),p=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);L.Memo(p,{check:c,encrypted:d,from:n.createPublic(),nonce:a,to:e}),p.flip();let h=new Uint8Array(p.toBuffer());return "#"+ge.encode(h)},$e=(n,e)=>{if(!e.startsWith("#"))return e;e=e.substring(1),qe(),n=Ye(n);let t=Ve.Memo(ge.decode(e)),{from:r,to:i,nonce:o,check:a,encrypted:d}=t,p=n.createPublic().toString()===new U(r.key).toString()?new U(i.key):new U(r.key);t=Re(n,p,o,d,a);let h=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);return h.append(t),h.flip(),"#"+h.readVString()},re,qe=()=>{if(re===void 0){let n;re=true;try{let e="5JdeC9P7Pbd1uGdFVEsJ41EkEnADbbHGq6p1BwFxm6txNBsQnsw",r=je(e,"STM8m5UgaFAAYQRuaNejYdS8FVLVp9Ss3K1qAVk5de6F8s3HnVbvA","#memo\u7231");n=$e(e,r);}finally{re=n==="#memo\u7231";}}if(re===false)throw new Error("This environment does not support encryption.")},Ye=n=>typeof n=="string"?Y.fromString(n):n,$t=n=>typeof n=="string"?U.fromString(n):n,qt={decode:$e,encode:je};var Je={};tt(Je,{buildWitnessSetProperties:()=>Xt,makeBitMaskFilter:()=>Gt,operations:()=>Wt,validateUsername:()=>Jt});var Jt=n=>{let e="Account name should ";if(!n)return e+"not be empty.";let t=n.length;if(t<3)return e+"be longer.";if(t>16)return e+"be shorter.";/\./.test(n)&&(e="Each account segment should ");let r=n.split("."),i=r.length;for(let o=0;o<i;o++){let a=r[o];if(!/^[a-z]/.test(a))return e+"start with a lowercase letter.";if(!/^[a-z0-9-]*$/.test(a))return e+"have only lowercase letters, digits, or dashes.";if(!/[a-z0-9]$/.test(a))return e+"end with a lowercase letter or digit.";if(a.length<3)return e+"be longer."}return null},Wt={vote:0,comment:1,transfer:2,transfer_to_vesting:3,withdraw_vesting:4,limit_order_create:5,limit_order_cancel:6,feed_publish:7,convert:8,account_create:9,account_update:10,witness_update:11,account_witness_vote:12,account_witness_proxy:13,pow:14,custom:15,report_over_production:16,delete_comment:17,custom_json:18,comment_options:19,set_withdraw_vesting_route:20,limit_order_create2:21,claim_account:22,create_claimed_account:23,request_account_recovery:24,recover_account:25,change_recovery_account:26,escrow_transfer:27,escrow_dispute:28,escrow_release:29,pow2:30,escrow_approve:31,transfer_to_savings:32,transfer_from_savings:33,cancel_transfer_from_savings:34,custom_binary:35,decline_voting_rights:36,reset_account:37,set_reset_account:38,claim_reward_balance:39,delegate_vesting_shares:40,account_create_with_delegation:41,witness_set_properties:42,account_update2:43,create_proposal:44,update_proposal_votes:45,remove_proposal:46,update_proposal:47,collateralized_convert:48,recurrent_transfer:49,fill_convert_request:50,author_reward:51,curation_reward:52,comment_reward:53,liquidity_reward:54,interest:55,fill_vesting_withdraw:56,fill_order:57,shutdown_witness:58,fill_transfer_from_savings:59,hardfork:60,comment_payout_update:61,return_vesting_delegation:62,comment_benefactor_reward:63,producer_reward:64,clear_null_account_balance:65,proposal_pay:66,sps_fund:67,hardfork_hive:68,hardfork_hive_restore:69,delayed_voting:70,consolidate_treasury_balance:71,effective_comment_vote:72,ineffective_delete_comment:73,sps_convert:74,expired_account_notification:75,changed_recovery_account:76,transfer_to_vesting_completed:77,pow_reward:78,vesting_shares_split:79,account_created:80,fill_collateralized_convert_request:81,system_warning:82,fill_recurrent_transfer:83,failed_recurrent_transfer:84,limit_order_cancelled:85,producer_missed:86,proposal_fee:87,collateralized_convert_immediate_conversion:88,escrow_approved:89,escrow_rejected:90,proxy_cleared:91,declined_voting_rights:92},Gt=n=>n.reduce(Qt,[BigInt(0),BigInt(0)]).map(e=>e!==BigInt(0)?e.toString():null),Qt=([n,e],t)=>t<64?[n|BigInt(1)<<BigInt(t),e]:[n,e|BigInt(1)<<BigInt(t-64)],Xt=(n,e)=>{let t={extensions:[],owner:n,props:[]};for(let r of Object.keys(e)){if(e[r]===void 0)continue;let i;switch(r){case "key":case "new_signing_key":i=L.PublicKey;break;case "account_subsidy_budget":case "account_subsidy_decay":case "maximum_block_size":i=L.UInt32;break;case "hbd_interest_rate":i=L.UInt16;break;case "url":i=L.String;break;case "hbd_exchange_rate":i=L.Price;break;case "account_creation_fee":i=L.Asset;break;default:throw new Error(`Unknown witness prop: ${r}`)}t.props.push([r,Zt(i,e[r])]);}return t.props.sort((r,i)=>r[0].localeCompare(i[0])),["witness_set_properties",t]},Zt=(n,e)=>{let t=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);return n(t,e),t.flip(),bytesToHex(new Uint8Array(t.toBuffer()))};/**
1
+ import {hexToBytes,bytesToHex}from'@noble/hashes/utils.js';import {ripemd160}from'@noble/hashes/legacy.js';import ge from'bs58';import {secp256k1}from'@noble/curves/secp256k1.js';import {sha256,sha512}from'@noble/hashes/sha2.js';import {cbc}from'@noble/ciphers/aes.js';var fe=Object.defineProperty;var et=(n,e,t)=>e in n?fe(n,e,{enumerable:true,configurable:true,writable:true,value:t}):n[e]=t;var tt=(n,e)=>{for(var t in e)fe(n,t,{get:e[t],enumerable:true});};var m=(n,e,t)=>et(n,typeof e!="symbol"?e+"":e,t);var J=new ArrayBuffer(0),W=null,G=null;function rt(){return W||(typeof TextEncoder<"u"?W=new TextEncoder:W={encode(n){let e=[];for(let t=0;t<n.length;t++){let r=n.charCodeAt(t);if(r<128)e.push(r);else if(r<2048)e.push(192|r>>6,128|r&63);else if(r>=55296&&r<=56319&&t+1<n.length){let i=n.charCodeAt(++t);r=65536+((r&1023)<<10)+(i&1023),e.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|r&63);}else e.push(224|r>>12,128|r>>6&63,128|r&63);}return new Uint8Array(e)}}),W}function le(){return G||(typeof TextDecoder<"u"?G=new TextDecoder:G={decode(n){let e=n instanceof ArrayBuffer?new Uint8Array(n):new Uint8Array(n.buffer,n.byteOffset,n.byteLength),t="";for(let r=0;r<e.length;){let i=e[r],s;i<128?(s=i,r+=1):(i&224)===192?(s=(i&31)<<6|e[r+1]&63,r+=2):(i&240)===224?(s=(i&15)<<12|(e[r+1]&63)<<6|e[r+2]&63,r+=3):(s=(i&7)<<18|(e[r+1]&63)<<12|(e[r+2]&63)<<6|e[r+3]&63,r+=4),s<=65535?t+=String.fromCharCode(s):(s-=65536,t+=String.fromCharCode(55296+(s>>10),56320+(s&1023)));}return t}}),G}var b=class b{constructor(e=b.DEFAULT_CAPACITY,t=b.DEFAULT_ENDIAN){m(this,"buffer");m(this,"view");m(this,"offset");m(this,"markedOffset");m(this,"limit");m(this,"littleEndian");m(this,"readUInt32",this.readUint32);this.buffer=e===0?J:new ArrayBuffer(e),this.view=e===0?new DataView(J):new DataView(this.buffer),this.offset=0,this.markedOffset=-1,this.limit=e,this.littleEndian=t;}static allocate(e,t){return new b(e,t)}static concat(e,t){let r=0;for(let d=0;d<e.length;++d){let c=e[d];if(c instanceof b)r+=c.limit-c.offset;else if(c instanceof Uint8Array)r+=c.length;else if(c instanceof ArrayBuffer)r+=c.byteLength;else if(Array.isArray(c))r+=c.length;else throw TypeError("Illegal buffer")}if(r===0)return new b(0,t);let i=new b(r,t),s=new Uint8Array(i.buffer),a=0;for(let d=0;d<e.length;++d){let c=e[d];c instanceof b?(s.set(new Uint8Array(c.buffer,c.offset,c.limit-c.offset),a),a+=c.limit-c.offset):c instanceof Uint8Array?(s.set(c,a),a+=c.length):c instanceof ArrayBuffer?(s.set(new Uint8Array(c),a),a+=c.byteLength):(s.set(c,a),a+=c.length);}return i.limit=i.offset=a,i.offset=0,i}static wrap(e,t){if(e instanceof b){let i=e.clone();return i.markedOffset=-1,i}let r;if(e instanceof Uint8Array)r=new b(0,t),e.length>0&&(r.buffer=e.buffer,r.offset=e.byteOffset,r.limit=e.byteOffset+e.byteLength,r.view=new DataView(e.buffer));else if(e instanceof ArrayBuffer)r=new b(0,t),e.byteLength>0&&(r.buffer=e,r.offset=0,r.limit=e.byteLength,r.view=e.byteLength>0?new DataView(e):new DataView(J));else if(Array.isArray(e))r=new b(e.length,t),r.limit=e.length,new Uint8Array(r.buffer).set(e);else throw TypeError("Illegal buffer");return r}writeBytes(e,t){return this.append(e,t)}writeInt8(e,t){let r=typeof t>"u";return r?t=this.offset:t=t,t+1>this.buffer.byteLength&&this.resize(t+1),this.view.setInt8(t,e),r&&(this.offset+=1),this}writeByte(e,t){return this.writeInt8(e,t)}writeUint8(e,t){let r=typeof t>"u";return r?t=this.offset:t=t,t+1>this.buffer.byteLength&&this.resize(t+1),this.view.setUint8(t,e),r&&(this.offset+=1),this}writeUInt8(e,t){return this.writeUint8(e,t)}readUint8(e){let t=typeof e>"u";t?e=this.offset:e=e;let r=this.view.getUint8(e);return t&&(this.offset+=1),r}readUInt8(e){return this.readUint8(e)}writeInt16(e,t){let r=typeof t>"u";return r?t=this.offset:t=t,t+2>this.buffer.byteLength&&this.resize(t+2),this.view.setInt16(t,e,this.littleEndian),r&&(this.offset+=2),this}writeShort(e,t){return this.writeInt16(e,t)}writeUint16(e,t){let r=typeof t>"u";return r?t=this.offset:t=t,t+2>this.buffer.byteLength&&this.resize(t+2),this.view.setUint16(t,e,this.littleEndian),r&&(this.offset+=2),this}writeUInt16(e,t){return this.writeUint16(e,t)}writeInt32(e,t){let r=typeof t>"u";return r?t=this.offset:t=t,t+4>this.buffer.byteLength&&this.resize(t+4),this.view.setInt32(t,e,this.littleEndian),r&&(this.offset+=4),this}writeInt(e,t){return this.writeInt32(e,t)}writeUint32(e,t){let r=typeof t>"u";return r?t=this.offset:t=t,t+4>this.buffer.byteLength&&this.resize(t+4),this.view.setUint32(t,e,this.littleEndian),r&&(this.offset+=4),this}writeUInt32(e,t){return this.writeUint32(e,t)}readUint32(e){let t=typeof e>"u";t?e=this.offset:e=e;let r=this.view.getUint32(e,this.littleEndian);return t&&(this.offset+=4),r}append(e,t){let r=typeof t>"u";r?t=this.offset:t=t;let i;return e instanceof b?(i=new Uint8Array(e.buffer,e.offset,e.limit-e.offset),e.offset+=i.length):e instanceof Uint8Array?i=e:e instanceof ArrayBuffer?i=new Uint8Array(e):i=new Uint8Array(e),i.length<=0?this:(t+i.length>this.buffer.byteLength&&this.resize(t+i.length),new Uint8Array(this.buffer).set(i,t),r&&(this.offset+=i.length),this)}clone(e){let t=new b(0,this.littleEndian);return e?(t.buffer=new ArrayBuffer(this.buffer.byteLength),new Uint8Array(t.buffer).set(new Uint8Array(this.buffer)),t.view=new DataView(t.buffer)):(t.buffer=this.buffer,t.view=this.view),t.offset=this.offset,t.markedOffset=this.markedOffset,t.limit=this.limit,t}copy(e,t){if(e===void 0&&(e=this.offset),t===void 0&&(t=this.limit),e===t)return new b(0,this.littleEndian);let r=t-e,i=new b(r,this.littleEndian);return i.offset=0,i.limit=r,new Uint8Array(i.buffer).set(new Uint8Array(this.buffer).subarray(e,t),0),i}copyTo(e,t,r,i){let s=typeof t>"u",a=typeof r>"u";t=s?e.offset:t,r=a?this.offset:r,i=i===void 0?this.limit:i;let d=i-r;return d===0?e:(e.ensureCapacity(t+d),new Uint8Array(e.buffer).set(new Uint8Array(this.buffer).subarray(r,i),t),a&&(this.offset+=d),s&&(e.offset+=d),this)}ensureCapacity(e){let t=this.buffer.byteLength;return t<e?this.resize((t*=2)>e?t:e):this}flip(){return this.limit=this.offset,this.offset=0,this}resize(e){if(this.buffer.byteLength<e){let t=new ArrayBuffer(e);new Uint8Array(t).set(new Uint8Array(this.buffer)),this.buffer=t,this.view=new DataView(t);}return this}skip(e){return this.offset+=e,this}writeInt64(e,t){let r=typeof t>"u";return r?t=this.offset:t=t,typeof e=="number"&&(e=BigInt(e)),t+8>this.buffer.byteLength&&this.resize(t+8),this.view.setBigInt64(t,e,this.littleEndian),r&&(this.offset+=8),this}writeLong(e,t){return this.writeInt64(e,t)}readInt64(e){let t=typeof e>"u";t?e=this.offset:e=e;let r=this.view.getBigInt64(e,this.littleEndian);return t&&(this.offset+=8),r}readLong(e){return this.readInt64(e)}writeUint64(e,t){let r=typeof t>"u";return r?t=this.offset:t=t,typeof e=="number"&&(e=BigInt(e)),t+8>this.buffer.byteLength&&this.resize(t+8),this.view.setBigUint64(t,e,this.littleEndian),r&&(this.offset+=8),this}writeUInt64(e,t){return this.writeUint64(e,t)}readUint64(e){let t=typeof e>"u";t?e=this.offset:e=e;let r=this.view.getBigUint64(e,this.littleEndian);return t&&(this.offset+=8),r}readUInt64(e){return this.readUint64(e)}toBuffer(e){let t=this.offset,r=this.limit;return !e&&t===0&&r===this.buffer.byteLength?this.buffer:t===r?J:this.buffer.slice(t,r)}toArrayBuffer(e){return this.toBuffer(e)}writeVarint32(e,t){let r=typeof t>"u";r?t=this.offset:t=t;let i=this.calculateVarint32(e);for(t+i>this.buffer.byteLength&&this.resize(t+i),e>>>=0;e>=128;)this.view.setUint8(t++,e&127|128),e>>>=7;return this.view.setUint8(t++,e),r?(this.offset=t,this):i}readVarint32(e){let t=typeof e>"u";typeof e>"u"&&(e=this.offset);let r=0,i=0,s;do s=this.view.getUint8(e++),r<5&&(i|=(s&127)<<7*r),++r;while((s&128)!==0);return i|=0,t?(this.offset=e,i):{value:i,length:r}}calculateVarint32(e){return e=e>>>0,e<128?1:e<16384?2:e<1<<21?3:e<1<<28?4:5}writeVString(e,t){let r=typeof t>"u",i=r?this.offset:t,s=rt().encode(e),a=s.length,d=this.calculateVarint32(a);return i+d+a>this.buffer.byteLength&&this.resize(i+d+a),this.writeVarint32(a,i),i+=d,new Uint8Array(this.buffer).set(s,i),i+=a,r?(this.offset=i,this):i-(t||0)}readVString(e){let t=typeof e>"u";t?e=this.offset:e=e;let r=e,i=this.readVarint32(e),s=i.value,a=i.length;e+=a;let d=le().decode(new Uint8Array(this.buffer,e,s));return e+=s,t?(this.offset=e,d):{string:d,length:e-r}}readUTF8String(e,t){let r=typeof t>"u";r?t=this.offset:t=t;let i=le().decode(new Uint8Array(this.buffer,t,e));return r?(this.offset+=e,i):{string:i,length:e}}};m(b,"LITTLE_ENDIAN",true),m(b,"BIG_ENDIAN",false),m(b,"DEFAULT_CAPACITY",16),m(b,"DEFAULT_ENDIAN",b.BIG_ENDIAN);var _=b;var w={nodes:["https://api.hive.blog","https://api.deathwing.me","https://api.openhive.network","https://techcoderx.com","https://api.syncad.com","https://rpc.mahdiyari.info"],restNodes:["https://hapi.ecency.com","https://api.hive.blog","https://rpc.mahdiyari.info","https://techcoderx.com","https://hiveapi.actifit.io","https://api.c0ff33a.uk"],chain_id:"beeab0de00000000000000000000000000000000000000000000000000000000",address_prefix:"STM",timeout:5e3,broadcastTimeout:15e3,retry:1},nt=n=>{let e=[...new Set(n.map(t=>t.trim()).filter(t=>t.length>0&&/^https?:\/\/.+/.test(t)))];e.length&&(w.nodes=e);};var R=class n{constructor(e,t,r){m(this,"data");m(this,"recovery");m(this,"compressed");this.data=e,this.recovery=t,this.compressed=r??true;}static from(e){if(typeof e=="string"){let t=hexToBytes(e),r=parseInt(bytesToHex(t.subarray(0,1)),16)-31,i=true;r<0&&(i=false,r=r+4);let s=t.subarray(1);return new n(s,r,i)}else throw new Error("Expected string for data")}toBuffer(){let e=new Uint8Array(65).fill(0);return this.compressed?e[0]=this.recovery+31&255:e[0]=this.recovery+27&255,e.set(this.data,1),e}customToString(){return bytesToHex(this.toBuffer())}toString(){return this.customToString()}getPublicKey(e){if(e instanceof Uint8Array&&e.length!==32||typeof e=="string"&&e.length!==64)throw new Error("Expected a valid sha256 hash as message");typeof e=="string"&&(e=hexToBytes(e));let t=secp256k1.Signature.fromBytes(this.data,"compact"),r=new secp256k1.Signature(t.r,t.s,this.recovery);return new U(r.recoverPublicKey(e).toBytes())}};var U=class n{constructor(e,t){m(this,"key");m(this,"prefix");this.key=e,this.prefix=t??w.address_prefix;}static fromString(e){let t=w.address_prefix;if(typeof e!="string"||e.length<=t.length)throw new Error("Invalid public key");let r=e.slice(0,t.length);if(r!==t)throw new Error(`Public key must start with ${t}`);let i;try{i=ge.decode(e.slice(t.length));}catch{throw new Error("Invalid public key encoding")}if(i.length!==37)throw new Error("Invalid public key length");let s=i.subarray(0,33),a=i.subarray(33,37),d=ripemd160(s).subarray(0,4);if(!st(a,d))throw new Error("Public key checksum mismatch");try{secp256k1.Point.fromBytes(s);}catch{throw new Error("Invalid public key")}return new n(s,r)}static from(e){return e instanceof n?e:n.fromString(e)}verify(e,t){return typeof t=="string"&&(t=R.from(t)),secp256k1.verify(t.data,e,this.key,{prehash:false,format:"compact"})}toString(){return it(this.key,this.prefix)}toJSON(){return this.toString()}inspect(){return `PublicKey: ${this.toString()}`}},it=(n,e)=>{let t=ripemd160(n);return e+ge.encode(new Uint8Array([...n,...t.subarray(0,4)]))},st=(n,e)=>{if(n.byteLength!==e.byteLength)return false;for(let t=0;t<n.byteLength;t++)if(n[t]!==e[t])return false;return true};var Q=class n{constructor(e,t){m(this,"amount");m(this,"symbol");this.amount=e,this.symbol=t==="HIVE"?"STEEM":t==="HBD"?"SBD":t;}static fromString(e,t=null){let[r,i]=e.split(" ");if(["STEEM","VESTS","SBD","TESTS","TBD","HIVE","HBD"].indexOf(i)===-1)throw new Error(`Invalid asset symbol: ${i}`);if(t&&i!==t)throw new Error(`Invalid asset, expected symbol: ${t} got: ${i}`);let s=Number.parseFloat(r);if(!Number.isFinite(s))throw new Error(`Invalid asset amount: ${r}`);return new n(s,i)}static from(e,t){if(e instanceof n){if(t&&e.symbol!==t)throw new Error(`Invalid asset, expected symbol: ${t} got: ${e.symbol}`);return e}else {if(typeof e=="number"&&Number.isFinite(e))return new n(e,t||"STEEM");if(typeof e=="string")return n.fromString(e,t);throw new Error(`Invalid asset '${String(e)}'`)}}getPrecision(){switch(this.symbol){case "TESTS":case "TBD":case "STEEM":case "SBD":case "HBD":case "HIVE":return 3;case "VESTS":return 6;default:return 3}}toString(){return `${this.amount.toFixed(this.getPrecision())} ${this.symbol}`}toJSON(){return this.toString()}};var X=class n{constructor(e){m(this,"buffer");this.buffer=e;}static from(e){return e instanceof n?e:e instanceof Uint8Array?new n(e):typeof e=="string"?new n(hexToBytes(e)):new n(new Uint8Array(e))}toString(){return bytesToHex(this.buffer)}toJSON(){return this.toString()}};var f={vote:0,comment:1,transfer:2,transfer_to_vesting:3,withdraw_vesting:4,limit_order_create:5,limit_order_cancel:6,feed_publish:7,convert:8,account_create:9,account_update:10,witness_update:11,account_witness_vote:12,account_witness_proxy:13,custom:15,delete_comment:17,custom_json:18,comment_options:19,set_withdraw_vesting_route:20,limit_order_create2:21,claim_account:22,create_claimed_account:23,request_account_recovery:24,recover_account:25,change_recovery_account:26,escrow_transfer:27,escrow_dispute:28,escrow_release:29,escrow_approve:31,transfer_to_savings:32,transfer_from_savings:33,cancel_transfer_from_savings:34,decline_voting_rights:36,reset_account:37,set_reset_account:38,claim_reward_balance:39,delegate_vesting_shares:40,account_create_with_delegation:41,witness_set_properties:42,account_update2:43,create_proposal:44,update_proposal_votes:45,remove_proposal:46,update_proposal:47,collateralized_convert:48,recurrent_transfer:49},T=()=>{throw new Error("Void can not be serialized")},o=(n,e)=>{n.writeVString(e);};var ct=(n,e)=>{n.writeInt16(e);};var we=(n,e)=>{n.writeInt64(e);},_e=(n,e)=>{n.writeUint8(e);},k=(n,e)=>{n.writeUint16(e);},S=(n,e)=>{n.writeUint32(e);},be=(n,e)=>{n.writeUint64(e);},z=(n,e)=>{n.writeByte(e?1:0);},Ae=n=>(e,t)=>{let[r,i]=t;e.writeVarint32(r),n[r](e,i);},g=(n,e)=>{let t=Q.from(e),r=t.getPrecision();n.writeInt64(Math.round(t.amount*Math.pow(10,r))),n.writeUint8(r);for(let i=0;i<7;i++)n.writeUint8(t.symbol.charCodeAt(i)||0);},F=(n,e)=>{n.writeUint32(Math.floor(new Date(e+"Z").getTime()/1e3));},N=(n,e)=>{e===null||typeof e=="string"&&e.slice(-39)==="1111111111111111111111111111111114T1Anm"?n.append(new Uint8Array(33).fill(0)):n.append(U.from(e).key);},Be=(n=null)=>(e,t)=>{t=X.from(t);let r=t.buffer.length;if(n){if(r!==n)throw new Error(`Unable to serialize binary. Expected ${n} bytes, got ${r}`)}else e.writeVarint32(r);e.append(t.buffer);},ve=Be(),ie=(n,e)=>(t,r)=>{t.writeVarint32(r.length);for(let[i,s]of r)n(t,i),e(t,s);},A=n=>(e,t)=>{e.writeVarint32(t.length);for(let r of t)n(e,r);},P=n=>(e,t)=>{for(let[r,i]of n)try{i(e,t[r]);}catch(s){throw s.message=`${r}: ${s.message}`,s}},K=n=>(e,t)=>{t!==void 0?(e.writeByte(1),n(e,t)):e.writeByte(0);},x=P([["weight_threshold",S],["account_auths",ie(o,k)],["key_auths",ie(N,k)]]),ut=P([["account",o],["weight",k]]),se=P([["base",g],["quote",g]]),ft=P([["account_creation_fee",g],["maximum_block_size",S],["hbd_interest_rate",k]]),l=(n,e)=>{let t=P(e);return (r,i)=>{r.writeVarint32(n),t(r,i);}},u={};u.account_create=l(f.account_create,[["fee",g],["creator",o],["new_account_name",o],["owner",x],["active",x],["posting",x],["memo_key",N],["json_metadata",o]]);u.account_create_with_delegation=l(f.account_create_with_delegation,[["fee",g],["delegation",g],["creator",o],["new_account_name",o],["owner",x],["active",x],["posting",x],["memo_key",N],["json_metadata",o],["extensions",A(T)]]);u.account_update=l(f.account_update,[["account",o],["owner",K(x)],["active",K(x)],["posting",K(x)],["memo_key",N],["json_metadata",o]]);u.account_witness_proxy=l(f.account_witness_proxy,[["account",o],["proxy",o]]);u.account_witness_vote=l(f.account_witness_vote,[["account",o],["witness",o],["approve",z]]);u.cancel_transfer_from_savings=l(f.cancel_transfer_from_savings,[["from",o],["request_id",S]]);u.change_recovery_account=l(f.change_recovery_account,[["account_to_recover",o],["new_recovery_account",o],["extensions",A(T)]]);u.claim_account=l(f.claim_account,[["creator",o],["fee",g],["extensions",A(T)]]);u.claim_reward_balance=l(f.claim_reward_balance,[["account",o],["reward_hive",g],["reward_hbd",g],["reward_vests",g]]);u.comment=l(f.comment,[["parent_author",o],["parent_permlink",o],["author",o],["permlink",o],["title",o],["body",o],["json_metadata",o]]);u.comment_options=l(f.comment_options,[["author",o],["permlink",o],["max_accepted_payout",g],["percent_hbd",k],["allow_votes",z],["allow_curation_rewards",z],["extensions",A(Ae([P([["beneficiaries",A(ut)]])]))]]);u.convert=l(f.convert,[["owner",o],["requestid",S],["amount",g]]);u.create_claimed_account=l(f.create_claimed_account,[["creator",o],["new_account_name",o],["owner",x],["active",x],["posting",x],["memo_key",N],["json_metadata",o],["extensions",A(T)]]);u.custom=l(f.custom,[["required_auths",A(o)],["id",k],["data",ve]]);u.custom_json=l(f.custom_json,[["required_auths",A(o)],["required_posting_auths",A(o)],["id",o],["json",o]]);u.decline_voting_rights=l(f.decline_voting_rights,[["account",o],["decline",z]]);u.delegate_vesting_shares=l(f.delegate_vesting_shares,[["delegator",o],["delegatee",o],["vesting_shares",g]]);u.delete_comment=l(f.delete_comment,[["author",o],["permlink",o]]);u.escrow_approve=l(f.escrow_approve,[["from",o],["to",o],["agent",o],["who",o],["escrow_id",S],["approve",z]]);u.escrow_dispute=l(f.escrow_dispute,[["from",o],["to",o],["agent",o],["who",o],["escrow_id",S]]);u.escrow_release=l(f.escrow_release,[["from",o],["to",o],["agent",o],["who",o],["receiver",o],["escrow_id",S],["hbd_amount",g],["hive_amount",g]]);u.escrow_transfer=l(f.escrow_transfer,[["from",o],["to",o],["hbd_amount",g],["hive_amount",g],["escrow_id",S],["agent",o],["fee",g],["json_meta",o],["ratification_deadline",F],["escrow_expiration",F]]);u.feed_publish=l(f.feed_publish,[["publisher",o],["exchange_rate",se]]);u.limit_order_cancel=l(f.limit_order_cancel,[["owner",o],["orderid",S]]);u.limit_order_create=l(f.limit_order_create,[["owner",o],["orderid",S],["amount_to_sell",g],["min_to_receive",g],["fill_or_kill",z],["expiration",F]]);u.limit_order_create2=l(f.limit_order_create2,[["owner",o],["orderid",S],["amount_to_sell",g],["exchange_rate",se],["fill_or_kill",z],["expiration",F]]);u.recover_account=l(f.recover_account,[["account_to_recover",o],["new_owner_authority",x],["recent_owner_authority",x],["extensions",A(T)]]);u.request_account_recovery=l(f.request_account_recovery,[["recovery_account",o],["account_to_recover",o],["new_owner_authority",x],["extensions",A(T)]]);u.reset_account=l(f.reset_account,[["reset_account",o],["account_to_reset",o],["new_owner_authority",x]]);u.set_reset_account=l(f.set_reset_account,[["account",o],["current_reset_account",o],["reset_account",o]]);u.set_withdraw_vesting_route=l(f.set_withdraw_vesting_route,[["from_account",o],["to_account",o],["percent",k],["auto_vest",z]]);u.transfer=l(f.transfer,[["from",o],["to",o],["amount",g],["memo",o]]);u.transfer_from_savings=l(f.transfer_from_savings,[["from",o],["request_id",S],["to",o],["amount",g],["memo",o]]);u.transfer_to_savings=l(f.transfer_to_savings,[["from",o],["to",o],["amount",g],["memo",o]]);u.transfer_to_vesting=l(f.transfer_to_vesting,[["from",o],["to",o],["amount",g]]);u.vote=l(f.vote,[["voter",o],["author",o],["permlink",o],["weight",ct]]);u.withdraw_vesting=l(f.withdraw_vesting,[["account",o],["vesting_shares",g]]);u.witness_update=l(f.witness_update,[["owner",o],["url",o],["block_signing_key",N],["props",ft],["fee",g]]);u.witness_set_properties=l(f.witness_set_properties,[["owner",o],["props",ie(o,ve)],["extensions",A(T)]]);u.account_update2=l(f.account_update2,[["account",o],["owner",K(x)],["active",K(x)],["posting",K(x)],["memo_key",K(N)],["json_metadata",o],["posting_json_metadata",o],["extensions",A(T)]]);u.create_proposal=l(f.create_proposal,[["creator",o],["receiver",o],["start_date",F],["end_date",F],["daily_pay",g],["subject",o],["permlink",o],["extensions",A(T)]]);u.update_proposal_votes=l(f.update_proposal_votes,[["voter",o],["proposal_ids",A(we)],["approve",z],["extensions",A(T)]]);u.remove_proposal=l(f.remove_proposal,[["proposal_owner",o],["proposal_ids",A(we)],["extensions",A(T)]]);var lt=P([["end_date",F]]);u.update_proposal=l(f.update_proposal,[["proposal_id",be],["creator",o],["daily_pay",g],["subject",o],["permlink",o],["extensions",A(Ae([T,lt]))]]);u.collateralized_convert=l(f.collateralized_convert,[["owner",o],["requestid",S],["amount",g]]);u.recurrent_transfer=l(f.recurrent_transfer,[["from",o],["to",o],["amount",g],["memo",o],["recurrence",k],["executions",k],["extensions",A(P([["type",_e],["value",P([["pair_id",_e]])]]))]]);var dt=(n,e)=>{let t=u[e[0]];if(!t)throw new Error(`No serializer for operation: ${e[0]}`);try{t(n,e[1]);}catch(r){throw r.message=`${e[0]}: ${r.message}`,r}},ht=P([["ref_block_num",k],["ref_block_prefix",S],["expiration",F],["operations",A(dt)],["extensions",A(o)]]),mt=P([["from",N],["to",N],["nonce",be],["check",S],["encrypted",Be()]]),L={Asset:g,Memo:mt,Price:se,PublicKey:N,String:o,Transaction:ht,UInt16:k,UInt32:S};var $=n=>new Promise(e=>setTimeout(e,n));var O=class extends Error{constructor(t){super(t.message);m(this,"name","RPCError");m(this,"data");m(this,"code");m(this,"stack");this.code=t.code,"data"in t&&(this.data=t.data);}},H=class extends Error{constructor(t,r,i=0){super(r);m(this,"node");m(this,"rateLimitMs");this.node=t,this.rateLimitMs=i;}},yt=["ECONNREFUSED","ENOTFOUND","EHOSTUNREACH","EAI_AGAIN"];function pt(n){if(!n)return false;let e=[String(n.message||""),String(n.code||"")],t=n.cause;for(let i=0;t&&i<5;i++)e.push(String(t.code||""),String(t.message||"")),t=t.cause;let r=e.join(" ");return yt.some(i=>r.includes(i))}function gt(n,e){return !!(n===-32603||n<=-32e3&&n>=-32099||n===-32601||n===-32602&&/unable to parse|endpoint data|internal/i.test(e))}function Ue(n){let e=n.indexOf(".");return e>0?n.slice(0,e):n}var _t=2,wt=6e4,xe=12e4,bt=30,Z=class{constructor(){m(this,"health",new Map);}getOrCreate(e){let t=this.health.get(e);return t||(t={consecutiveFailures:0,lastFailureTime:0,rateLimitedUntil:0,apiFailures:new Map,headBlock:0,headBlockUpdatedAt:0},this.health.set(e,t)),t}recordSuccess(e,t){let r=this.getOrCreate(e);r.consecutiveFailures=0,t&&r.apiFailures.delete(t);}recordFailure(e,t){let r=this.getOrCreate(e);if(t){let i=Date.now(),s=r.apiFailures.get(t)??{count:0,cooldownUntil:0,lastFailureTime:0};(s.cooldownUntil>0&&s.cooldownUntil<=i||s.lastFailureTime>0&&i-s.lastFailureTime>3e4)&&(s.count=0,s.cooldownUntil=0),s.count++,s.lastFailureTime=i,s.count>=_t&&(s.cooldownUntil=i+wt),r.apiFailures.set(t,s);}else r.consecutiveFailures++,r.lastFailureTime=Date.now();}recordRateLimit(e,t=1e4){let r=this.getOrCreate(e);r.rateLimitedUntil=Date.now()+t,r.consecutiveFailures++,r.lastFailureTime=Date.now();}recordHeadBlock(e,t){if(!t||!Number.isFinite(t))return;let r=this.getOrCreate(e);r.headBlock=t,r.headBlockUpdatedAt=Date.now();}consensusHeadBlock(){let e=Date.now(),t=[];for(let r of this.health.values())r.headBlock>0&&e-r.headBlockUpdatedAt<=xe&&t.push(r.headBlock);return t.length<2?0:(t.sort((r,i)=>r-i),t[Math.floor((t.length-1)/2)])}isNodeHealthy(e,t){let r=this.health.get(e);if(!r)return true;let i=Date.now();if(r.rateLimitedUntil>i||r.consecutiveFailures>=3&&i-r.lastFailureTime<3e4)return false;if(t){let a=r.apiFailures.get(t);if(a&&a.cooldownUntil>i)return false}let s=this.consensusHeadBlock();return !(s>0&&r.headBlock>0&&i-r.headBlockUpdatedAt<=xe&&s-r.headBlock>bt)}getOrderedNodes(e,t){let r=[],i=[];for(let s of e)this.isNodeHealthy(s,t)?r.push(s):i.push(s);return [...r,...i]}},M=new Z,V=new Z;function Se(n,e,t,r){t instanceof H?t.rateLimitMs>0?n.recordRateLimit(e,t.rateLimitMs):n.recordFailure(e,r):t instanceof O?n.recordFailure(e,r):n.recordFailure(e);}function At(n,e,t,r){if(!r||typeof r!="object"||!t.includes("get_dynamic_global_properties"))return;let i=r.head_block_number;typeof i=="number"&&n.recordHeadBlock(e,i);}function Bt(){if(typeof DOMException<"u")return new DOMException("The operation was aborted due to timeout","TimeoutError");let n=new Error("The operation was aborted due to timeout");return n.name="TimeoutError",n}function Ee(n){if(typeof AbortSignal.timeout=="function")return {signal:AbortSignal.timeout(n),cleanup:()=>{}};let e=new AbortController,t=setTimeout(()=>e.abort(Bt()),n);return {signal:e.signal,cleanup:()=>clearTimeout(t)}}function Te(n,e){if(!e)return {signal:n,cleanup:()=>{}};if(typeof AbortSignal.any=="function")return {signal:AbortSignal.any([n,e]),cleanup:()=>{}};let t=new AbortController;if(n.aborted)return t.abort(n.reason),{signal:t.signal,cleanup:()=>{}};if(e.aborted)return t.abort(e.reason),{signal:t.signal,cleanup:()=>{}};let r=()=>t.abort(n.reason),i=()=>t.abort(e.reason);n.addEventListener("abort",r,{once:true}),e.addEventListener("abort",i,{once:true});let s=()=>{n.removeEventListener("abort",r),e.removeEventListener("abort",i);};return {signal:t.signal,cleanup:s}}var ee=async(n,e,t,r=w.timeout,i=false,s)=>{let a=Math.floor(Math.random()*1e8),d={jsonrpc:"2.0",method:e,params:t,id:a},{signal:c,cleanup:p}=Ee(r),{signal:h,cleanup:y}=Te(c,s),I=()=>{p(),y();};try{let B=await fetch(n,{method:"POST",body:JSON.stringify(d),headers:{"Content-Type":"application/json"},signal:h});if(B.status===429){let D=B.headers.get("Retry-After"),j=D?parseInt(D,10)*1e3:1e4;throw new H(n,"HTTP 429 Rate Limited",j)}if(B.status===503)throw new H(n,"HTTP 503 Service Unavailable");let E=await B.json();if(!E||typeof E.id>"u"||E.id!==a||E.jsonrpc!=="2.0")throw new Error("JSONRPC id mismatch");if("result"in E)return E.result;if("error"in E){let D=E.error;throw "message"in D&&"code"in D?new O(D):E.error}throw E}catch(B){if(B instanceof O||B instanceof H||s?.aborted)throw B;if(i)return ee(n,e,t,r,false,s);throw B}finally{I();}};function Ie(){return $(50+Math.random()*50)}var te=async(n,e=[],t=w.timeout,r=w.retry,i)=>{if(!Array.isArray(w.nodes))throw new Error("config.nodes is not an array");if(w.nodes.length===0)throw new Error("config.nodes is empty");let s=Ue(n),a=new Set,d;for(let c=0;c<=r;c++){let p=M.getOrderedNodes(w.nodes,s),h=p.find(y=>!a.has(y));h||(a.clear(),h=p[0]),a.add(h);try{let y=await ee(h,n,e,t,!1,i);return M.recordSuccess(h,s),At(M,h,n,y),y}catch(y){if(y instanceof O&&!gt(y.code,y.message)||i?.aborted)throw y;Se(M,h,y,s),d=y,c<r&&await Ie();}}throw d},oe=async(n,e=[],t=w.broadcastTimeout,r)=>{if(!Array.isArray(w.nodes))throw new Error("config.nodes is not an array");if(w.nodes.length===0)throw new Error("config.nodes is empty");let i=Ue(n),s=new Set,a;for(let d=0;d<w.nodes.length;d++){let p=M.getOrderedNodes(w.nodes,i).find(h=>!s.has(h));if(!p)break;if(s.add(p),r?.aborted)throw new Error("Aborted");try{let h=await ee(p,n,e,t,!1,r);return M.recordSuccess(p,i),h}catch(h){if(h instanceof O||r?.aborted||(Se(M,p,h,i),a=h,!pt(h)))throw h}}throw a},vt={balance:"/balance-api",hafah:"/hafah-api",hafbe:"/hafbe-api",hivemind:"/hivemind-api",hivesense:"/hivesense-api",reputation:"/reputation-api","nft-tracker":"/nft-tracker-api",hafsql:"/hafsql",status:"/status-api"};async function xt(n,e,t,r=w.timeout,i=w.retry,s){if(!Array.isArray(w.restNodes))throw new Error("config.restNodes is not an array");if(w.restNodes.length===0)throw new Error("config.restNodes is empty");let a=new Set,d,c=false;for(let p=0;p<=i;p++){let h=V.getOrderedNodes(w.restNodes,n),y=h.find(v=>!a.has(v));y||(a.clear(),y=h[0]),a.add(y);let I=y+vt[n],B=e,E=t||{},D=new Set;Object.entries(E).forEach(([v,C])=>{B.includes(`{${v}}`)&&(B=B.replace(`{${v}}`,encodeURIComponent(String(C))),D.add(v));});let j=new URL(I+B);if(Object.entries(E).forEach(([v,C])=>{D.has(v)||(Array.isArray(C)?C.forEach(ne=>j.searchParams.append(v,String(ne))):j.searchParams.set(v,String(C)));}),s?.aborted)throw new Error("Aborted");c=false;let{signal:We,cleanup:Ge}=Ee(r),{signal:Qe,cleanup:Xe}=Te(We,s),Ze=()=>{Ge(),Xe();};try{let v=await fetch(j.toString(),{signal:Qe});if(v.status===404)throw new Error("HTTP 404 - Hint: can happen on wrong params");if(v.status===429){let C=v.headers.get("Retry-After"),ne=C?parseInt(C,10)*1e3:1e4;throw V.recordRateLimit(y,ne),c=!0,new Error(`HTTP 429 Rate Limited by ${y}`)}if(v.status===503)throw V.recordFailure(y,n),c=!0,new Error(`HTTP 503 Service Unavailable from ${y}`);if(!v.ok)throw V.recordFailure(y,n),c=!0,new Error(`HTTP ${v.status} from ${y}`);return V.recordSuccess(y,n),v.json()}catch(v){if(v?.message?.includes("HTTP 404"))throw v;c||V.recordFailure(y,n),d=v,p<i&&await Ie();}finally{Ze();}}throw d}var Ut=async(n,e=[],t=2,r)=>{if(!Array.isArray(w.nodes))throw new Error("config.nodes is not an Array");if(t>w.nodes.length)throw new Error("quorum > config.nodes.length");let s=(c=>{let p=[...c];for(let h=p.length-1;h>0;h--){let y=Math.floor(Math.random()*(h+1));[p[h],p[y]]=[p[y],p[h]];}return p})(w.nodes),a=Math.min(t,s.length),d=[];for(;a>0&&s.length>0;){let c=s.splice(0,a),p=[],h=[];for(let I=0;I<c.length;I++)p.push(ee(c[I],n,e,void 0,true,r).then(B=>h.push(B)).catch(()=>{}));await Promise.all(p),d.push(...h);let y=St(d,t);if(y)return y;if(a=Math.min(t,s.length),a===0)throw new Error("No more nodes available.")}throw new Error("Couldn't reach quorum.")};function St(n,e){let t=new Map;for(let i of n){let s=JSON.stringify(i);t.has(s)||t.set(s,[]),t.get(s).push(i);}let r=Array.from(t.values()).find(i=>i.length>=e);return r?r[0]:null}var Tt=hexToBytes(w.chain_id),ae=class n{constructor(e){m(this,"transaction");m(this,"expiration",6e4);m(this,"txId");m(this,"createTransaction",async e=>{let t=await te("condenser_api.get_dynamic_global_properties",[]),r=hexToBytes(t.head_block_id),i=Number(new Uint32Array(r.buffer,r.byteOffset+4,1)[0]),s=new Date(Date.now()+e).toISOString().slice(0,-5);this.transaction={expiration:s,extensions:[],operations:[],ref_block_num:t.head_block_number&65535,ref_block_prefix:i,signatures:[]};});e?.transaction&&(e.transaction instanceof n?(this.transaction=e.transaction.transaction,this.expiration=e.transaction.expiration):this.transaction=e.transaction,this.txId=this.digest().txId),e?.expiration&&(this.expiration=e.expiration);}async addOperation(e,t){this.transaction||await this.createTransaction(this.expiration),this.transaction.operations.push([e,t]);}sign(e){if(!this.transaction)throw new Error("First create a transaction by .addOperation()");if(this.transaction){let{digest:t,txId:r}=this.digest();Array.isArray(e)||(e=[e]);for(let i of e){let s=i.sign(t);this.transaction.signatures.push(s.customToString());}return this.txId=r,this.transaction}else throw new Error("No transaction to sign")}async broadcast(e=false){if(!this.transaction)throw new Error("Attempted to broadcast an empty transaction. Add operations by .addOperation()");if(this.transaction.signatures.length===0)throw new Error("Attempted to broadcast a transaction with no signatures. Sign using .sign(keys)");try{await oe("condenser_api.broadcast_transaction",[this.transaction]);}catch(s){if(!(s instanceof O&&s.message.includes("Duplicate transaction check failed")))throw s}if(this.txId||(this.txId=this.digest().txId),!e)return {tx_id:this.txId,status:"unknown"};let t=60;await $(1e3);let r=await this.checkStatus(),i=1;for(;r?.status!=="within_irreversible_block"&&r?.status!=="expired_irreversible"&&r?.status!=="too_old"&&i<t;)await $(1e3+i*300),r=await this.checkStatus(),i++;return {tx_id:this.txId,status:r?.status??"unknown"}}digest(){if(!this.transaction)throw new Error("First create a transaction by .addOperation()");let e=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN),t={...this.transaction};try{L.Transaction(e,t);}catch(a){throw new Error("Unable to serialize transaction: "+a)}e.flip();let r=new Uint8Array(e.toBuffer()),i=bytesToHex(sha256(r)).slice(0,40);return {digest:sha256(new Uint8Array([...Tt,...r])),txId:i}}addSignature(e){if(!this.transaction)throw new Error("First create a transaction by .create(operations)");if(typeof e!="string")throw new Error("Signature must be string");if(e.length!==130)throw new Error("Signature must be 130 characters long");return this.transaction.signatures.push(e),this.transaction}async checkStatus(){return this.txId||(this.txId=this.digest().txId),te("transaction_status_api.find_transaction",{transaction_id:this.txId,expiration:this.transaction?.expiration})}};var ze=new Uint8Array([128]),Y=class n{constructor(e){m(this,"key");this.key=e;try{secp256k1.getPublicKey(e);}catch{throw new Error("invalid private key")}}static from(e){return typeof e=="string"?n.fromString(e):new n(e)}static fromString(e){return new n(Lt(e).subarray(1))}static fromSeed(e){if(typeof e=="string")if(/^[0-9a-fA-F]+$/.test(e))e=hexToBytes(e);else {let r=[];for(let i=0;i<e.length;i++){let s=e.charCodeAt(i);if(s<128)r.push(s);else if(s<2048)r.push(192|s>>6,128|s&63);else if(s>=55296&&s<=56319&&i+1<e.length){let a=e.charCodeAt(++i);s=65536+((s&1023)<<10)+(a&1023),r.push(240|s>>18,128|s>>12&63,128|s>>6&63,128|s&63);}else r.push(224|s>>12,128|s>>6&63,128|s&63);}e=new Uint8Array(r);}return new n(sha256(e))}static fromLogin(e,t,r="active"){let i=e+r+t;return n.fromSeed(i)}sign(e){let t=secp256k1.sign(e,this.key,{extraEntropy:true,format:"recovered",prehash:false}),r=parseInt(bytesToHex(t.subarray(0,1)),16);return R.from((r+31).toString(16)+bytesToHex(t.subarray(1)))}createPublic(e){return new U(secp256k1.getPublicKey(this.key),e)}toString(){return Pt(new Uint8Array([...ze,...this.key]))}inspect(){let e=this.toString();return `PrivateKey: ${e.slice(0,6)}...${e.slice(-6)}`}getSharedSecret(e){let t=secp256k1.getSharedSecret(this.key,e.key);return sha512(t.subarray(1))}static randomKey(){return new n(secp256k1.keygen().secretKey)}},Oe=n=>sha256(sha256(n)),Pt=n=>{let e=Oe(n);return ge.encode(new Uint8Array([...n,...e.slice(0,4)]))},Lt=n=>{let e=ge.decode(n);if(!Ne(e.slice(0,1),ze))throw new Error("Private key network id mismatch");let t=e.slice(-4),r=e.slice(0,-4),i=Oe(r).slice(0,4);if(!Ne(t,i))throw new Error("Private key checksum mismatch");return r},Ne=(n,e)=>{if(n===e)return true;if(n.byteLength!==e.byteLength)return false;let t=n.byteLength,r=0;for(;r<t&&n[r]===e[r];)r++;return r===t};var Fe=(n,e,t,r=Ft())=>Ke(n,e,r,t),Re=(n,e,t,r,i)=>Ke(n,e,t,r,i).message,Ke=(n,e,t,r,i)=>{let s=t,a=n.getSharedSecret(e),d=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);d.writeUint64(s),d.append(a),d.flip();let c=sha512(new Uint8Array(d.toBuffer())),p=c.subarray(32,48),h=c.subarray(0,32),y=sha256(c).subarray(0,4),I=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);I.append(y),I.flip();let B=I.readUint32();if(i!==void 0){if(B!==i)throw new Error("Invalid key");r=Ot(r,h,p);}else r=Ct(r,h,p);return {nonce:s,message:r,checksum:B}},Ot=(n,e,t)=>{let r=n;return r=cbc(e,t).decrypt(r),r},Ct=(n,e,t)=>{let r=n;return r=cbc(e,t).encrypt(r),r},ue=null,Ft=()=>{if(ue===null){let t=secp256k1.utils.randomSecretKey();ue=t[0]<<8|t[1];}let n=BigInt(Date.now()),e=++ue%65536;return n=n<<BigInt(16)|BigInt(e),n};var Me=n=>{let e=jt(n,33);return new U(e)},Kt=n=>n.readUint64(),Mt=n=>n.readUint32(),Vt=n=>{let e=n.readVarint32(),t=n.copy(n.offset,n.offset+e);return n.skip(e),new Uint8Array(t.toBuffer())},Ht=n=>e=>{let t={},r=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);r.append(e),r.flip();for(let[i,s]of n)try{t[i]=s(r);}catch(a){throw a.message=`${i}: ${a.message}`,a}return t};function jt(n,e){if(n){let t=n.copy(n.offset,n.offset+e);return n.skip(e),new Uint8Array(t.toBuffer())}else throw Error("No buffer found on first parameter")}var $t=Ht([["from",Me],["to",Me],["nonce",Kt],["check",Mt],["encrypted",Vt]]),Ve={Memo:$t};var je=(n,e,t,r)=>{if(!t.startsWith("#"))return t;t=t.substring(1),qe(),n=Ye(n),e=qt(e);let i=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);i.writeVString(t);let s=new Uint8Array(i.copy(0,i.offset).toBuffer()),{nonce:a,message:d,checksum:c}=Fe(n,e,s,r),p=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);L.Memo(p,{check:c,encrypted:d,from:n.createPublic(),nonce:a,to:e}),p.flip();let h=new Uint8Array(p.toBuffer());return "#"+ge.encode(h)},$e=(n,e)=>{if(!e.startsWith("#"))return e;e=e.substring(1),qe(),n=Ye(n);let t=Ve.Memo(ge.decode(e)),{from:r,to:i,nonce:s,check:a,encrypted:d}=t,p=n.createPublic().toString()===new U(r.key).toString()?new U(i.key):new U(r.key);t=Re(n,p,s,d,a);let h=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);return h.append(t),h.flip(),"#"+h.readVString()},re,qe=()=>{if(re===void 0){let n;re=true;try{let e="5JdeC9P7Pbd1uGdFVEsJ41EkEnADbbHGq6p1BwFxm6txNBsQnsw",r=je(e,"STM8m5UgaFAAYQRuaNejYdS8FVLVp9Ss3K1qAVk5de6F8s3HnVbvA","#memo\u7231");n=$e(e,r);}finally{re=n==="#memo\u7231";}}if(re===false)throw new Error("This environment does not support encryption.")},Ye=n=>typeof n=="string"?Y.fromString(n):n,qt=n=>typeof n=="string"?U.fromString(n):n,Yt={decode:$e,encode:je};var Je={};tt(Je,{buildWitnessSetProperties:()=>Zt,makeBitMaskFilter:()=>Qt,operations:()=>Gt,validateUsername:()=>Wt});var Wt=n=>{let e="Account name should ";if(!n)return e+"not be empty.";let t=n.length;if(t<3)return e+"be longer.";if(t>16)return e+"be shorter.";/\./.test(n)&&(e="Each account segment should ");let r=n.split("."),i=r.length;for(let s=0;s<i;s++){let a=r[s];if(!/^[a-z]/.test(a))return e+"start with a lowercase letter.";if(!/^[a-z0-9-]*$/.test(a))return e+"have only lowercase letters, digits, or dashes.";if(!/[a-z0-9]$/.test(a))return e+"end with a lowercase letter or digit.";if(a.length<3)return e+"be longer."}return null},Gt={vote:0,comment:1,transfer:2,transfer_to_vesting:3,withdraw_vesting:4,limit_order_create:5,limit_order_cancel:6,feed_publish:7,convert:8,account_create:9,account_update:10,witness_update:11,account_witness_vote:12,account_witness_proxy:13,pow:14,custom:15,report_over_production:16,delete_comment:17,custom_json:18,comment_options:19,set_withdraw_vesting_route:20,limit_order_create2:21,claim_account:22,create_claimed_account:23,request_account_recovery:24,recover_account:25,change_recovery_account:26,escrow_transfer:27,escrow_dispute:28,escrow_release:29,pow2:30,escrow_approve:31,transfer_to_savings:32,transfer_from_savings:33,cancel_transfer_from_savings:34,custom_binary:35,decline_voting_rights:36,reset_account:37,set_reset_account:38,claim_reward_balance:39,delegate_vesting_shares:40,account_create_with_delegation:41,witness_set_properties:42,account_update2:43,create_proposal:44,update_proposal_votes:45,remove_proposal:46,update_proposal:47,collateralized_convert:48,recurrent_transfer:49,fill_convert_request:50,author_reward:51,curation_reward:52,comment_reward:53,liquidity_reward:54,interest:55,fill_vesting_withdraw:56,fill_order:57,shutdown_witness:58,fill_transfer_from_savings:59,hardfork:60,comment_payout_update:61,return_vesting_delegation:62,comment_benefactor_reward:63,producer_reward:64,clear_null_account_balance:65,proposal_pay:66,sps_fund:67,hardfork_hive:68,hardfork_hive_restore:69,delayed_voting:70,consolidate_treasury_balance:71,effective_comment_vote:72,ineffective_delete_comment:73,sps_convert:74,expired_account_notification:75,changed_recovery_account:76,transfer_to_vesting_completed:77,pow_reward:78,vesting_shares_split:79,account_created:80,fill_collateralized_convert_request:81,system_warning:82,fill_recurrent_transfer:83,failed_recurrent_transfer:84,limit_order_cancelled:85,producer_missed:86,proposal_fee:87,collateralized_convert_immediate_conversion:88,escrow_approved:89,escrow_rejected:90,proxy_cleared:91,declined_voting_rights:92},Qt=n=>n.reduce(Xt,[BigInt(0),BigInt(0)]).map(e=>e!==BigInt(0)?e.toString():null),Xt=([n,e],t)=>t<64?[n|BigInt(1)<<BigInt(t),e]:[n,e|BigInt(1)<<BigInt(t-64)],Zt=(n,e)=>{let t={extensions:[],owner:n,props:[]};for(let r of Object.keys(e)){if(e[r]===void 0)continue;let i;switch(r){case "key":case "new_signing_key":i=L.PublicKey;break;case "account_subsidy_budget":case "account_subsidy_decay":case "maximum_block_size":i=L.UInt32;break;case "hbd_interest_rate":i=L.UInt16;break;case "url":i=L.String;break;case "hbd_exchange_rate":i=L.Price;break;case "account_creation_fee":i=L.Asset;break;default:throw new Error(`Unknown witness prop: ${r}`)}t.props.push([r,er(i,e[r])]);}return t.props.sort((r,i)=>r[0].localeCompare(i[0])),["witness_set_properties",t]},er=(n,e)=>{let t=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);return n(t,e),t.flip(),bytesToHex(new Uint8Array(t.toBuffer()))};/**
2
2
  * @license bytebuffer.ts (c) 2015 Daniel Wirtz <dcode@dcode.io>
3
3
  * Backing buffer: ArrayBuffer, Accessor: DataView
4
4
  * Released under the Apache License, Version 2.0
5
5
  * see: https://github.com/dcodeIO/bytebuffer.ts for details
6
6
  * modified by @xmcl/bytebuffer
7
7
  * And customized for hive-tx
8
- */export{qt as Memo,Y as PrivateKey,U as PublicKey,R as Signature,ae as Transaction,vt as callREST,te as callRPC,se as callRPCBroadcast,xt as callWithQuorum,w as config,Je as utils};//# sourceMappingURL=hive.js.map
8
+ */export{Yt as Memo,Y as PrivateKey,U as PublicKey,R as Signature,ae as Transaction,xt as callREST,te as callRPC,oe as callRPCBroadcast,Ut as callWithQuorum,w as config,nt as setNodes,Je as utils};//# sourceMappingURL=hive.js.map
9
9
  //# sourceMappingURL=hive.js.map