@ecency/sdk 2.3.32 → 2.3.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/{hive-CMt4SNd2.d.ts → hive-UyJkAmOk.d.ts} +65 -3
- package/dist/browser/hive.d.ts +1 -1
- package/dist/browser/hive.js +2 -2
- package/dist/browser/hive.js.map +1 -1
- package/dist/browser/index.d.ts +13 -3
- package/dist/browser/index.js +3 -3
- package/dist/browser/index.js.map +1 -1
- package/dist/node/hive.cjs +2 -2
- package/dist/node/hive.cjs.map +1 -1
- package/dist/node/hive.mjs +2 -2
- package/dist/node/hive.mjs.map +1 -1
- package/dist/node/index.cjs +3 -3
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.mjs +3 -3
- package/dist/node/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/node/hive.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
'use strict';var utils_js=require('@noble/hashes/utils.js'),legacy_js=require('@noble/hashes/legacy.js'),_e=require('bs58'),secp256k1_js=require('@noble/curves/secp256k1.js'),sha2_js=require('@noble/hashes/sha2.js'),aes_js=require('@noble/ciphers/aes.js');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var _e__default=/*#__PURE__*/_interopDefault(_e);var ft=Object.defineProperty;var lt=(n,e)=>{for(var t in e)ft(n,t,{get:e[t],enumerable:true});};var $=new ArrayBuffer(0),q=null,Y=null;function dt(){return q||(typeof TextEncoder<"u"?q=new TextEncoder:q={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)}}),q}function de(){return Y||(typeof TextDecoder<"u"?Y=new TextDecoder:Y={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}}),Y}var _=class n{static LITTLE_ENDIAN=true;static BIG_ENDIAN=false;static DEFAULT_CAPACITY=16;static DEFAULT_ENDIAN=n.BIG_ENDIAN;buffer;view;offset;markedOffset;limit;littleEndian;constructor(e=n.DEFAULT_CAPACITY,t=n.DEFAULT_ENDIAN){this.buffer=e===0?$:new ArrayBuffer(e),this.view=e===0?new DataView($):new DataView(this.buffer),this.offset=0,this.markedOffset=-1,this.limit=e,this.littleEndian=t;}static allocate(e,t){return new n(e,t)}static concat(e,t){let r=0;for(let u=0;u<e.length;++u){let c=e[u];if(c instanceof n)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 n(0,t);let i=new n(r,t),s=new Uint8Array(i.buffer),a=0;for(let u=0;u<e.length;++u){let c=e[u];c instanceof n?(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 n){let i=e.clone();return i.markedOffset=-1,i}let r;if(e instanceof Uint8Array)r=new n(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 n(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($));else if(Array.isArray(e))r=new n(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}readUInt32=this.readUint32;append(e,t){let r=typeof t>"u";r?t=this.offset:t=t;let i;return e instanceof n?(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 n(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 n(0,this.littleEndian);let r=t-e,i=new n(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 u=i-r;return u===0?e:(e.ensureCapacity(t+u),new Uint8Array(e.buffer).set(new Uint8Array(this.buffer).subarray(r,i),t),a&&(this.offset+=u),s&&(e.offset+=u),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?$: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=dt().encode(e),a=s.length,u=this.calculateVarint32(a);return i+u+a>this.buffer.byteLength&&this.resize(i+u+a),this.writeVarint32(a,i),i+=u,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 u=de().decode(new Uint8Array(this.buffer,e,s));return e+=s,t?(this.offset=e,u):{string:u,length:e-r}}readUTF8String(e,t){let r=typeof t>"u";r?t=this.offset:t=t;let i=de().decode(new Uint8Array(this.buffer,t,e));return r?(this.offset+=e,i):{string:i,length:e}}};var p={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://api.hive.blog","https://rpc.mahdiyari.info","https://api.syncad.com","https://hiveapi.actifit.io","https://api.c0ff33a.uk"],restNodesByApi:{hivesense:["https://api.hive.blog","https://api.syncad.com"]},userAgent:"ecency-sdk",chain_id:"beeab0de00000000000000000000000000000000000000000000000000000000",address_prefix:"STM",timeout:5e3,broadcastTimeout:15e3,retry:5},te=n=>Array.isArray(n)?[...new Set(n.filter(e=>typeof e=="string").map(e=>e.trim().replace(/\/+$/,"")).filter(e=>e.length>0&&/^https?:\/\/.+/.test(e)))]:[],ht=n=>{let e=te(n);e.length&&(p.nodes=e);},mt=n=>{let e=te(n);e.length&&(p.restNodes=e);},yt=n=>{if(!n||typeof n!="object")return;let e={...p.restNodesByApi};for(let[t,r]of Object.entries(n)){let i=te(r);i.length?e[t]=i:delete e[t];}p.restNodesByApi=e;},pt=n=>{if(typeof n!="string")return;let e=n.trim();!e||/[\u0000-\u001f\u007f]/.test(e)||(p.userAgent=e);};var D=class n{data;recovery;compressed;constructor(e,t,r){this.data=e,this.recovery=t,this.compressed=r??true;}static from(e){if(typeof e=="string"){let t=utils_js.hexToBytes(e),r=parseInt(utils_js.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 utils_js.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=utils_js.hexToBytes(e));let t=secp256k1_js.secp256k1.Signature.fromBytes(this.data,"compact"),r=new secp256k1_js.secp256k1.Signature(t.r,t.s,this.recovery);return new v(r.recoverPublicKey(e).toBytes())}};var v=class n{key;prefix;constructor(e,t){this.key=e,this.prefix=t??p.address_prefix;}static fromString(e){let t=p.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=_e__default.default.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),u=legacy_js.ripemd160(s).subarray(0,4);if(!_t(a,u))throw new Error("Public key checksum mismatch");try{secp256k1_js.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=D.from(t)),secp256k1_js.secp256k1.verify(t.data,e,this.key,{prehash:false,format:"compact"})}toString(){return gt(this.key,this.prefix)}toJSON(){return this.toString()}inspect(){return `PublicKey: ${this.toString()}`}},gt=(n,e)=>{let t=legacy_js.ripemd160(n);return e+_e__default.default.encode(new Uint8Array([...n,...t.subarray(0,4)]))},_t=(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 W=class n{amount;symbol;constructor(e,t){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 J=class n{buffer;static from(e){return e instanceof n?e:e instanceof Uint8Array?new n(e):typeof e=="string"?new n(utils_js.hexToBytes(e)):new n(new Uint8Array(e))}constructor(e){this.buffer=e;}toString(){return utils_js.bytesToHex(this.buffer)}toJSON(){return this.toString()}};var h={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},E=()=>{throw new Error("Void can not be serialized")},o=(n,e)=>{n.writeVString(e);},At=(n,e)=>{n.writeInt16(e);},we=(n,e)=>{n.writeInt64(e);},be=(n,e)=>{n.writeUint8(e);},T=(n,e)=>{n.writeUint16(e);},x=(n,e)=>{n.writeUint32(e);},Ae=(n,e)=>{n.writeUint64(e);},N=(n,e)=>{n.writeByte(e?1:0);},Be=n=>(e,t)=>{let[r,i]=t;e.writeVarint32(r),n[r](e,i);},g=(n,e)=>{let t=W.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);},R=(n,e)=>{n.writeUint32(Math.floor(new Date(e+"Z").getTime()/1e3));},k=(n,e)=>{e===null||typeof e=="string"&&e.slice(-39)==="1111111111111111111111111111111114T1Anm"?n.append(new Uint8Array(33).fill(0)):n.append(v.from(e).key);},ve=(n=null)=>(e,t)=>{t=J.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);},xe=ve(),re=(n,e)=>(t,r)=>{t.writeVarint32(r.length);for(let[i,s]of r)n(t,i),e(t,s);},w=n=>(e,t)=>{e.writeVarint32(t.length);for(let r of t)n(e,r);},I=n=>(e,t)=>{for(let[r,i]of n)try{i(e,t[r]);}catch(s){throw s.message=`${r}: ${s.message}`,s}},C=n=>(e,t)=>{t!==void 0?(e.writeByte(1),n(e,t)):e.writeByte(0);},B=I([["weight_threshold",x],["account_auths",re(o,T)],["key_auths",re(k,T)]]),Bt=I([["account",o],["weight",T]]),ne=I([["base",g],["quote",g]]),vt=I([["account_creation_fee",g],["maximum_block_size",x],["hbd_interest_rate",T]]),m=(n,e)=>{let t=I(e);return (r,i)=>{r.writeVarint32(n),t(r,i);}},d={};d.account_create=m(h.account_create,[["fee",g],["creator",o],["new_account_name",o],["owner",B],["active",B],["posting",B],["memo_key",k],["json_metadata",o]]);d.account_create_with_delegation=m(h.account_create_with_delegation,[["fee",g],["delegation",g],["creator",o],["new_account_name",o],["owner",B],["active",B],["posting",B],["memo_key",k],["json_metadata",o],["extensions",w(E)]]);d.account_update=m(h.account_update,[["account",o],["owner",C(B)],["active",C(B)],["posting",C(B)],["memo_key",k],["json_metadata",o]]);d.account_witness_proxy=m(h.account_witness_proxy,[["account",o],["proxy",o]]);d.account_witness_vote=m(h.account_witness_vote,[["account",o],["witness",o],["approve",N]]);d.cancel_transfer_from_savings=m(h.cancel_transfer_from_savings,[["from",o],["request_id",x]]);d.change_recovery_account=m(h.change_recovery_account,[["account_to_recover",o],["new_recovery_account",o],["extensions",w(E)]]);d.claim_account=m(h.claim_account,[["creator",o],["fee",g],["extensions",w(E)]]);d.claim_reward_balance=m(h.claim_reward_balance,[["account",o],["reward_hive",g],["reward_hbd",g],["reward_vests",g]]);d.comment=m(h.comment,[["parent_author",o],["parent_permlink",o],["author",o],["permlink",o],["title",o],["body",o],["json_metadata",o]]);d.comment_options=m(h.comment_options,[["author",o],["permlink",o],["max_accepted_payout",g],["percent_hbd",T],["allow_votes",N],["allow_curation_rewards",N],["extensions",w(Be([I([["beneficiaries",w(Bt)]])]))]]);d.convert=m(h.convert,[["owner",o],["requestid",x],["amount",g]]);d.create_claimed_account=m(h.create_claimed_account,[["creator",o],["new_account_name",o],["owner",B],["active",B],["posting",B],["memo_key",k],["json_metadata",o],["extensions",w(E)]]);d.custom=m(h.custom,[["required_auths",w(o)],["id",T],["data",xe]]);d.custom_json=m(h.custom_json,[["required_auths",w(o)],["required_posting_auths",w(o)],["id",o],["json",o]]);d.decline_voting_rights=m(h.decline_voting_rights,[["account",o],["decline",N]]);d.delegate_vesting_shares=m(h.delegate_vesting_shares,[["delegator",o],["delegatee",o],["vesting_shares",g]]);d.delete_comment=m(h.delete_comment,[["author",o],["permlink",o]]);d.escrow_approve=m(h.escrow_approve,[["from",o],["to",o],["agent",o],["who",o],["escrow_id",x],["approve",N]]);d.escrow_dispute=m(h.escrow_dispute,[["from",o],["to",o],["agent",o],["who",o],["escrow_id",x]]);d.escrow_release=m(h.escrow_release,[["from",o],["to",o],["agent",o],["who",o],["receiver",o],["escrow_id",x],["hbd_amount",g],["hive_amount",g]]);d.escrow_transfer=m(h.escrow_transfer,[["from",o],["to",o],["hbd_amount",g],["hive_amount",g],["escrow_id",x],["agent",o],["fee",g],["json_meta",o],["ratification_deadline",R],["escrow_expiration",R]]);d.feed_publish=m(h.feed_publish,[["publisher",o],["exchange_rate",ne]]);d.limit_order_cancel=m(h.limit_order_cancel,[["owner",o],["orderid",x]]);d.limit_order_create=m(h.limit_order_create,[["owner",o],["orderid",x],["amount_to_sell",g],["min_to_receive",g],["fill_or_kill",N],["expiration",R]]);d.limit_order_create2=m(h.limit_order_create2,[["owner",o],["orderid",x],["amount_to_sell",g],["exchange_rate",ne],["fill_or_kill",N],["expiration",R]]);d.recover_account=m(h.recover_account,[["account_to_recover",o],["new_owner_authority",B],["recent_owner_authority",B],["extensions",w(E)]]);d.request_account_recovery=m(h.request_account_recovery,[["recovery_account",o],["account_to_recover",o],["new_owner_authority",B],["extensions",w(E)]]);d.reset_account=m(h.reset_account,[["reset_account",o],["account_to_reset",o],["new_owner_authority",B]]);d.set_reset_account=m(h.set_reset_account,[["account",o],["current_reset_account",o],["reset_account",o]]);d.set_withdraw_vesting_route=m(h.set_withdraw_vesting_route,[["from_account",o],["to_account",o],["percent",T],["auto_vest",N]]);d.transfer=m(h.transfer,[["from",o],["to",o],["amount",g],["memo",o]]);d.transfer_from_savings=m(h.transfer_from_savings,[["from",o],["request_id",x],["to",o],["amount",g],["memo",o]]);d.transfer_to_savings=m(h.transfer_to_savings,[["from",o],["to",o],["amount",g],["memo",o]]);d.transfer_to_vesting=m(h.transfer_to_vesting,[["from",o],["to",o],["amount",g]]);d.vote=m(h.vote,[["voter",o],["author",o],["permlink",o],["weight",At]]);d.withdraw_vesting=m(h.withdraw_vesting,[["account",o],["vesting_shares",g]]);d.witness_update=m(h.witness_update,[["owner",o],["url",o],["block_signing_key",k],["props",vt],["fee",g]]);d.witness_set_properties=m(h.witness_set_properties,[["owner",o],["props",re(o,xe)],["extensions",w(E)]]);d.account_update2=m(h.account_update2,[["account",o],["owner",C(B)],["active",C(B)],["posting",C(B)],["memo_key",C(k)],["json_metadata",o],["posting_json_metadata",o],["extensions",w(E)]]);d.create_proposal=m(h.create_proposal,[["creator",o],["receiver",o],["start_date",R],["end_date",R],["daily_pay",g],["subject",o],["permlink",o],["extensions",w(E)]]);d.update_proposal_votes=m(h.update_proposal_votes,[["voter",o],["proposal_ids",w(we)],["approve",N],["extensions",w(E)]]);d.remove_proposal=m(h.remove_proposal,[["proposal_owner",o],["proposal_ids",w(we)],["extensions",w(E)]]);var xt=I([["end_date",R]]);d.update_proposal=m(h.update_proposal,[["proposal_id",Ae],["creator",o],["daily_pay",g],["subject",o],["permlink",o],["extensions",w(Be([E,xt]))]]);d.collateralized_convert=m(h.collateralized_convert,[["owner",o],["requestid",x],["amount",g]]);d.recurrent_transfer=m(h.recurrent_transfer,[["from",o],["to",o],["amount",g],["memo",o],["recurrence",T],["executions",T],["extensions",w(I([["type",be],["value",I([["pair_id",be]])]]))]]);var St=(n,e)=>{let t=d[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}},Ut=I([["ref_block_num",T],["ref_block_prefix",x],["expiration",R],["operations",w(St)],["extensions",w(o)]]),Et=I([["from",k],["to",k],["nonce",Ae],["check",x],["encrypted",ve()]]),P={Asset:g,Memo:Et,Price:ne,PublicKey:k,String:o,Transaction:Ut,UInt16:T,UInt32:x};var H=n=>new Promise(e=>setTimeout(e,n));var Tt=(()=>{try{return !(typeof navigator<"u"&&navigator.product==="ReactNative")&&typeof process<"u"&&process.versions!=null&&process.versions.node!=null}catch{return false}})();function Ue(){return Tt?{"User-Agent":p.userAgent}:{}}var L=class extends Error{name="RPCError";data;code;stack=void 0;constructor(e){super(e.message),this.code=e.code,"data"in e&&(this.data=e.data);}},z=class extends Error{node;rateLimitMs;isRateLimit;constructor(e,t,r={}){super(t),this.node=e,this.rateLimitMs=r.rateLimitMs??0,this.isRateLimit=r.isRateLimit??false;}};function Ee(n){if(!n)return 0;let e=Number(n);if(Number.isFinite(e))return e>0?e*1e3:0;let t=Date.parse(n);if(Number.isFinite(t)){let r=t-Date.now();return r>0?r:0}return 0}var It=["ECONNREFUSED","ENOTFOUND","EHOSTUNREACH","EAI_AGAIN"],Pt=["Failed to fetch","NetworkError when attempting to fetch","Load failed","fetch failed"];function kt(n){if(!n)return "";let e=[String(n.name||""),String(n.message||""),String(n.code||"")],t=n.cause;for(let r=0;t&&r<5;r++)e.push(String(t.code||""),String(t.message||"")),t=t.cause;return e.join(" ")}function Lt(n){if(!n)return false;if(n instanceof z)return true;if(n instanceof L)return false;let e=kt(n);return !!(It.some(t=>e.includes(t))||Pt.some(t=>e.includes(t))||n instanceof SyntaxError||/Unexpected token|JSON\.parse|Unexpected end of JSON/i.test(e))}function Nt(n,e){return !!(n===-32603||n<=-32e3&&n>=-32099||n===-32601||n===-32602&&/unable to parse|endpoint data|internal/i.test(e))}function Te(n){let e=n.indexOf(".");return e>0?n.slice(0,e):n}var Rt=1e4,Ot=6e4,Dt=12e4,Ct=2,Mt=6e4,Se=12e4,zt=30,ie=.3,Ie=3,se=5*6e4,Pe=6e4,ke=1e3,Le=2e3,Ne=700,Re=2.5,Ft=new Set(["hapi.ecency.com","api.ecency.com"]);function Kt(n){try{return Ft.has(new URL(n).hostname)}catch{return false}}var G=class{health=new Map;getOrCreate(e){let t=this.health.get(e);return t||(t={consecutiveFailures:0,lastFailureTime:0,rateLimitedUntil:0,rateLimitStreak:0,lastRateLimitAt:0,apiFailures:new Map,headBlock:0,headBlockUpdatedAt:0,ewmaLatencyMs:void 0,latencySampleCount:0,latencyUpdatedAt:0,lastProbeAt:Date.now()},this.health.set(e,t)),t}recordSuccess(e,t,r){let i=this.getOrCreate(e);i.consecutiveFailures=0,i.rateLimitStreak=0,t&&i.apiFailures.delete(t),typeof r=="number"&&Number.isFinite(r)&&r>=0&&this.recordLatency(i,r);}recordSlowFailure(e,t){!Number.isFinite(t)||t<Le||this.recordLatency(this.getOrCreate(e),t);}recordLatency(e,t){let r=Date.now();e.latencyUpdatedAt>0&&r-e.latencyUpdatedAt>se&&(e.ewmaLatencyMs=void 0,e.latencySampleCount=0),e.ewmaLatencyMs=e.ewmaLatencyMs===void 0?t:ie*t+(1-ie)*e.ewmaLatencyMs,e.latencySampleCount++,e.latencyUpdatedAt=r;}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>=Ct&&(s.cooldownUntil=i+Mt),r.apiFailures.set(t,s);}else r.consecutiveFailures++,r.lastFailureTime=Date.now();}recordRateLimit(e,t){let r=this.getOrCreate(e),i=Date.now();r.rateLimitStreak>0&&i-r.lastRateLimitAt>Dt&&(r.rateLimitStreak=0);let s=typeof t=="number"&&Number.isFinite(t)&&t>0,a=s?t:Math.min(Rt*2**r.rateLimitStreak,Ot);s||r.rateLimitStreak++,r.lastRateLimitAt=i,r.rateLimitedUntil=s?i+a:Math.max(r.rateLimitedUntil,i+a),r.consecutiveFailures++,r.lastFailureTime=i;}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<=Se&&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<=Se&&s-r.headBlock>zt)}getOrderedNodes(e,t){let r=[],i=[];for(let f of e)this.isNodeHealthy(f,t)?r.push(f):i.push(f);if(r.length<=1)return [...r,...i];let s=Date.now(),a=this.fastestUsableLatency(r,s),u=r.map((f,l)=>({node:f,i:l,score:this.scoreNode(f,a,s)})).sort((f,l)=>f.score-l.score||f.i-l.i).map(f=>f.node),c=this.pickReprobeCandidate(r,s);return c&&u[0]!==c?[c,...u.filter(f=>f!==c),...i]:[...u,...i]}isLatencyUsable(e,t){return !!e&&e.ewmaLatencyMs!==void 0&&e.latencySampleCount>=Ie&&t-e.latencyUpdatedAt<=se}fastestUsableLatency(e,t){let r=1/0;for(let i of e){let s=this.health.get(i);this.isLatencyUsable(s,t)&&(r=Math.min(r,s.ewmaLatencyMs));}return r}scoreNode(e,t,r){let i=this.health.get(e);if(!this.isLatencyUsable(i,r))return ke;let s=i.ewmaLatencyMs;return Kt(e)?t>0&&t!==1/0&&s>Re*t?s:Math.max(s-Ne,0):s}pickReprobeCandidate(e,t){let r=t-Pe,i,s=1/0;for(let a of e){let u=this.getOrCreate(a),c=Math.max(u.latencyUpdatedAt,u.lastProbeAt);c<=r&&c<s&&(i=a,s=c);}return i&&(this.getOrCreate(i).lastProbeAt=t),i}},O=new G,M=new G;function Oe(n,e,t,r){t instanceof z?t.isRateLimit?n.recordRateLimit(e,t.rateLimitMs||void 0):n.recordFailure(e,r):t instanceof L?n.recordFailure(e,r):n.recordFailure(e);}function Ht(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 Vt(){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 De(n){if(typeof AbortSignal.timeout=="function")return {signal:AbortSignal.timeout(n),cleanup:()=>{}};let e=new AbortController,t=setTimeout(()=>e.abort(Vt()),n);return {signal:e.signal,cleanup:()=>clearTimeout(t)}}function Ce(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 X=async(n,e,t,r=p.timeout,i=false,s)=>{let a=Math.floor(Math.random()*1e8),u={jsonrpc:"2.0",method:e,params:t,id:a},{signal:c,cleanup:f}=De(r),{signal:l,cleanup:S}=Ce(c,s),y=()=>{f(),S();};try{let A=await fetch(n,{method:"POST",body:JSON.stringify(u),headers:{"Content-Type":"application/json",...Ue()},signal:l});if(A.status===429)throw new z(n,"HTTP 429 Rate Limited",{rateLimitMs:Ee(A.headers.get("Retry-After")),isRateLimit:!0});if(A.status>=500&&A.status<600)throw new z(n,`HTTP ${A.status} from ${n}`);let U=await A.json();if(!U||typeof U.id>"u"||U.id!==a||U.jsonrpc!=="2.0")throw new Error("JSONRPC id mismatch");if("result"in U)return U.result;if("error"in U){let F=U.error;throw "message"in F&&"code"in F?new L(F):U.error}throw U}catch(A){if(A instanceof L||A instanceof z||s?.aborted)throw A;if(i)return X(n,e,t,r,false,s);throw A}finally{y();}};function Me(){return H(50+Math.random()*50)}var Q=async(n,e=[],t=p.timeout,r=p.retry,i)=>{if(!Array.isArray(p.nodes))throw new Error("config.nodes is not an array");if(p.nodes.length===0)throw new Error("config.nodes is empty");let s=Te(n),a=new Set,u;for(let c=0;c<=r;c++){let f=O.getOrderedNodes(p.nodes,s),l=f.find(y=>!a.has(y));l||(a.clear(),l=f[0]),a.add(l);let S=Date.now();try{let y=await X(l,n,e,t,!1,i);return O.recordSuccess(l,s,Date.now()-S),Ht(O,l,n,y),y}catch(y){if(y instanceof L&&!Nt(y.code,y.message)||i?.aborted)throw y;Oe(O,l,y,s),O.recordSlowFailure(l,Date.now()-S),u=y,c<r&&await Me();}}throw u},oe=async(n,e=[],t=p.broadcastTimeout,r)=>{if(!Array.isArray(p.nodes))throw new Error("config.nodes is not an array");if(p.nodes.length===0)throw new Error("config.nodes is empty");let i=Te(n),s=new Set,a;for(let u=0;u<p.nodes.length;u++){let f=O.getOrderedNodes(p.nodes,i).find(l=>!s.has(l));if(!f)break;if(s.add(f),r?.aborted)throw new Error("Aborted");try{let l=await X(f,n,e,t,!1,r);return O.recordSuccess(f,i),l}catch(l){if(l instanceof L||r?.aborted||(Oe(O,f,l,i),a=l,!Lt(l)))throw l}}throw a},jt={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 $t(n,e,t,r=p.timeout,i=p.retry,s){if(!Array.isArray(p.restNodes))throw new Error("config.restNodes is not an array");if(p.restNodes.length===0)throw new Error("config.restNodes is empty");let a=p.restNodesByApi?.[n]?.length?p.restNodesByApi[n]:p.restNodes,u=new Set,c,f=false;for(let l=0;l<=i;l++){let S=M.getOrderedNodes(a,n),y=S.find(b=>!u.has(b));y||(u.clear(),y=S[0]),u.add(y);let A=y+jt[n],U=e,F=t||{},fe=new Set;Object.entries(F).forEach(([b,K])=>{U.includes(`{${b}}`)&&(U=U.replace(`{${b}}`,encodeURIComponent(String(K))),fe.add(b));});let ee=new URL(A+U);if(Object.entries(F).forEach(([b,K])=>{fe.has(b)||(Array.isArray(K)?K.forEach(ut=>ee.searchParams.append(b,String(ut))):ee.searchParams.set(b,String(K)));}),s?.aborted)throw new Error("Aborted");f=false;let{signal:it,cleanup:st}=De(r),{signal:ot,cleanup:at}=Ce(it,s),ct=()=>{st(),at();},le=Date.now();try{let b=await fetch(ee.toString(),{signal:ot,headers:Ue()});if(b.status===404)throw new Error("HTTP 404 - Hint: can happen on wrong params");if(b.status===429)throw M.recordRateLimit(y,Ee(b.headers.get("Retry-After"))||void 0),f=!0,new Error(`HTTP 429 Rate Limited by ${y}`);if(b.status===503)throw M.recordFailure(y,n),f=!0,new Error(`HTTP 503 Service Unavailable from ${y}`);if(!b.ok)throw M.recordFailure(y,n),f=!0,new Error(`HTTP ${b.status} from ${y}`);return M.recordSuccess(y,n,Date.now()-le),b.json()}catch(b){if(b?.message?.includes("HTTP 404")||s?.aborted)throw b;f||M.recordFailure(y,n),M.recordSlowFailure(y,Date.now()-le),c=b,l<i&&await Me();}finally{ct();}}throw c}var qt=async(n,e=[],t=2,r)=>{if(!Array.isArray(p.nodes))throw new Error("config.nodes is not an Array");if(t>p.nodes.length)throw new Error("quorum > config.nodes.length");let s=(c=>{let f=[...c];for(let l=f.length-1;l>0;l--){let S=Math.floor(Math.random()*(l+1));[f[l],f[S]]=[f[S],f[l]];}return f})(p.nodes),a=Math.min(t,s.length),u=[];for(;a>0&&s.length>0;){let c=s.splice(0,a),f=[],l=[];for(let y=0;y<c.length;y++)f.push(X(c[y],n,e,void 0,true,r).then(A=>l.push(A)).catch(()=>{}));await Promise.all(f),u.push(...l);let S=Yt(u,t);if(S)return S;if(a=Math.min(t,s.length),a===0)throw new Error("No more nodes available.")}throw new Error("Couldn't reach quorum.")};function Yt(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 Jt=utils_js.hexToBytes(p.chain_id),ae=class n{transaction;expiration=6e4;txId;constructor(e){e?.transaction&&(e.transaction instanceof n?(this.transaction=e.transaction.transaction,this.expiration=e.transaction.expiration):this.transaction=e.transaction,this.transaction&&!Array.isArray(this.transaction.signatures)&&(this.transaction.signatures=[]),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 L&&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 H(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 H(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{P.Transaction(e,t);}catch(a){throw new Error("Unable to serialize transaction: "+a)}e.flip();let r=new Uint8Array(e.toBuffer()),i=utils_js.bytesToHex(sha2_js.sha256(r)).slice(0,40);return {digest:sha2_js.sha256(new Uint8Array([...Jt,...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),Q("transaction_status_api.find_transaction",{transaction_id:this.txId,expiration:this.transaction?.expiration})}createTransaction=async e=>{let t=await Q("condenser_api.get_dynamic_global_properties",[]),r=utils_js.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:[]};}};var je=new Uint8Array([128]),j=class n{key;constructor(e){this.key=e;try{secp256k1_js.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(Zt(e).subarray(1))}static fromSeed(e){if(typeof e=="string")if(/^[0-9a-fA-F]+$/.test(e))e=utils_js.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(sha2_js.sha256(e))}static fromLogin(e,t,r="active"){let i=e+r+t;return n.fromSeed(i)}sign(e){let t=secp256k1_js.secp256k1.sign(e,this.key,{extraEntropy:true,format:"recovered",prehash:false}),r=parseInt(utils_js.bytesToHex(t.subarray(0,1)),16);return D.from((r+31).toString(16)+utils_js.bytesToHex(t.subarray(1)))}createPublic(e){return new v(secp256k1_js.secp256k1.getPublicKey(this.key),e)}toString(){return Qt(new Uint8Array([...je,...this.key]))}inspect(){let e=this.toString();return `PrivateKey: ${e.slice(0,6)}...${e.slice(-6)}`}getSharedSecret(e){let t=secp256k1_js.secp256k1.getSharedSecret(this.key,e.key);return sha2_js.sha512(t.subarray(1))}static randomKey(){return new n(secp256k1_js.secp256k1.keygen().secretKey)}},$e=n=>sha2_js.sha256(sha2_js.sha256(n)),Qt=n=>{let e=$e(n);return _e__default.default.encode(new Uint8Array([...n,...e.slice(0,4)]))},Zt=n=>{let e=_e__default.default.decode(n);if(!He(e.slice(0,1),je))throw new Error("Private key network id mismatch");let t=e.slice(-4),r=e.slice(0,-4),i=$e(r).slice(0,4);if(!He(t,i))throw new Error("Private key checksum mismatch");return r},He=(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 Ye=(n,e,t,r=sr())=>Je(n,e,r,t),We=(n,e,t,r,i)=>Je(n,e,t,r,i).message,Je=(n,e,t,r,i)=>{let s=t,a=n.getSharedSecret(e),u=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);u.writeUint64(s),u.append(a),u.flip();let c=sha2_js.sha512(new Uint8Array(u.toBuffer())),f=c.subarray(32,48),l=c.subarray(0,32),S=sha2_js.sha256(c).subarray(0,4),y=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);y.append(S),y.flip();let A=y.readUint32();if(i!==void 0){if(A!==i)throw new Error("Invalid key");r=nr(r,l,f);}else r=ir(r,l,f);return {nonce:s,message:r,checksum:A}},nr=(n,e,t)=>{let r=n;return r=aes_js.cbc(e,t).decrypt(r),r},ir=(n,e,t)=>{let r=n;return r=aes_js.cbc(e,t).encrypt(r),r},ue=null,sr=()=>{if(ue===null){let t=secp256k1_js.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 Ge=n=>{let e=lr(n,33);return new v(e)},ar=n=>n.readUint64(),cr=n=>n.readUint32(),ur=n=>{let e=n.readVarint32(),t=n.copy(n.offset,n.offset+e);return n.skip(e),new Uint8Array(t.toBuffer())},fr=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 lr(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 dr=fr([["from",Ge],["to",Ge],["nonce",ar],["check",cr],["encrypted",ur]]),Xe={Memo:dr};var Ze=(n,e,t,r)=>{if(!t.startsWith("#"))return t;t=t.substring(1),tt(),n=rt(n),e=hr(e);let i=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);i.writeVString(t);let s=new Uint8Array(i.copy(0,i.offset).toBuffer()),{nonce:a,message:u,checksum:c}=Ye(n,e,s,r),f=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);P.Memo(f,{check:c,encrypted:u,from:n.createPublic(),nonce:a,to:e}),f.flip();let l=new Uint8Array(f.toBuffer());return "#"+_e__default.default.encode(l)},et=(n,e)=>{if(!e.startsWith("#"))return e;e=e.substring(1),tt(),n=rt(n);let t=Xe.Memo(_e__default.default.decode(e)),{from:r,to:i,nonce:s,check:a,encrypted:u}=t,f=n.createPublic().toString()===new v(r.key).toString()?new v(i.key):new v(r.key);t=We(n,f,s,u,a);let l=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);return l.append(t),l.flip(),"#"+l.readVString()},Z,tt=()=>{if(Z===void 0){let n;Z=true;try{let e="5JdeC9P7Pbd1uGdFVEsJ41EkEnADbbHGq6p1BwFxm6txNBsQnsw",r=Ze(e,"STM8m5UgaFAAYQRuaNejYdS8FVLVp9Ss3K1qAVk5de6F8s3HnVbvA","#memo\u7231");n=et(e,r);}finally{Z=n==="#memo\u7231";}}if(Z===false)throw new Error("This environment does not support encryption.")},rt=n=>typeof n=="string"?j.fromString(n):n,hr=n=>typeof n=="string"?v.fromString(n):n,mr={decode:et,encode:Ze};var nt={};lt(nt,{buildWitnessSetProperties:()=>wr,makeBitMaskFilter:()=>_r,operations:()=>gr,validateUsername:()=>pr});var pr=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},gr={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},_r=n=>n.reduce(br,[BigInt(0),BigInt(0)]).map(e=>e!==BigInt(0)?e.toString():null),br=([n,e],t)=>t<64?[n|BigInt(1)<<BigInt(t),e]:[n,e|BigInt(1)<<BigInt(t-64)],wr=(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=P.PublicKey;break;case "account_subsidy_budget":case "account_subsidy_decay":case "maximum_block_size":i=P.UInt32;break;case "hbd_interest_rate":i=P.UInt16;break;case "url":i=P.String;break;case "hbd_exchange_rate":i=P.Price;break;case "account_creation_fee":i=P.Asset;break;default:throw new Error(`Unknown witness prop: ${r}`)}t.props.push([r,Ar(i,e[r])]);}return t.props.sort((r,i)=>r[0].localeCompare(i[0])),["witness_set_properties",t]},Ar=(n,e)=>{let t=new _(_.DEFAULT_CAPACITY,_.LITTLE_ENDIAN);return n(t,e),t.flip(),utils_js.bytesToHex(new Uint8Array(t.toBuffer()))};/**
|
|
1
|
+
'use strict';var utils_js=require('@noble/hashes/utils.js'),legacy_js=require('@noble/hashes/legacy.js'),Ce=require('bs58'),secp256k1_js=require('@noble/curves/secp256k1.js'),sha2_js=require('@noble/hashes/sha2.js'),aes_js=require('@noble/ciphers/aes.js');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Ce__default=/*#__PURE__*/_interopDefault(Ce);var At=Object.defineProperty;var vt=(n,e)=>{for(var t in e)At(n,t,{get:e[t],enumerable:true});};var ie=new ArrayBuffer(0),se=null,oe=null;function Bt(){return se||(typeof TextEncoder<"u"?se=new TextEncoder:se={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)}}),se}function Le(){return oe||(typeof TextDecoder<"u"?oe=new TextDecoder:oe={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}}),oe}var b=class n{static LITTLE_ENDIAN=true;static BIG_ENDIAN=false;static DEFAULT_CAPACITY=16;static DEFAULT_ENDIAN=n.BIG_ENDIAN;buffer;view;offset;markedOffset;limit;littleEndian;constructor(e=n.DEFAULT_CAPACITY,t=n.DEFAULT_ENDIAN){this.buffer=e===0?ie:new ArrayBuffer(e),this.view=e===0?new DataView(ie):new DataView(this.buffer),this.offset=0,this.markedOffset=-1,this.limit=e,this.littleEndian=t;}static allocate(e,t){return new n(e,t)}static concat(e,t){let r=0;for(let c=0;c<e.length;++c){let u=e[c];if(u instanceof n)r+=u.limit-u.offset;else if(u instanceof Uint8Array)r+=u.length;else if(u instanceof ArrayBuffer)r+=u.byteLength;else if(Array.isArray(u))r+=u.length;else throw TypeError("Illegal buffer")}if(r===0)return new n(0,t);let i=new n(r,t),s=new Uint8Array(i.buffer),a=0;for(let c=0;c<e.length;++c){let u=e[c];u instanceof n?(s.set(new Uint8Array(u.buffer,u.offset,u.limit-u.offset),a),a+=u.limit-u.offset):u instanceof Uint8Array?(s.set(u,a),a+=u.length):u instanceof ArrayBuffer?(s.set(new Uint8Array(u),a),a+=u.byteLength):(s.set(u,a),a+=u.length);}return i.limit=i.offset=a,i.offset=0,i}static wrap(e,t){if(e instanceof n){let i=e.clone();return i.markedOffset=-1,i}let r;if(e instanceof Uint8Array)r=new n(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 n(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(ie));else if(Array.isArray(e))r=new n(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}readUInt32=this.readUint32;append(e,t){let r=typeof t>"u";r?t=this.offset:t=t;let i;return e instanceof n?(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 n(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 n(0,this.littleEndian);let r=t-e,i=new n(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 c=i-r;return c===0?e:(e.ensureCapacity(t+c),new Uint8Array(e.buffer).set(new Uint8Array(this.buffer).subarray(r,i),t),a&&(this.offset+=c),s&&(e.offset+=c),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?ie: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=Bt().encode(e),a=s.length,c=this.calculateVarint32(a);return i+c+a>this.buffer.byteLength&&this.resize(i+c+a),this.writeVarint32(a,i),i+=c,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 c=Le().decode(new Uint8Array(this.buffer,e,s));return e+=s,t?(this.offset=e,c):{string:c,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}}};var f={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://api.hive.blog","https://rpc.mahdiyari.info","https://api.syncad.com","https://hiveapi.actifit.io","https://api.c0ff33a.uk"],restNodesByApi:{hivesense:["https://api.hive.blog","https://api.syncad.com"]},userAgent:"ecency-sdk",chain_id:"beeab0de00000000000000000000000000000000000000000000000000000000",address_prefix:"STM",timeout:5e3,broadcastTimeout:15e3,retry:5,resilience:{adaptiveTimeout:true,adaptiveTimeoutFloorMs:2e3,adaptiveTimeoutFactor:4,hedge:false,hedgeDelayFloorMs:750,hedgeDelayFactor:2,hedgeBucketCapacity:10,hedgeRefillPerSuccess:.1,totalBudgetFactor:2}},_e=n=>Array.isArray(n)?[...new Set(n.filter(e=>typeof e=="string").map(e=>e.trim().replace(/\/+$/,"")).filter(e=>e.length>0&&/^https?:\/\/.+/.test(e)))]:[],xt=n=>{let e=_e(n);e.length&&(f.nodes=e);},St=n=>{let e=_e(n);e.length&&(f.restNodes=e);},Ut=n=>{if(!n||typeof n!="object")return;let e={...f.restNodesByApi};for(let[t,r]of Object.entries(n)){let i=_e(r);i.length?e[t]=i:delete e[t];}f.restNodesByApi=e;},Tt=n=>{if(typeof n!="string")return;let e=n.trim();!e||/[\u0000-\u001f\u007f]/.test(e)||(f.userAgent=e);},Et=n=>{if(!n||typeof n!="object")return;let e=f.resilience,t=i=>typeof i=="boolean",r=i=>typeof i=="number"&&Number.isFinite(i)&&i>0;t(n.adaptiveTimeout)&&(e.adaptiveTimeout=n.adaptiveTimeout),r(n.adaptiveTimeoutFloorMs)&&(e.adaptiveTimeoutFloorMs=Math.max(n.adaptiveTimeoutFloorMs,2e3)),r(n.adaptiveTimeoutFactor)&&(e.adaptiveTimeoutFactor=n.adaptiveTimeoutFactor),t(n.hedge)&&(e.hedge=n.hedge),r(n.hedgeDelayFloorMs)&&(e.hedgeDelayFloorMs=n.hedgeDelayFloorMs),r(n.hedgeDelayFactor)&&(e.hedgeDelayFactor=n.hedgeDelayFactor),r(n.hedgeBucketCapacity)&&(e.hedgeBucketCapacity=n.hedgeBucketCapacity),r(n.hedgeRefillPerSuccess)&&(e.hedgeRefillPerSuccess=Math.min(n.hedgeRefillPerSuccess,1)),r(n.totalBudgetFactor)&&(e.totalBudgetFactor=Math.max(n.totalBudgetFactor,1));};var $=class n{data;recovery;compressed;constructor(e,t,r){this.data=e,this.recovery=t,this.compressed=r??true;}static from(e){if(typeof e=="string"){let t=utils_js.hexToBytes(e),r=parseInt(utils_js.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 utils_js.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=utils_js.hexToBytes(e));let t=secp256k1_js.secp256k1.Signature.fromBytes(this.data,"compact"),r=new secp256k1_js.secp256k1.Signature(t.r,t.s,this.recovery);return new T(r.recoverPublicKey(e).toBytes())}};var T=class n{key;prefix;constructor(e,t){this.key=e,this.prefix=t??f.address_prefix;}static fromString(e){let t=f.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=Ce__default.default.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),c=legacy_js.ripemd160(s).subarray(0,4);if(!Pt(a,c))throw new Error("Public key checksum mismatch");try{secp256k1_js.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=$.from(t)),secp256k1_js.secp256k1.verify(t.data,e,this.key,{prehash:false,format:"compact"})}toString(){return kt(this.key,this.prefix)}toJSON(){return this.toString()}inspect(){return `PublicKey: ${this.toString()}`}},kt=(n,e)=>{let t=legacy_js.ripemd160(n);return e+Ce__default.default.encode(new Uint8Array([...n,...t.subarray(0,4)]))},Pt=(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 ae=class n{amount;symbol;constructor(e,t){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 ce=class n{buffer;static from(e){return e instanceof n?e:e instanceof Uint8Array?new n(e):typeof e=="string"?new n(utils_js.hexToBytes(e)):new n(new Uint8Array(e))}constructor(e){this.buffer=e;}toString(){return utils_js.bytesToHex(this.buffer)}toJSON(){return this.toString()}};var h={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},L=()=>{throw new Error("Void can not be serialized")},o=(n,e)=>{n.writeVString(e);},Nt=(n,e)=>{n.writeInt16(e);},ze=(n,e)=>{n.writeInt64(e);},Oe=(n,e)=>{n.writeUint8(e);},D=(n,e)=>{n.writeUint16(e);},E=(n,e)=>{n.writeUint32(e);},Ke=(n,e)=>{n.writeUint64(e);},H=(n,e)=>{n.writeByte(e?1:0);},He=n=>(e,t)=>{let[r,i]=t;e.writeVarint32(r),n[r](e,i);},_=(n,e)=>{let t=ae.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);},V=(n,e)=>{n.writeUint32(Math.floor(new Date(e+"Z").getTime()/1e3));},O=(n,e)=>{e===null||typeof e=="string"&&e.slice(-39)==="1111111111111111111111111111111114T1Anm"?n.append(new Uint8Array(33).fill(0)):n.append(T.from(e).key);},Ve=(n=null)=>(e,t)=>{t=ce.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);},je=Ve(),be=(n,e)=>(t,r)=>{t.writeVarint32(r.length);for(let[i,s]of r)n(t,i),e(t,s);},v=n=>(e,t)=>{e.writeVarint32(t.length);for(let r of t)n(e,r);},M=n=>(e,t)=>{for(let[r,i]of n)try{i(e,t[r]);}catch(s){throw s.message=`${r}: ${s.message}`,s}},q=n=>(e,t)=>{t!==void 0?(e.writeByte(1),n(e,t)):e.writeByte(0);},U=M([["weight_threshold",E],["account_auths",be(o,D)],["key_auths",be(O,D)]]),Rt=M([["account",o],["weight",D]]),we=M([["base",_],["quote",_]]),Dt=M([["account_creation_fee",_],["maximum_block_size",E],["hbd_interest_rate",D]]),m=(n,e)=>{let t=M(e);return (r,i)=>{r.writeVarint32(n),t(r,i);}},d={};d.account_create=m(h.account_create,[["fee",_],["creator",o],["new_account_name",o],["owner",U],["active",U],["posting",U],["memo_key",O],["json_metadata",o]]);d.account_create_with_delegation=m(h.account_create_with_delegation,[["fee",_],["delegation",_],["creator",o],["new_account_name",o],["owner",U],["active",U],["posting",U],["memo_key",O],["json_metadata",o],["extensions",v(L)]]);d.account_update=m(h.account_update,[["account",o],["owner",q(U)],["active",q(U)],["posting",q(U)],["memo_key",O],["json_metadata",o]]);d.account_witness_proxy=m(h.account_witness_proxy,[["account",o],["proxy",o]]);d.account_witness_vote=m(h.account_witness_vote,[["account",o],["witness",o],["approve",H]]);d.cancel_transfer_from_savings=m(h.cancel_transfer_from_savings,[["from",o],["request_id",E]]);d.change_recovery_account=m(h.change_recovery_account,[["account_to_recover",o],["new_recovery_account",o],["extensions",v(L)]]);d.claim_account=m(h.claim_account,[["creator",o],["fee",_],["extensions",v(L)]]);d.claim_reward_balance=m(h.claim_reward_balance,[["account",o],["reward_hive",_],["reward_hbd",_],["reward_vests",_]]);d.comment=m(h.comment,[["parent_author",o],["parent_permlink",o],["author",o],["permlink",o],["title",o],["body",o],["json_metadata",o]]);d.comment_options=m(h.comment_options,[["author",o],["permlink",o],["max_accepted_payout",_],["percent_hbd",D],["allow_votes",H],["allow_curation_rewards",H],["extensions",v(He([M([["beneficiaries",v(Rt)]])]))]]);d.convert=m(h.convert,[["owner",o],["requestid",E],["amount",_]]);d.create_claimed_account=m(h.create_claimed_account,[["creator",o],["new_account_name",o],["owner",U],["active",U],["posting",U],["memo_key",O],["json_metadata",o],["extensions",v(L)]]);d.custom=m(h.custom,[["required_auths",v(o)],["id",D],["data",je]]);d.custom_json=m(h.custom_json,[["required_auths",v(o)],["required_posting_auths",v(o)],["id",o],["json",o]]);d.decline_voting_rights=m(h.decline_voting_rights,[["account",o],["decline",H]]);d.delegate_vesting_shares=m(h.delegate_vesting_shares,[["delegator",o],["delegatee",o],["vesting_shares",_]]);d.delete_comment=m(h.delete_comment,[["author",o],["permlink",o]]);d.escrow_approve=m(h.escrow_approve,[["from",o],["to",o],["agent",o],["who",o],["escrow_id",E],["approve",H]]);d.escrow_dispute=m(h.escrow_dispute,[["from",o],["to",o],["agent",o],["who",o],["escrow_id",E]]);d.escrow_release=m(h.escrow_release,[["from",o],["to",o],["agent",o],["who",o],["receiver",o],["escrow_id",E],["hbd_amount",_],["hive_amount",_]]);d.escrow_transfer=m(h.escrow_transfer,[["from",o],["to",o],["hbd_amount",_],["hive_amount",_],["escrow_id",E],["agent",o],["fee",_],["json_meta",o],["ratification_deadline",V],["escrow_expiration",V]]);d.feed_publish=m(h.feed_publish,[["publisher",o],["exchange_rate",we]]);d.limit_order_cancel=m(h.limit_order_cancel,[["owner",o],["orderid",E]]);d.limit_order_create=m(h.limit_order_create,[["owner",o],["orderid",E],["amount_to_sell",_],["min_to_receive",_],["fill_or_kill",H],["expiration",V]]);d.limit_order_create2=m(h.limit_order_create2,[["owner",o],["orderid",E],["amount_to_sell",_],["exchange_rate",we],["fill_or_kill",H],["expiration",V]]);d.recover_account=m(h.recover_account,[["account_to_recover",o],["new_owner_authority",U],["recent_owner_authority",U],["extensions",v(L)]]);d.request_account_recovery=m(h.request_account_recovery,[["recovery_account",o],["account_to_recover",o],["new_owner_authority",U],["extensions",v(L)]]);d.reset_account=m(h.reset_account,[["reset_account",o],["account_to_reset",o],["new_owner_authority",U]]);d.set_reset_account=m(h.set_reset_account,[["account",o],["current_reset_account",o],["reset_account",o]]);d.set_withdraw_vesting_route=m(h.set_withdraw_vesting_route,[["from_account",o],["to_account",o],["percent",D],["auto_vest",H]]);d.transfer=m(h.transfer,[["from",o],["to",o],["amount",_],["memo",o]]);d.transfer_from_savings=m(h.transfer_from_savings,[["from",o],["request_id",E],["to",o],["amount",_],["memo",o]]);d.transfer_to_savings=m(h.transfer_to_savings,[["from",o],["to",o],["amount",_],["memo",o]]);d.transfer_to_vesting=m(h.transfer_to_vesting,[["from",o],["to",o],["amount",_]]);d.vote=m(h.vote,[["voter",o],["author",o],["permlink",o],["weight",Nt]]);d.withdraw_vesting=m(h.withdraw_vesting,[["account",o],["vesting_shares",_]]);d.witness_update=m(h.witness_update,[["owner",o],["url",o],["block_signing_key",O],["props",Dt],["fee",_]]);d.witness_set_properties=m(h.witness_set_properties,[["owner",o],["props",be(o,je)],["extensions",v(L)]]);d.account_update2=m(h.account_update2,[["account",o],["owner",q(U)],["active",q(U)],["posting",q(U)],["memo_key",q(O)],["json_metadata",o],["posting_json_metadata",o],["extensions",v(L)]]);d.create_proposal=m(h.create_proposal,[["creator",o],["receiver",o],["start_date",V],["end_date",V],["daily_pay",_],["subject",o],["permlink",o],["extensions",v(L)]]);d.update_proposal_votes=m(h.update_proposal_votes,[["voter",o],["proposal_ids",v(ze)],["approve",H],["extensions",v(L)]]);d.remove_proposal=m(h.remove_proposal,[["proposal_owner",o],["proposal_ids",v(ze)],["extensions",v(L)]]);var Mt=M([["end_date",V]]);d.update_proposal=m(h.update_proposal,[["proposal_id",Ke],["creator",o],["daily_pay",_],["subject",o],["permlink",o],["extensions",v(He([L,Mt]))]]);d.collateralized_convert=m(h.collateralized_convert,[["owner",o],["requestid",E],["amount",_]]);d.recurrent_transfer=m(h.recurrent_transfer,[["from",o],["to",o],["amount",_],["memo",o],["recurrence",D],["executions",D],["extensions",v(M([["type",Oe],["value",M([["pair_id",Oe]])]]))]]);var Ft=(n,e)=>{let t=d[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}},Ct=M([["ref_block_num",D],["ref_block_prefix",E],["expiration",V],["operations",v(Ft)],["extensions",v(o)]]),Ot=M([["from",O],["to",O],["nonce",Ke],["check",E],["encrypted",Ve()]]),F={Asset:_,Memo:Ot,Price:we,PublicKey:O,String:o,Transaction:Ct,UInt16:D,UInt32:E};var G=n=>new Promise(e=>setTimeout(e,n));var zt=(()=>{try{return !(typeof navigator<"u"&&navigator.product==="ReactNative")&&typeof process<"u"&&process.versions!=null&&process.versions.node!=null}catch{return false}})();function qe(){return zt?{"User-Agent":f.userAgent}:{}}var N=class extends Error{name="RPCError";data;code;stack=void 0;constructor(e){super(e.message),this.code=e.code,"data"in e&&(this.data=e.data);}},Y=class extends Error{node;rateLimitMs;isRateLimit;constructor(e,t,r={}){super(t),this.node=e,this.rateLimitMs=r.rateLimitMs??0,this.isRateLimit=r.isRateLimit??false;}};function Ye(n){if(!n)return 0;let e=Number(n);if(Number.isFinite(e))return e>0?e*1e3:0;let t=Date.parse(n);if(Number.isFinite(t)){let r=t-Date.now();return r>0?r:0}return 0}var Kt=["ECONNREFUSED","ENOTFOUND","EHOSTUNREACH","EAI_AGAIN"],Ht=["Failed to fetch","NetworkError when attempting to fetch","Load failed","fetch failed"];function Vt(n){if(!n)return "";let e=[String(n.name||""),String(n.message||""),String(n.code||"")],t=n.cause;for(let r=0;t&&r<5;r++)e.push(String(t.code||""),String(t.message||"")),t=t.cause;return e.join(" ")}function jt(n){if(!n)return false;if(n instanceof Y)return true;if(n instanceof N)return false;let e=Vt(n);return !!(Kt.some(t=>e.includes(t))||Ht.some(t=>e.includes(t))||n instanceof SyntaxError||/Unexpected token|JSON\.parse|Unexpected end of JSON/i.test(e))}function Ae(n,e){return !!(n===-32603||n<=-32e3&&n>=-32099||n===-32601||n===-32602&&/unable to parse|endpoint data|internal/i.test(e))}function We(n){let e=n.indexOf(".");return e>0?n.slice(0,e):n}var $t=1e4,qt=6e4,Yt=12e4,Wt=2,Jt=6e4,$e=12e4,Gt=30,X=.3,ve=3,Q=5*6e4,Je=6e4,Ge=1e3,Xe=2e3,Qe=700,Ze=2.5,Xt=new Set(["hapi.ecency.com","api.ecency.com"]);function Qt(n){try{return Xt.has(new URL(n).hostname)}catch{return false}}var ue=class{health=new Map;getOrCreate(e){let t=this.health.get(e);return t||(t={consecutiveFailures:0,lastFailureTime:0,rateLimitedUntil:0,rateLimitStreak:0,lastRateLimitAt:0,apiFailures:new Map,headBlock:0,headBlockUpdatedAt:0,ewmaLatencyMs:void 0,latencySampleCount:0,latencyUpdatedAt:0,lastProbeAt:Date.now(),apiLatency:new Map},this.health.set(e,t)),t}recordSuccess(e,t,r,i){let s=this.getOrCreate(e);s.consecutiveFailures=0,s.rateLimitStreak=0,t&&s.apiFailures.delete(t),typeof r=="number"&&Number.isFinite(r)&&r>=0&&this.recordLatency(s,r,i??t);}recordSlowFailure(e,t,r){!Number.isFinite(t)||t<Xe||this.recordLatency(this.getOrCreate(e),t,r);}getUsableLatencyMs(e,t){let r=this.health.get(e);if(!r)return;let i=Date.now();if(t!==void 0){let s=r.apiLatency.get(t);return s&&s.sampleCount>=ve&&i-s.updatedAt<=Q?s.ewmaMs:void 0}return this.isLatencyUsable(r,i)?r.ewmaLatencyMs:void 0}recordCensoredLatency(e,t,r){!Number.isFinite(t)||t<50||this.recordLatency(this.getOrCreate(e),t,r);}recordLatency(e,t,r){let i=Date.now();if(e.latencyUpdatedAt>0&&i-e.latencyUpdatedAt>Q&&(e.ewmaLatencyMs=void 0,e.latencySampleCount=0,e.apiLatency.clear()),e.ewmaLatencyMs=e.ewmaLatencyMs===void 0?t:X*t+(1-X)*e.ewmaLatencyMs,e.latencySampleCount++,e.latencyUpdatedAt=i,r!==void 0){let s=e.apiLatency.get(r);!s||i-s.updatedAt>Q?e.apiLatency.set(r,{ewmaMs:t,sampleCount:1,updatedAt:i}):(s.ewmaMs=X*t+(1-X)*s.ewmaMs,s.sampleCount++,s.updatedAt=i);}}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>=Wt&&(s.cooldownUntil=i+Jt),r.apiFailures.set(t,s);}else r.consecutiveFailures++,r.lastFailureTime=Date.now();}recordRateLimit(e,t){let r=this.getOrCreate(e),i=Date.now();r.rateLimitStreak>0&&i-r.lastRateLimitAt>Yt&&(r.rateLimitStreak=0);let s=typeof t=="number"&&Number.isFinite(t)&&t>0,a=s?t:Math.min($t*2**r.rateLimitStreak,qt);s||r.rateLimitStreak++,r.lastRateLimitAt=i,r.rateLimitedUntil=s?i+a:Math.max(r.rateLimitedUntil,i+a),r.consecutiveFailures++,r.lastFailureTime=i;}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<=$e&&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<=$e&&s-r.headBlock>Gt)}getOrderedNodes(e,t){let r=[],i=[];for(let l of e)this.isNodeHealthy(l,t)?r.push(l):i.push(l);if(r.length<=1)return [...r,...i];let s=Date.now(),a=this.fastestUsableLatency(r,s),c=r.map((l,y)=>({node:l,i:y,score:this.scoreNode(l,a,s)})).sort((l,y)=>l.score-y.score||l.i-y.i).map(l=>l.node),u=this.pickReprobeCandidate(r,s);return u&&c[0]!==u?[u,...c.filter(l=>l!==u),...i]:[...c,...i]}isLatencyUsable(e,t){return !!e&&e.ewmaLatencyMs!==void 0&&e.latencySampleCount>=ve&&t-e.latencyUpdatedAt<=Q}fastestUsableLatency(e,t){let r=1/0;for(let i of e){let s=this.health.get(i);this.isLatencyUsable(s,t)&&(r=Math.min(r,s.ewmaLatencyMs));}return r}scoreNode(e,t,r){let i=this.health.get(e);if(!this.isLatencyUsable(i,r))return Ge;let s=i.ewmaLatencyMs;return Qt(e)?t>0&&t!==1/0&&s>Ze*t?s:Math.max(s-Qe,0):s}pickReprobeCandidate(e,t){let r=t-Je,i,s=1/0;for(let a of e){let c=this.getOrCreate(a),u=Math.max(c.latencyUpdatedAt,c.lastProbeAt);u<=r&&u<s&&(i=a,s=u);}return i&&(this.getOrCreate(i).lastProbeAt=t),i}},S=new ue,j=new ue,Be=class{tokens=f.resilience.hedgeBucketCapacity;trySpend(){return this.clamp(),this.tokens>=1-1e-9?(this.tokens-=1,true):false}refill(){this.clamp(),this.tokens=Math.min(f.resilience.hedgeBucketCapacity,this.tokens+f.resilience.hedgeRefillPerSuccess);}clamp(){this.tokens>f.resilience.hedgeBucketCapacity&&(this.tokens=f.resilience.hedgeBucketCapacity);}get available(){return this.tokens}reset(e=f.resilience.hedgeBucketCapacity){this.tokens=e;}},xe=new Be;function le(n,e,t,r,i){let s=f.resilience;if(!s.adaptiveTimeout||i)return r;let a=n.getUsableLatencyMs(e,t);return a===void 0?r:Math.ceil(Math.min(r,Math.max(s.adaptiveTimeoutFloorMs,s.adaptiveTimeoutFactor*a)))}function Ue(n,e,t,r){t instanceof Y?t.isRateLimit?n.recordRateLimit(e,t.rateLimitMs||void 0):n.recordFailure(e,r):t instanceof N?n.recordFailure(e,r):n.recordFailure(e);}function et(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 Zt(){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 tt(n){if(n=Math.ceil(n),typeof AbortSignal.timeout=="function")return {signal:AbortSignal.timeout(n),cleanup:()=>{}};let e=new AbortController,t=setTimeout(()=>e.abort(Zt()),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 Z=async(n,e,t,r=f.timeout,i=false,s)=>{let a=Math.floor(Math.random()*1e8),c={jsonrpc:"2.0",method:e,params:t,id:a},{signal:u,cleanup:l}=tt(r),{signal:y,cleanup:B}=Te(u,s),x=()=>{l(),B();};try{let g=await fetch(n,{method:"POST",body:JSON.stringify(c),headers:{"Content-Type":"application/json",...qe()},signal:y});if(g.status===429)throw new Y(n,"HTTP 429 Rate Limited",{rateLimitMs:Ye(g.headers.get("Retry-After")),isRateLimit:!0});if(g.status>=500&&g.status<600)throw new Y(n,`HTTP ${g.status} from ${n}`);let A=await g.json();if(!A||typeof A.id>"u"||A.id!==a||A.jsonrpc!=="2.0")throw new Error("JSONRPC id mismatch");if("result"in A)return A.result;if("error"in A){let I=A.error;throw "message"in I&&"code"in I?new N(I):A.error}throw A}catch(g){if(g instanceof N||g instanceof Y||s?.aborted)throw g;if(i)return Z(n,e,t,r,false,s);throw g}finally{x();}};function Se(){return G(50+Math.random()*50)}function er(n){let{method:e,params:t,api:r,primary:i,hedgePool:s,callerTimeout:a,explicitTimeout:c,deadlineAt:u,externalSignal:l,onHedgeFired:y}=n;return new Promise((B,x)=>{let g=false,A=0,I=false,p=false,re,C,W=0,J=[],z=k=>{if(!g){g=true,C!==void 0&&(clearTimeout(C),C=void 0);for(let P of J)P.signal.aborted||P.abort();k();}},ne=(k,P)=>{A++;let w=new AbortController;J.push(w);let K=Te(w.signal,l),pe=le(S,k,e,a,c),ge=Date.now();P||(W=ge),Z(k,e,t,pe,false,K.signal).then(R=>{K.cleanup(),A--,P||(p=true),!g&&(S.recordSuccess(k,r,Date.now()-ge,e),et(S,k,e,R),P?p||S.recordCensoredLatency(i,Date.now()-W,e):I||xe.refill(),z(()=>B(R)));}).catch(R=>{if(K.cleanup(),A--,P||(p=true),!g){if(l?.aborted){z(()=>x(R));return}if(R instanceof N&&!Ae(R.code,R.message)){z(()=>x(R));return}if(Ue(S,k,R,r),S.recordSlowFailure(k,Date.now()-ge,e),re=R,!P&&!I){z(()=>x(R));return}A===0&&z(()=>x(re));}});};ne(i,false);let he=S.getUsableLatencyMs(i,e)??0,me=le(S,i,e,a,c),ye=Math.min(Math.max(f.resilience.hedgeDelayFloorMs,f.resilience.hedgeDelayFactor*he),.8*me);C=setTimeout(()=>{if(C=void 0,g||l?.aborted||Date.now()>=u)return;let k=s.filter(w=>S.isNodeHealthy(w,r));if(k.length===0)return;let P=k[Math.floor(Math.random()*k.length)];xe.trySpend()&&(I=true,y(P),ne(P,true));},ye);})}var fe=async(n,e=[],t,r=f.retry,i)=>{if(!Array.isArray(f.nodes))throw new Error("config.nodes is not an array");if(f.nodes.length===0)throw new Error("config.nodes is empty");let s=t!==void 0,a=t??f.timeout,c=We(n),u=Date.now()+f.resilience.totalBudgetFactor*a,l=new Set,y;for(let B=0;B<=r&&!(B>0&&Date.now()>=u);B++){let x=S.getOrderedNodes(f.nodes,c),g=x.find(p=>!l.has(p));g||(l.clear(),g=x[0]),l.add(g);let A=[];if(f.resilience.hedge&&S.getUsableLatencyMs(g,n)!==void 0&&(A=x.filter(p=>!l.has(p)&&S.isNodeHealthy(p,c)).slice(0,3)),A.length>0)try{return await er({method:n,params:e,api:c,primary:g,hedgePool:A,callerTimeout:a,explicitTimeout:s,deadlineAt:u,externalSignal:i,onHedgeFired:p=>l.add(p)})}catch(p){if(p instanceof N&&!Ae(p.code,p.message)||i?.aborted)throw p;y=p,B<r&&await Se();continue}let I=Date.now();try{let p=await Z(g,n,e,le(S,g,n,a,s),!1,i);return S.recordSuccess(g,c,Date.now()-I,n),xe.refill(),et(S,g,n,p),p}catch(p){if(p instanceof N&&!Ae(p.code,p.message)||i?.aborted)throw p;Ue(S,g,p,c),S.recordSlowFailure(g,Date.now()-I,n),y=p,B<r&&await Se();}}throw y},Ee=async(n,e=[],t=f.broadcastTimeout,r)=>{if(!Array.isArray(f.nodes))throw new Error("config.nodes is not an array");if(f.nodes.length===0)throw new Error("config.nodes is empty");let i=We(n),s=new Set,a;for(let c=0;c<f.nodes.length;c++){let l=S.getOrderedNodes(f.nodes,i).find(y=>!s.has(y));if(!l)break;if(s.add(l),r?.aborted)throw new Error("Aborted");try{let y=await Z(l,n,e,t,!1,r);return S.recordSuccess(l,i),y}catch(y){if(y instanceof N||r?.aborted||(Ue(S,l,y,i),a=y,!jt(y)))throw y}}throw a},tr={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 rr(n,e,t,r,i=f.retry,s){if(!Array.isArray(f.restNodes))throw new Error("config.restNodes is not an array");if(f.restNodes.length===0)throw new Error("config.restNodes is empty");let a=r!==void 0,c=r??f.timeout,u=Date.now()+f.resilience.totalBudgetFactor*c,l=`${n}:${e}`,y=f.restNodesByApi?.[n]?.length?f.restNodesByApi[n]:f.restNodes,B=new Set,x,g=false;for(let A=0;A<=i&&!(A>0&&Date.now()>=u);A++){let I=j.getOrderedNodes(y,n),p=I.find(w=>!B.has(w));p||(B.clear(),p=I[0]),B.add(p);let re=p+tr[n],C=e,W=t||{},J=new Set;Object.entries(W).forEach(([w,K])=>{C.includes(`{${w}}`)&&(C=C.replace(`{${w}}`,encodeURIComponent(String(K))),J.add(w));});let z=new URL(re+C);if(Object.entries(W).forEach(([w,K])=>{J.has(w)||(Array.isArray(K)?K.forEach(pe=>z.searchParams.append(w,String(pe))):z.searchParams.set(w,String(K)));}),s?.aborted)throw new Error("Aborted");g=false;let{signal:ne,cleanup:he}=tt(le(j,p,l,c,a)),{signal:me,cleanup:ye}=Te(ne,s),k=()=>{he(),ye();},P=Date.now();try{let w=await fetch(z.toString(),{signal:me,headers:qe()});if(w.status===404)throw new Error("HTTP 404 - Hint: can happen on wrong params");if(w.status===429)throw j.recordRateLimit(p,Ye(w.headers.get("Retry-After"))||void 0),g=!0,new Error(`HTTP 429 Rate Limited by ${p}`);if(w.status===503)throw j.recordFailure(p,n),g=!0,new Error(`HTTP 503 Service Unavailable from ${p}`);if(!w.ok)throw j.recordFailure(p,n),g=!0,new Error(`HTTP ${w.status} from ${p}`);return j.recordSuccess(p,n,Date.now()-P,l),w.json()}catch(w){if(w?.message?.includes("HTTP 404")||s?.aborted)throw w;g||j.recordFailure(p,n),j.recordSlowFailure(p,Date.now()-P,l),x=w,A<i&&await Se();}finally{k();}}throw x}var nr=async(n,e=[],t=2,r)=>{if(!Array.isArray(f.nodes))throw new Error("config.nodes is not an Array");if(t>f.nodes.length)throw new Error("quorum > config.nodes.length");let s=(u=>{let l=[...u];for(let y=l.length-1;y>0;y--){let B=Math.floor(Math.random()*(y+1));[l[y],l[B]]=[l[B],l[y]];}return l})(f.nodes),a=Math.min(t,s.length),c=[];for(;a>0&&s.length>0;){let u=s.splice(0,a),l=[],y=[];for(let x=0;x<u.length;x++)l.push(Z(u[x],n,e,void 0,true,r).then(g=>y.push(g)).catch(()=>{}));await Promise.all(l),c.push(...y);let B=ir(c,t);if(B)return B;if(a=Math.min(t,s.length),a===0)throw new Error("No more nodes available.")}throw new Error("Couldn't reach quorum.")};function ir(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 or=utils_js.hexToBytes(f.chain_id),ke=class n{transaction;expiration=6e4;txId;constructor(e){e?.transaction&&(e.transaction instanceof n?(this.transaction=e.transaction.transaction,this.expiration=e.transaction.expiration):this.transaction=e.transaction,this.transaction&&!Array.isArray(this.transaction.signatures)&&(this.transaction.signatures=[]),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 Ee("condenser_api.broadcast_transaction",[this.transaction]);}catch(s){if(!(s instanceof N&&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 G(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 G(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 b(b.DEFAULT_CAPACITY,b.LITTLE_ENDIAN),t={...this.transaction};try{F.Transaction(e,t);}catch(a){throw new Error("Unable to serialize transaction: "+a)}e.flip();let r=new Uint8Array(e.toBuffer()),i=utils_js.bytesToHex(sha2_js.sha256(r)).slice(0,40);return {digest:sha2_js.sha256(new Uint8Array([...or,...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),fe("transaction_status_api.find_transaction",{transaction_id:this.txId,expiration:this.transaction?.expiration})}createTransaction=async e=>{let t=await fe("condenser_api.get_dynamic_global_properties",[]),r=utils_js.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:[]};}};var at=new Uint8Array([128]),te=class n{key;constructor(e){this.key=e;try{secp256k1_js.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(lr(e).subarray(1))}static fromSeed(e){if(typeof e=="string")if(/^[0-9a-fA-F]+$/.test(e))e=utils_js.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(sha2_js.sha256(e))}static fromLogin(e,t,r="active"){let i=e+r+t;return n.fromSeed(i)}sign(e){let t=secp256k1_js.secp256k1.sign(e,this.key,{extraEntropy:true,format:"recovered",prehash:false}),r=parseInt(utils_js.bytesToHex(t.subarray(0,1)),16);return $.from((r+31).toString(16)+utils_js.bytesToHex(t.subarray(1)))}createPublic(e){return new T(secp256k1_js.secp256k1.getPublicKey(this.key),e)}toString(){return ur(new Uint8Array([...at,...this.key]))}inspect(){let e=this.toString();return `PrivateKey: ${e.slice(0,6)}...${e.slice(-6)}`}getSharedSecret(e){let t=secp256k1_js.secp256k1.getSharedSecret(this.key,e.key);return sha2_js.sha512(t.subarray(1))}static randomKey(){return new n(secp256k1_js.secp256k1.keygen().secretKey)}},ct=n=>sha2_js.sha256(sha2_js.sha256(n)),ur=n=>{let e=ct(n);return Ce__default.default.encode(new Uint8Array([...n,...e.slice(0,4)]))},lr=n=>{let e=Ce__default.default.decode(n);if(!st(e.slice(0,1),at))throw new Error("Private key network id mismatch");let t=e.slice(-4),r=e.slice(0,-4),i=ct(r).slice(0,4);if(!st(t,i))throw new Error("Private key checksum mismatch");return r},st=(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 lt=(n,e,t,r=pr())=>dt(n,e,r,t),ft=(n,e,t,r,i)=>dt(n,e,t,r,i).message,dt=(n,e,t,r,i)=>{let s=t,a=n.getSharedSecret(e),c=new b(b.DEFAULT_CAPACITY,b.LITTLE_ENDIAN);c.writeUint64(s),c.append(a),c.flip();let u=sha2_js.sha512(new Uint8Array(c.toBuffer())),l=u.subarray(32,48),y=u.subarray(0,32),B=sha2_js.sha256(u).subarray(0,4),x=new b(b.DEFAULT_CAPACITY,b.LITTLE_ENDIAN);x.append(B),x.flip();let g=x.readUint32();if(i!==void 0){if(g!==i)throw new Error("Invalid key");r=mr(r,y,l);}else r=yr(r,y,l);return {nonce:s,message:r,checksum:g}},mr=(n,e,t)=>{let r=n;return r=aes_js.cbc(e,t).decrypt(r),r},yr=(n,e,t)=>{let r=n;return r=aes_js.cbc(e,t).encrypt(r),r},Ie=null,pr=()=>{if(Ie===null){let t=secp256k1_js.secp256k1.utils.randomSecretKey();Ie=t[0]<<8|t[1];}let n=BigInt(Date.now()),e=++Ie%65536;return n=n<<BigInt(16)|BigInt(e),n};var ht=n=>{let e=vr(n,33);return new T(e)},_r=n=>n.readUint64(),br=n=>n.readUint32(),wr=n=>{let e=n.readVarint32(),t=n.copy(n.offset,n.offset+e);return n.skip(e),new Uint8Array(t.toBuffer())},Ar=n=>e=>{let t={},r=new b(b.DEFAULT_CAPACITY,b.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 vr(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 Br=Ar([["from",ht],["to",ht],["nonce",_r],["check",br],["encrypted",wr]]),mt={Memo:Br};var pt=(n,e,t,r)=>{if(!t.startsWith("#"))return t;t=t.substring(1),_t(),n=bt(n),e=xr(e);let i=new b(b.DEFAULT_CAPACITY,b.LITTLE_ENDIAN);i.writeVString(t);let s=new Uint8Array(i.copy(0,i.offset).toBuffer()),{nonce:a,message:c,checksum:u}=lt(n,e,s,r),l=new b(b.DEFAULT_CAPACITY,b.LITTLE_ENDIAN);F.Memo(l,{check:u,encrypted:c,from:n.createPublic(),nonce:a,to:e}),l.flip();let y=new Uint8Array(l.toBuffer());return "#"+Ce__default.default.encode(y)},gt=(n,e)=>{if(!e.startsWith("#"))return e;e=e.substring(1),_t(),n=bt(n);let t=mt.Memo(Ce__default.default.decode(e)),{from:r,to:i,nonce:s,check:a,encrypted:c}=t,l=n.createPublic().toString()===new T(r.key).toString()?new T(i.key):new T(r.key);t=ft(n,l,s,c,a);let y=new b(b.DEFAULT_CAPACITY,b.LITTLE_ENDIAN);return y.append(t),y.flip(),"#"+y.readVString()},de,_t=()=>{if(de===void 0){let n;de=true;try{let e="5JdeC9P7Pbd1uGdFVEsJ41EkEnADbbHGq6p1BwFxm6txNBsQnsw",r=pt(e,"STM8m5UgaFAAYQRuaNejYdS8FVLVp9Ss3K1qAVk5de6F8s3HnVbvA","#memo\u7231");n=gt(e,r);}finally{de=n==="#memo\u7231";}}if(de===false)throw new Error("This environment does not support encryption.")},bt=n=>typeof n=="string"?te.fromString(n):n,xr=n=>typeof n=="string"?T.fromString(n):n,Sr={decode:gt,encode:pt};var wt={};vt(wt,{buildWitnessSetProperties:()=>Ir,makeBitMaskFilter:()=>kr,operations:()=>Er,validateUsername:()=>Tr});var Tr=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},Er={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},kr=n=>n.reduce(Pr,[BigInt(0),BigInt(0)]).map(e=>e!==BigInt(0)?e.toString():null),Pr=([n,e],t)=>t<64?[n|BigInt(1)<<BigInt(t),e]:[n,e|BigInt(1)<<BigInt(t-64)],Ir=(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=F.PublicKey;break;case "account_subsidy_budget":case "account_subsidy_decay":case "maximum_block_size":i=F.UInt32;break;case "hbd_interest_rate":i=F.UInt16;break;case "url":i=F.String;break;case "hbd_exchange_rate":i=F.Price;break;case "account_creation_fee":i=F.Asset;break;default:throw new Error(`Unknown witness prop: ${r}`)}t.props.push([r,Lr(i,e[r])]);}return t.props.sort((r,i)=>r[0].localeCompare(i[0])),["witness_set_properties",t]},Lr=(n,e)=>{let t=new b(b.DEFAULT_CAPACITY,b.LITTLE_ENDIAN);return n(t,e),t.flip(),utils_js.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
|
-
*/exports.Memo=
|
|
8
|
+
*/exports.Memo=Sr;exports.PrivateKey=te;exports.PublicKey=T;exports.Signature=$;exports.Transaction=ke;exports.callREST=rr;exports.callRPC=fe;exports.callRPCBroadcast=Ee;exports.callWithQuorum=nr;exports.config=f;exports.setNodes=xt;exports.setResilience=Et;exports.setRestNodes=St;exports.setRestNodesByApi=Ut;exports.setUserAgent=Tt;exports.utils=wt;//# sourceMappingURL=hive.cjs.map
|
|
9
9
|
//# sourceMappingURL=hive.cjs.map
|