@dioxide-js/web3.js
Version:
dioxide javascript API
2 lines (1 loc) • 49.2 kB
JavaScript
import e from"bignumber.js";import a from"base32-decode";import t from"base32-encode";import r from"crc-32/crc32c.js";import*as i from"@noble/ed25519";import n from"sha256";import o from"crypto";import s from"query-string";import l from"json-bigint";import d from"node-fetch";import{decode as c,encode as u}from"base64-arraybuffer";import{sha256 as h}from"js-sha256";import{sha512 as m}from"js-sha512";var p,g;function b(){return{symbol:"DIO",decimals:8}}function y(e){return e===g.MAIN?{dioxide:"https://api.dioxide.network/api",rpc:"https://node-rpc.dioxide.network"}:"object"==typeof e?{dioxide:(null==e?void 0:e.dioxide)||"http://47.100.78.190:7000/dev/api",rpc:(null==e?void 0:e.rpc)||"http://139.224.254.200:62222"}:{dioxide:"http://47.100.78.190:7000/dev/api",rpc:"http://139.224.254.200:62222"}}function f(e,a,t,r){return new(t||(t=Promise))((function(i,n){function o(e){try{l(r.next(e))}catch(e){n(e)}}function s(e){try{l(r.throw(e))}catch(e){n(e)}}function l(e){var a;e.done?i(e.value):(a=e.value,a instanceof t?a:new t((function(e){e(a)}))).then(o,s)}l((r=r.apply(e,a||[])).next())}))}function w(...e){let a=0;const t=e.map((e=>new Uint8Array(e)));t.forEach((e=>{a+=e.length}));const r=new Uint8Array(a);let i=0;return t.forEach((e=>{r.set(e,i),i+=e.length})),r}function v(e,a){if(e.length!==a.length)return!1;for(let t=0;t<e.length;t++)if(e[t]!==a[t])return!1;return!0}!function(e){e.SET_METADATA="core.profile.set",e.SET_SCOPE_METADATA="core.profile.address.set",e.FAUCET="core.coin.faucet",e.FAUCET_SCOPE="core.coin.address.faucet",e.MANAGED_TOKEN="Asset.TokenManager.create",e.CREATE_ADDRESS_TOKEN="core.delegation.address.create_token",e.CREATE_TOKEN="core.delegation.create_token",e.TOKEN_FINALIZE="token_finalize@address.delegation.core",e.TOKEN_BID="token_bid@address.delegation.core",e.MINT_TOKEN="core.token_stats.address.supply_change",e.MINT_NFT="nonfungible_init@address.delegation.core",e.MINTED="core.coin.global.minted",e.TRANSFER="core.coin.transfer",e.TRANSFER_NFT="transfer@address.vault.core",e.TRANSFER_TOKENS="core.wallet.transfer",e.RECEIVE_TOKENS="Asset.Wallet.address.deposit",e.INIT_DAPP="core.delegation.create",e.INIT_SCOPE_DAPP="core.delegation.address.create",e.MINT="core.coin.mint",e.COMPOSE_NFT="nft.compose",e.RECEIVE_NFT="deposit@address.vault.core",e.SEND_COMPOSED_TX_DATA="send_composed_tx_data",e.DEPLOY_CONTRACT="core.delegation.address.deploy_contracts",e.SET_TOKEN_MINTER="core.delegation.set_token_minter",e.BRX_CLAIM="rxbridge.BitReXe.claimBRX",e.BRX_BURN="rxbridge.BitReXe.burnRXBTC",e.WALLET_BRX_CLAIM="rxbridge.BitReXe.address.claimBRX",e.WALLET_BRX_BURN="rxbridge.BitReXe.address.burnRXBTC",e.WALLET_CORE_DEPOSIT="core.coin.address.deposit",e.WALLET_DEPOSIT="core.wallet.address.deposit",e.WALLET_BITREXE_DEPOSIT="rxbridge.BitReXe.address._deposit"}(p||(p={})),function(e){e.MAIN="main",e.TEST="test"}(g||(g={})),"function"==typeof SuppressedError&&SuppressedError;const k=e=>e&&"object"==typeof e?(Object.keys(e).forEach((a=>{const t=e[a];["",void 0,null].includes(t)&&delete e[a]})),e):e,x=(a,t)=>new e(a).dividedBy(t),j=e=>e?`${e.split(":")[0]}:ed25519`:"";function T(e){try{const[i]=e.split(":"),n=new Uint8Array(a(i,"Crockford")).slice(0,32);let o=r.buf(n,3);o=4294967280&o|3,o>>>=0;const s=new Int32Array([o]).buffer,l=w(n,new Uint8Array(s));return t(l,"Crockford")===i.toUpperCase()}catch(e){return console.error("Exception "+e),!1}}function A(e){const[t]=e.split(":"),i=new Uint8Array(a(t,"Crockford")),n=i.slice(0,32),o=function(e){const a=3,t=3;let i=r.buf(e,a);i=4294967280&i|t,i>>>=0;const n=new Int32Array([i]).buffer,o=new Uint8Array(n),s=w(e,o);return s}(n);return v(i,o)?n:null}const z=(e,t=2)=>{const r=e.split(":")[0];if(!r)throw new Error("Invalid address format");const i=new Uint8Array(a(r,"Crockford")),n=String.fromCharCode.apply(null,[...i]);if(!n||36!=n.length)throw"invalid address format";const o=new Uint32Array(9);for(let e=0;e<9;e++){o[e]=0;for(let a=0;a<4;a++)o[e]+=n.charCodeAt(4*e+a)<<8*a}return(o[0]^o[7]^o[4])&~(4294967295<<t)};class E{constructor(){this.saltRef=1,this.alias="Address1",this.words=[],this.salt=this.formatedSalt(this.saltRef),this.seed=this.generateSeed()}generateAddress(){return f(this,void 0,void 0,(function*(){const e=yield _(this.seed,this.salt);if(!e)throw new Error("Invalid key received");const a=q(e[0]);if(!a)throw new Error("Failed to generate");return{address:t(a.address,"Crockford").toLocaleLowerCase()+":"+a.encryptMethod,words:this.words,seed:this.seed}}))}generateSeed(e){try{let a=[];if(e)a=e;else{const e=new Uint8Array(27);a=o.getRandomValues(e)}return this.words=this.encodeMnemonic(a),new Uint8Array(a)}catch(e){console.error("Exception "+e)}return new Uint8Array}encodeMnemonic(e){try{const a=[];for(let t=0;t<9;t++){const r=e[3*t]+e[3*t+1]%16*256,i=(e[3*t+1]>>4)+16*e[3*t+2];a.push(S[r]),a.push(S[i])}return a}catch(e){return[]}}formatedSalt(e){if(1==e)return new Uint8Array;{const a=new Uint8Array(5);return a[0]=0,a[1]=(e-1)%256,a[2]=(e-1>>8)%256,a[3]=(e-1>>16)%256,a[4]=e-1>>24,a}}}const S=["abandon","abbey","abdomen","aber","abide","ability","able","abnormal","aboard","abort","about","above","abroad","absent","absorb","abstract","abundant","abusive","academy","access","accident","account","accrue","accuse","acdbline","acer","achieve","acid","acne","acoustic","acquire","acre","across","acrylic","acted","action","actor","actress","acts","actual","acura","acute","adam","adapter","added","adding","address","adds","adele","adequate","adhere","adidas","adipex","adjacent","adjust","admin","adobe","adolf","adopt","adrian","adsl","advance","adverse","advice","advocacy","adware","aerial","aero","affair","affect","affiliate","afford","afghan","afraid","after","against","aged","agent","ages","aggregate","aging","agree","aguilar","aids","aimed","aims","airbus","aircraft","aire","airfare","airline","airport","airway","ajax","alan","alarm","alba","albert","album","alcatel","alcohol","alert","alex","alfa","alfred","algebra","algorithm","alice","alien","align","alike","alison","alito","alive","alkali","alle","allow","ally","almost","along","alot","aloud","alphabet","alpine","already","alright","also","alter","although","altima","alto","alumni","always","alzheimer","amazon","amber","ambien","ambush","amend","america","amino","amnesty","among","amount","ample","amps","amsterdam","amuse","anaheim","anatomy","ance","anchor","ancient","andale","anderson","andorra","andre","andy","angel","angle","angola","angry","angus","anime","ankle","anna","anne","annie","announce","annual","anonymous","another","ansi","answer","antarctic","ante","anthem","anti","anton","anxiety","anybody","anymore","anyone","anytime","anyway","apache","apartment","aperture","apex","aphrodite","apnic","apollo","apparel","appear","apply","appoint","approx","apps","april","aqua","arbitrary","arbor","arcade","archive","arctic","area","argentina","args","argue","arise","arizona","arkansas","arlington","armed","armor","arms","army","arnold","aroma","around","array","arrest","arrive","arrow","arthur","artist","arts","artwork","asap","asbestos","ascent","ascii","asha","ashley","asia","aside","asin","asked","asking","asks","asleep","aspen","asphalt","assay","asset","assist","associate","assume","aster","asthma","aston","astro","asus","asylum","athens","athlon","atkin","atlantic","atom","attach","attend","attic","attorney","attract","auckland","auction","audio","august","aunt","aurora","aussi","austin","author","autism","auto","autumn","auxiliary","available","avalon","avenue","average","aviation","avid","avoid","avon","avril","await","award","away","awesome","awful","axis","baby","bach","back","bacon","bacteria","badge","badly","baghdad","bags","bahrain","bail","bake","balance","balcony","bald","bali","ball","baltic","bamboo","banana","band","bang","bank","banner","banquet","barb","barcode","bare","bargain","bark","barn","baron","barr","bars","bart","base","bash","basic","basket","bass","batch","bate","bath","batman","baton","battle","bauer","bdsm","beach","bead","beam","bean","bear","beat","beauty","became","beck","become","bedding","bedford","bedroom","beds","beef","been","beer","began","begin","begun","behalf","behind","beige","beijing","being","belarus","belfast","belgium","belief","belkin","bell","belmont","below","belt","bench","bend","benefit","benin","benjamin","benny","benq","benson","bent","benz","berkeley","berlin","berman","bern","berry","beside","best","beta","beth","bets","better","between","beverly","beware","beyond","bhutan","bias","biblical","bibtex","bicycle","bidder","bids","biggest","bike","bikini","bilateral","bility","bill","binary","bind","bing","binomial","biochem","biodiesel","biography","biol","biomed","bios","biotech","bird","birth","bishop","bissau","bite","bits","bizarre","bizrate","blade","blah","blair","blake","blame","blank","blast","bldg","bleed","blend","bless","blink","bliss","block","blog","blond","blood","blue","bluff","blunt","blvd","bnet","board","boat","body","boeing","bois","bold","bolivia","boll","bolt","bomb","bond","bone","bonn","bonus","book","bool","boost","boot","border","bore","boris","born","boro","borrow","bosch","bosnia","boss","boston","botany","both","bots","bottom","bought","boulder","bound","bouquet","bout","bowl","boxes","boxing","boyd","boyfriend","boys","brace","brad","brain","brake","brand","bras","brave","brazil","break","bree","brent","bret","brian","brick","bride","brief","bright","brilliant","bring","bristol","british","broad","brock","broke","bronx","brook","brother","brought","brown","bruce","bruno","brush","brut","bryan","bubble","buck","budapest","buddy","budget","buena","buff","bufing","bugs","buick","build","bukkake","bulb","bulgaria","bulk","bull","bump","bunch","bundle","bunn","burden","bureau","burial","burke","burley","burma","burst","burt","burundi","buses","bush","business","bust","busy","butler","buyer","buying","buys","buzz","bypass","byron","byte","cabin","cable","cache","cadiz","cafe","cage","caicos","cair","cake","calcium","calendar","calgary","call","calm","calorie","calvin","cambodia","camcorder","camden","came","camp","cams","canada","canberra","cancel","candy","cane","canna","canon","cant","canvas","canyon","capable","cape","capital","capri","caps","capture","cara","carb","carcass","card","care","cargo","carl","carmen","carney","carol","carp","carr","cars","cart","carve","casa","cascade","case","cash","casino","cass","cast","casual","catalog","catchy","category","cath","cats","cattle","caught","cause","caution","cave","cayman","cctv","cdna","cease","cedar","ceiling","celeb","cell","celtic","cement","census","center","ceramic","cereal","cern","certain","cest","chad","chair","challenge","champ","change","chao","chapel","char","chase","chat","cheap","check","cheer","chef","chelsea","chem","chen","cheque","cher","chest","chevy","chick","chief","child","chip","chirac","chloe","chocolate","choice","choose","chop","chord","chose","chris","chrome","chrysler","chubby","cialis","ciao","cigar","cindy","cinema","cingular","cinnamon","circle","citadel","cite","citrus","city","civil","claim","clam","clan","clark","class","claus","clay","clear","clerk","clever","clic","client","cliff","climb","clinic","clip","clock","clone","close","cloth","cloud","club","clue","cluster","clutch","cnet","coaches","coal","coast","coat","cobra","coca","coco","code","coffee","cognitive","cohen","coil","coin","coke","cola","cold","cole","coli","college","color","column","combo","come","comfort","common","como","company","concept","conduct","cone","config","congo","conjugate","connect","conrad","const","contact","convey","conwy","cook","cool","coop","cope","copper","cops","copy","cord","core","cork","corn","corona","corp","correct","corvette","cosmic","cosplay","cost","cote","cotton","cough","could","count","coupe","court","cousin","cover","cowboy","cows","crab","crack","cradle","craft","craig","crane","crawl","crazy","cream","credit","creek","crest","crew","crib","cricket","cried","crim","crisp","critic","croatia","crop","cross","crow","crucial","crude","crue","cruise","crush","cruz","crystal","ctrl","cuba","cube","cubs","cuisine","culinary","culture","cumbria","cups","curb","cure","curious","curl","current","curse","curt","curve","cushion","custom","cute","cutie","cuts","cutter","cyber","cycle","cygwin","cylinder","cynthia","cyprus","czech","daemon","daewoo","daily","dairy","daisy","dakota","dale","dallas","damage","dame","dana","dance","danger","daniel","danny","dans","dare","dark","darla","darren","darwin","dash","data","date","daughter","dave","davis","dawn","dawson","daylight","days","dayton","deaf","deal","dean","dear","debate","debbie","debit","deborah","debra","debt","debug","decay","december","decide","deck","decline","deco","decrease","dedicate","deduct","deed","deem","deep","deer","default","defend","define","degree","delay","delete","delhi","deliver","dell","delphi","delta","deluxe","demand","demo","denim","denmark","denny","denon","dense","dent","denver","deny","depend","deploy","depot","deprive","dept","deputy","derby","derek","derive","describe","desert","design","desk","despite","dessert","destiny","detail","detect","detroit","deutsch","develop","device","devon","dewey","diablo","diagram","dial","diamond","diane","diaper","diary","diaz","dice","didrex","diego","diet","diff","digest","digg","digital","dignity","dilemma","dimension","dining","dinner","dioxin","diploma","direct","dirt","disable","disc","dish","disk","dismal","disney","disorder","display","diss","district","dive","divorce","divx","dixon","djibouti","dock","docs","doctor","document","does","dogs","doing","dolby","doll","dolphin","domain","dome","domino","donate","done","donna","donor","dont","door","dorothy","dorset","dosage","dose","dots","doubt","doug","dove","down","doyle","dozen","draft","drag","drain","drake","drama","draw","dream","dress","drew","drift","drill","drink","drive","drop","drove","drum","dryer","dual","dubai","dublin","duck","dude","duff","duke","dummy","dump","duncan","dundee","dunn","duplex","durable","durham","during","dust","dutch","duty","dvds","dwell","dying","dylan","dynamic","each","eagle","early","earn","earring","ears","earth","ease","easily","east","easy","eating","ebay","ebony","ebook","ecard","echo","eclipse","ecology","ecommerce","economy","ecosystem","ecuador","eden","edgar","edge","edinburgh","edison","edit","edmond","education","edward","edwin","effect","efficacy","effort","eggs","egypt","eight","einstein","either","elaborate","elaine","elastic","elbow","elder","electric","elegant","element","elephant","elevate","eligible","eliminate","elizabeth","ellis","else","elvis","emac","email","embark","embedded","embryo","emerald","emil","eminem","emirates","emission","emma","emotion","emperor","emphasis","empire","employee","empty","enable","enact","encarta","enclose","encore","encrypt","endanger","endif","endl","endo","ends","energy","enforce","engage","engine","english","enhance","enjoy","enlarge","enom","enormous","enough","enquiry","enron","ensembl","ensure","enter","entire","entry","envelope","enzyme","epic","epidemic","epinions","episode","epson","equal","equity","eric","erie","erik","erin","eritrea","ernest","eros","erotic","error","escape","espn","esprit","essay","essential","estate","estimate","estonia","eternal","ethernet","ethic","etiquette","eureka","euro","eval","evan","even","ever","evident","evil","evolve","exact","exam","except","exchange","excite","exclude","excuse","executive","exempt","exercise","exhaust","exhibit","exist","exit","exodus","exotic","expand","expert","expire","explore","expo","express","exquisite","extent","extra","eyed","eyes","fabric","fabulous","face","fact","faculty","fade","fail","fair","faith","fake","falco","falk","fall","false","fame","family","famous","fancy","fans","fantasy","faqs","fare","fargo","farm","fascia","fashion","faso","fast","fatal","fate","father","fatima","fatty","fault","fave","favor","faxes","feast","feature","february","federal","fedora","feed","feel","fees","feet","fell","felt","female","femdom","feminist","fence","fend","feof","fergus","ferry","fertile","fest","fever","fewer","fgets","fiber","fibre","fiction","fide","field","fiesta","fifteen","fight","figure","fiji","file","fill","film","filter","final","find","fine","finger","finish","finland","finn","fiori","fire","firm","first","fiscal","fish","fist","fitness","fits","fitted","fitz","five","fixe","fixture","flag","flame","flash","flat","flavor","flee","flesh","flew","flex","flick","flight","flip","float","flop","florida","flour","flow","floyd","fluctuate","fluid","fluoride","flush","flute","flux","flyer","flying","foam","focal","focus","foil","fold","folk","follow","font","food","fool","foot","forbes","force","ford","forge","fork","form","fort","forum","forward","foss","foster","foto","fought","foul","found","four","fractal","fragile","frame","frank","fraser","freak","fred","free","freight","fremont","french","frequent","fresh","friday","friend","fringe","frog","from","front","frost","frozen","fruit","frustrate","fuel","fuji","fulfil","full","fulton","function","fund","funk","funny","furniture","further","fury","fusion","future","fuzz","gabon","gabriel","gadget","gage","gain","gala","gale","gallery","gals","gambia","game","gamma","gang","gaps","garage","garbage","garcia","garden","garlic","garmin","garnet","garry","gary","gases","gasoline","gate","gather","gauge","gave","gays","gaza","gaze","gear","geek","geforce","gemini","gems","gender","gene","genoa","genre","gent","genus","geoff","geography","geology","geometry","george","gerald","getaway","gets","getting","ghana","ghetto","ghost","giant","gibraltar","gibson","gift","gilbert","gill","ginger","girl","give","glad","gland","glass","glen","globe","glory","gloss","glove","glow","glucose","glue","gmbh","gnome","goal","goat","goddess","gods","goes","gold","golf","gone","gonna","good","google","goose","gordon","gore","gorgeous","gorilla","gospel","goss","goth","goto","gotta","gourmet","govt","gprs","grab","grace","grad","graham","grain","gram","grand","graph","gras","gratis","grave","gray","great","green","greg","grenada","grew","grey","grid","grief","griffin","grill","grip","grocery","groom","group","grove","grow","guadalupe","guam","guard","guatemala","gucci","guest","guide","guild","guinea","guitar","gulf","guns","guru","guyana","guys","gwen","gymnast","gzip","habit","hack","haha","hair","haiti","half","halifax","hall","halo","hamburg","hamilton","hammer","hampton","hand","hang","hanna","hans","happy","harass","harbor","hard","harley","harm","harness","harold","harp","harry","hart","harvey","hash","hassle","hast","hate","hath","hatred","hats","haunt","have","hawaii","hawk","hayes","hazard","hdtv","head","health","hear","heat","heavy","hebrew","heck","hedge","heel","height","held","helen","heli","helm","help","helsing","hence","hendrix","henry","hentai","hepa","herald","herb","here","heritage","herman","hero","hers","herzog","hesitate","hewitt","hewlett","hidden","hide","hier","hifi","high","hike","hilary","hill","hilton","himself","hind","hint","hire","hispanic","history","hitachi","hits","hitter","hobart","hobby","hockey","hoff","hogtied","hold","holiday","holly","holm","hologram","holy","home","honda","honey","hong","honor","hood","hoover","hope","hopkins","horizon","hormone","horowitz","horror","horse","hose","hospital","host","hotel","hotlog","hotmail","hottie","hotwire","houghton","hour","house","howard","however","howto","href","html","http","hubs","hudson","huge","hugh","hugo","hull","human","humble","humid","humor","hundred","hung","hunk","hunt","hurry","hurt","husband","hussein","hutchins","hyatt","hybrid","hyde","hydro","hygiene","hype","hypocrisy","hyundai","icann","iceland","icon","idaho","idea","identify","ideology","idle","idol","ieee","ietf","ignite","ignore","illinois","illness","illusion","image","imdb","immediate","imminent","immune","impact","imperial","imply","import","improve","impure","inability","inactive","inbox","incense","inch","incident","include","income","increase","incur","index","indian","indoor","industry","infant","infect","infinite","influence","info","infrared","ingram","inhale","inherit","inhibit","init","inject","injury","inkjet","inlay","inlet","inner","innocent","inns","input","inquiry","insane","insert","inside","inspire","instead","insurance","intake","internet","intimate","intl","into","intro","intuit","invade","invest","invite","involve","iowa","ipaq","ipod","iran","iraq","ireland","iris","iron","irregular","irritable","irvine","isaac","isbn","isdn","islam","isle","isolate","isps","issn","issue","istanbul","isuzu","italy","item","itinerary","itself","itunes","ivan","ivoire","ivory","jack","jacob","jacque","jacuzzi","jaguar","jail","jakarta","jake","jamaica","james","jamie","jane","january","japan","jason","jasper","java","jazz","jean","jedi","jeep","jeff","jelly","jelsoft","jenkin","jenny","jens","jeremy","jerome","jerry","jersey","jerusalem","jess","jets","jewelry","jews","jill","jimmy","joan","jobs","joel","joey","johan","john","join","joke","jonah","jones","jordan","jose","josh","journal","jovi","joyce","jpeg","juan","judge","judith","judy","juice","julie","july","jump","junction","june","jung","junior","junk","jupiter","jury","just","juvenile","kaiser","kane","kansas","kaplan","kara","karen","karl","karma","kate","kathy","katie","katrina","kazaa","kbps","keen","keep","keith","kelkoo","kelly","kenny","keno","kenshin","kent","kenwood","kenya","kept","kerala","kern","kerr","kevin","keyboard","keynes","keys","keyword","khan","kick","kidney","kids","kijiji","kilometer","kimble","kinase","kind","king","kiribati","kirk","kiss","kitchen","kits","kitty","klein","knee","knew","knife","knight","knit","knives","knock","know","knox","kong","konica","korea","korn","kosovo","kruger","kurt","kuwait","kyle","kyocera","kyoto","kyrgyz","label","labor","labrador","labs","lace","lack","lacroix","ladd","laden","lady","lafayette","laguna","lake","lamb","lamp","lance","land","lane","language","lanka","lans","laos","laptop","large","larry","laser","last","late","latitude","latter","latvia","laude","laugh","launch","laura","lavender","lavie","lawn","lawrence","laws","lawyer","layer","laying","layout","lazy","ldap","lead","leaf","league","leak","lean","leap","learn","least","leather","leave","lebanon","lecture","leeds","left","legacy","legend","lego","legs","leica","leigh","leisure","lemma","lemon","lend","length","lens","leon","leslie","lesotho","less","lets","letter","leukemia","level","levi","levy","lewis","lexis","lexmark","lexus","liable","liaison","libdevel","liberty","library","libs","libya","license","lick","lieu","life","lift","light","like","lily","lima","lime","limit","limo","lincoln","linda","line","ling","link","linux","lion","lipid","lips","liquid","lisa","lisbon","lisp","list","lite","lithium","little","live","lloyd","load","loan","lobby","locate","lock","lodge","logan","logged","login","logo","logs","lohan","london","lone","long","look","loop","loose","lopez","lord","lose","loss","lost","lots","lotto","lotus","loud","louis","lounge","love","lower","lows","loyalty","luca","lucia","luck","lucy","luggage","luis","luke","luna","lunch","lung","luther","luxury","lycos","lying","lynn","lynx","lyon","lyric","macau","macdonald","mace","machine","macintosh","macro","madame","madden","made","madison","madness","madonna","madrid","madthumbs","magazine","maggie","magic","magna","maid","mail","main","majesty","major","make","malawi","malcolm","malden","male","mali","mall","malt","mama","manage","mandy","manga","manhattan","mania","mankind","mann","manor","mans","manual","many","maple","mapped","mapquest","maps","mara","marble","march","mardi","margin","maria","mark","marla","marry","mars","mart","marvel","mary","mask","mason","mass","master","match","material","math","matrix","mats","matt","mature","maui","mauro","maxi","maxwell","maya","maybe","mayer","mayo","mazda","mbps","mccain","mcdonald","mcgraw","mead","meal","mean","measure","meat","mechanic","medal","media","medline","meet","mega","melbourne","melissa","melon","member","memory","memphis","mens","ment","menu","mercy","mere","merge","merit","merry","mesa","mesh","message","meta","meter","metro","mexico","meyer","mgmt","mice","michael","mick","micro","middle","midi","midland","midnight","midst","midway","might","migrant","miguel","mike","milan","mild","mile","military","milk","mill","milton","milwaukee","mime","mind","mine","mini","minnesota","minor","mins","mint","minute","mira","mirror","misc","misled","misplace","miss","mist","mitigate","mixed","mixing","mixture","mobile","mode","modify","mods","module","moins","moist","mold","mole","moll","moment","moms","mona","monday","money","mongolia","monica","monk","mono","monroe","monster","month","monument","mood","moon","moore","moose","more","morgan","morning","morocco","morris","mortgage","mosaic","moscow","moses","moss","most","motel","mother","motion","motor","mount","mouse","mouth","movado","move","movie","mozart","mozilla","mpeg","mrna","msgid","msgs","msie","much","mudvayne","mugs","muhammad","multi","mumbai","munich","murphy","murray","muscle","museum","music","must","mutant","mutual","muze","myanmar","myers","myrtle","myself","mysimon","myspace","mysql","mystic","myth","nail","name","nano","napa","naples","napoli","naps","narnia","narrow","nasa","nascar","nasd","nash","natal","nathan","nation","nato","nature","naughty","nauru","naval","navigate","navy","ncaa","ncbi","neal","near","neat","nebraska","necessary","neck","nederland","need","negative","neglect","negotiate","neighbor","neil","neither","nell","nelson","neon","neopets","nepal","nero","nerve","nest","netbsd","netgear","nets","network","neuro","neutral","nevada","never","nevis","newark","newbie","newcomer","newer","newly","newman","newport","news","newton","next","ngos","niagara","nicaragua","nice","niche","nick","nico","night","nike","nikki","nile","nina","nine","ninja","nintendo","nirvana","nissan","nitro","nixon","noaa","noah","nobel","noble","nobody","node","noise","nokia","nominal","none","nonlinear","nonprofit","nonstop","noon","nord","norfolk","normal","north","norway","nose","notary","notch","note","nothing","notice","notorious","notre","noun","nova","novel","nowhere","ntsc","nuclear","nudist","nuke","null","number","numeric","nurse","nutrient","nuts","nutten","nvidia","nylon","nyse","oakley","oaks","oasis","obese","obituary","object","oblique","obscure","observe","obsolete","obstet","obtain","obvious","occasion","occur","ocean","oclc","october","odds","odor","odyssey","oecd","offer","office","offline","offs","often","ohio","oils","okay","oklahoma","older","olds","olive","olympic","omaha","oman","omega","omission","omit","once","oncology","ones","ongoing","onion","online","only","onset","onsite","ontario","onto","oops","open","opera","opinion","oppose","option","oracle","orange","orbit","orchid","order","ordinary","oregon","orient","origin","orlando","orleans","ornate","orthodox","oscar","oslo","other","ottawa","ought","ounce","ours","outback","outcome","outdoor","outer","outfit","outgoing","outlet","output","outrage","outside","oval","oven","over","owen","owns","oxford","oxide","oxygen","pace","pacific","pack","padd","pads","pagan","page","pagina","paid","pain","pair","palau","pale","palm","palo","pamela","panama","panda","panel","panic","panoz","pant","papa","paper","para","parc","parent","paris","park","pars","part","pasadena","paso","pass","past","patch","patent","path","patio","patrol","pattern","paul","pause","pavilion","paxil","payable","payday","paying","payment","payne","paypal","payroll","pays","pcmcia","pdas","peace","peak","peanut","pear","peas","pedal","pedestal","pediatr","pedro","peeing","peel","peer","penalty","pence","pending","peng","peninsula","penn","pens","pentax","people","pepper","peptic","percent","perfect","perhaps","perimeter","perky","perl","permit","perry","person","perth","peru","peso","pest","pete","petit","petra","pets","peugeot","pewter","pgsql","phantom","pharmacy","phase","phil","phoenix","phone","phosphate","photo","phrase","phys","piano","pichunter","pick","picnic","pics","picture","piece","pier","pigs","pike","pile","pill","pilot","pine","ping","pink","pinned","pins","pioneer","pipe","pirate","pitt","pixel","pizza","place","plain","plan","plaque","plasma","plate","play","plaza","please","pledge","plenty","plot","plug","plum","plus","plymouth","pmid","pocket","podcast","poem","poet","pogo","point","poison","poker","polar","pole","policy","poll","polo","poly","pond","pont","pony","pooh","pool","poor","pope","popular","porch","pork","porsche","port","pose","position","possible","post","potato","potential","pots","potter","pouch","poultry","pound","pour","powder","power","practice","prague","praise","pray","precise","pred","prefer","pregnant","prejudice","prelude","premium","prep","prereq","press","pretty","prev","pride","priest","prime","print","prior","prism","privacy","prix","prize","proactive","problem","process","product","profit","program","prohibit","project","prolog","prom","pron","proof","proper","protein","proud","provide","proxy","prozac","pseudo","psychic","public","pubmed","pubs","puerto","puff","pull","pulmonary","pulp","pulse","puma","pump","punch","punish","punk","pupil","purchase","purdy","pure","puri","purple","purse","push","puts","putty","puzzle","pyramid","python","qaeda","qatar","quad","quake","quality","quantum","quartz","quebec","queen","query","question","queue","quick","quiet","quilt","quinn","quit","quiz","quote","race","rachel","rack","radeon","radio","rage","raid","rail","rain","raise","raleigh","rally","ralph","rammed","ramp","ranch","rand","range","rank","rant","rapid","rare","rate","rather","ratio","rats","rave","raymond","rays","razor","razr","reach","read","reagan","real","rear","reason","rebate","rebel","reboot","rebuild","recap","recent","recharge","recipe","record","recruit","rect","recursos","recycle","redeem","redhat","rediff","reduce","reebok","reed","reef","reel","referred","refine","reflect","reform","refresh","refund","regard","reged","reggae","region","regret","regular","rehab","reid","reign","reimburse","rein","relate","release","relief","reload","rely","remain","remember","remix","remote","renal","render","rene","reno","rent","repair","repec","reply","report","reprint","republic","request","rescue","reserve","resin","resort","respect","rest","result","retail","retention","retire","retreat","return","reunion","reuse","reuter","reveal","review","revolve","reward","reynolds","rfid","rhapsody","rhode","rhythm","ribbon","rica","rice","rich","rick","rico","ride","ridge","rifle","right","rigid","rigorous","riley","ring","ripe","ripper","rise","risk","rita","ritual","riva","river","riviera","road","robb","robert","robin","robot","robust","roche","rock","rode","rodney","rodrigo","rods","roget","rogue","roland","role","roll","roma","rome","roms","ronald","roof","rook","room","roos","root","rope","rosa","rose","ross","roster","rotary","roth","rotten","rough","roulette","round","route","rows","royal","rubber","ruby","rude","rugby","rugged","rugs","rule","rumor","running","runs","runtime","rush","russia","rust","ruth","rwanda","ryan","saab","sacred","saddam","sadly","safari","safe","saga","sage","sahara","said","sail","saint","sake","salad","sale","salim","sally","salmon","salon","salt","salvage","samba","same","samoa","sample","samsung","samui","sanchez","sand","sang","sanity","sans","santa","sanyo","sapporo","sara","saskatoon","sata","satellite","satin","saturday","sauce","saudi","sauna","savage","save","saying","says","sbjct","scale","scam","scan","scar","scene","scheme","schmid","schneider","school","schwab","science","scoop","scope","score","scott","scout","scrap","screw","script","scroll","scrub","scsi","scuba","scully","sdram","seafood","seagate","seal","seam","sean","search","season","seat","sebastian","second","secret","sector","secure","sedan","sediment","seed","seeing","seek","seem","seen","sees","sega","segment","seize","select","self","sell","semantic","semester","semi","senate","send","seneca","senior","sensor","sent","separate","september","sequence","serb","series","serum","server","seth","sets","settle","setup","seven","sewage","sewer","sewing","sexcam","sexo","sexy","shade","shaft","shake","shall","sham","shan","shape","share","shaw","shed","sheet","sheffield","shelf","shemale","shepard","sheri","shield","shift","shin","ship","shirt","shock","shoe","shop","short","shot","should","show","shri","shuffle","shut","side","sidney","siemens","sierra","sigh","sigma","sign","silent","silica","silk","sill","silver","similar","simmons","simon","simple","sims","simulate","since","single","sink","sins","sioux","sister","site","sits","sitting","situated","sixth","size","skate","skelton","sketch","skiing","skin","skip","skirt","skull","skype","slam","slate","sleep","slice","slide","slight","slim","slip","slope","slot","slovak","slow","small","smart","smell","smile","smith","smoke","smooth","smtp","smug","snack","snake","snap","snmp","snow","soap","soccer","social","sock","soda","sodium","sofa","software","soil","solar","sold","sole","solid","solo","solution","solve","soma","some","song","sonic","sons","sony","soon","sophie","sorry","sort","sought","soul","sound","soup","source","south","sovereign","space","spain","spam","span","spare","spas","spatial","speak","special","speed","spell","spent","sphere","spider","spill","spin","spirit","splash","split","spoke","sponsor","sport","spot","spouse","spray","spread","spring","spyware","squad","squid","stable","stack","stad","staff","stage","stain","stake","stamp","stand","staple","star","state","stay","steam","steel","stefan","stein","stem","step","stern","steve","stew","stick","stiff","still","stimuli","stir","stock","stole","stomp","stone","stood","stop","store","stove","strap","street","strip","strong","struct","stuart","stuck","study","stuff","stun","style","subaru","subclass","subd","subject","sublime","submit","subscribe","subtle","suburb","subway","succeed","such","sudan","sudden","sued","suffer","sugar","suggest","suit","sullivan","summer","sunday","sunlight","sunny","sunrise","suns","super","supply","supra","sure","surf","surge","suriname","surname","surplus","surrey","survey","suse","suspect","sustain","sutton","suzanne","suzuki","swan","swap","swaziland","sweat","sweden","sweet","swift","swim","swing","switches","swivel","sword","sydney","syllabi","symantec","symbol","symmetry","symptom","sync","syndrome","synod","synth","syracuse","syria","system","table","tabs","tack","taco","tact","tagged","tags","tahoe","tail","taipei","taiwan","take","tale","talk","tall","tami","tampa","tank","tanned","tanzania","tape","tara","target","tariff","task","tasman","taste","tattoo","taught","taxa","taxes","taxi","taxon","taxpayer","taylor","teach","team","tear","tech","teddy","teen","tees","telecom","tell","telnet","temp","tenant","tend","tennis","tens","tent","tenure","teresa","term","terry","tesco","test","texas","text","thai","tham","than","that","theatre","thee","theft","thehun","their","them","then","theory","there","these","they","thick","think","third","this","thomas","thong","thor","those","thou","three","thrice","through","thru","thumb","thunder","thursday","thus","thyroid","tibetan","ticket","tide","tied","tier","ties","tiff","tiger","tight","tile","till","tilt","timber","time","timor","tina","tiny","tion","tips","tire","tissue","titan","title","tivo","tobago","today","todd","todo","toes","together","togo","token","tokyo","told","toledo","toll","tomas","tomb","tome","tommy","tomorrow","tone","tong","toni","tons","tony","took","tool","topic","topless","tops","torch","torn","toronto","torque","torre","toshiba","total","tote","touch","tough","tour","toward","tower","town","toxic","toyota","toys","track","trade","traffic","tragic","train","tram","trans","trap","trash","trauma","travel","tray","treat","tree","trek","trembl","trend","treo","trevor","trial","tribe","trick","tried","trilogy","trim","trina","trio","trip","trium","trivia","troop","trophy","trouble","troy","truck","true","truly","truman","trunk","trust","truth","trying","tsunami","tube","tuck","tucson","tuesday","tuition","tulsa","tumor","tune","tung","tunnel","turbo","turks","turn","turquoise","turtle","tuscan","tutor","tuvalu","twain","twelve","twenty","twice","twiki","twill","twin","twist","tyler","type","ucla","uganda","ugly","ukraine","ultimate","ultra","umbro","unable","unanimous","unaudited","unbiased","uncanny","uncertain","uncheck","uncle","under","undo","unesco","unfair","unicef","uniform","union","uniprotkb","unique","unit","universal","unix","unknown","unlawful","unless","unlike","unlock","unproven","unreal","unset","unsigned","unspoken","unstable","until","unto","unused","unwanted","unwrap","upcoming","update","upgrade","upload","upon","upper","upright","upset","upstate","upward","uranium","urban","urge","urls","usable","usage","usda","used","useful","useless","usenet","user","uses","usgs","usher","using","usps","usually","utah","util","vacation","vaccine","vacuum","vaio","vale","valid","valley","value","valve","vampire","vancouver","vanguard","vanity","vans","vanuatu","vapor","various","vary","vascular","vase","vast","vault","vbulletin","vectra","vegas","vegetable","vehicle","velocity","velvet","vendor","veneer","venice","vent","venue","vera","verb","verde","verify","verlag","vermont","verne","version","vertex","very","vessel","vest","veteran","viable","viagra","vice","vicious","vicodin","victim","video","vids","vienna","viet","view","viii","viking","villa","vince","vine","vintage","vinyl","viola","viral","virtual","virus","visa","visit","vista","visual","vita","vitro","vivo","vocal","vodafone","voice","void","voip","volatile","volt","volume","vonage","vote","voucher","voyage","voyeur","voyuer","vsnet","vuitton","wade","wage","wagon","waist","wait","waive","wake","wales","walk","wall","walnut","walsh","walt","wang","wanna","want","warcraft","ward","ware","warfare","warm","warner","warren","wars","warwick","waste","watch","water","watson","watt","wave","wayne","ways","weak","wealthy","weapon","wear","weather","weave","webb","webct","weber","weblog","webmd","webpage","webring","website","wedding","wednesday","weed","week","weezer","weight","weir","welcome","well","welsh","wendy","went","were","wesley","west","wetland","whale","what","wheat","wheel","when","where","whether","which","while","whirl","whoever","whois","wholly","whom","whose","wichita","wick","wide","widget","widow","width","wife","wifi","wiki","wild","wiley","will","wilma","wilson","winch","wind","wine","wing","winnt","wins","winter","winxp","wire","wisconsin","wisdom","wise","wish","with","witness","wives","wizard","wolf","wolves","woman","women","wonder","wong","wont","wood","wool","worcester","word","wore","work","world","worm","worn","worry","worst","worth","would","wound","woven","wrap","wrestle","wretch","wright","wrist","write","wrong","wrote","wyoming","xbox","xenical","xhtml","xlib","xmas","xnxx","yacht","yahoo","yale","yamaha","yang","yard","yarn","yeah","year","yeas","yellow","yemen","yesterday","yield","yoga","york","young","your","youth","yukon","zambia","zdnet","zealand","zeppelin","zero","zhang","zimbabwe","zinc","zodiac","zoloft","zombie","zone","zoofilia","zoom","zoophilia","zope","zshops","zurich"];function q(e,a=3,t=3,i=1,n){let o=r.buf(e,a);o=4294967280&o|t,o>>>=0;const s=new Int32Array([o]).buffer;return{currency:"DIO",address:w(e,new Uint8Array(s)),encryptMethod:"ed25519",encryptMethodOrderNumber:t,salt:i||1,alias:n||`Address${i}`}}function _(e){return f(this,arguments,void 0,(function*(e,a=new Uint8Array){if(!e)throw new Error("Invalid seed");const t=w(e,a),r=n(t,{asBytes:!0}),o=new Uint8Array(r),s=yield i.getPublicKey(o);if(o&&s)return[s,o]}))}var I=Object.freeze({__proto__:null,addressToShard:z,areUint8ArraysEqual:v,bignumberDiv:x,bignumberLt:(a,t)=>new e(a).lt(t),bignumberMinus:(a,t)=>new e(a).minus(new e(t)),bignumberMult:(a,t)=>new e(a).multipliedBy(t).toFixed(),bignumberPlus:(a,t)=>new e(a).plus(new e(t)),bignumberPow:(a,t)=>new e(a).pow(t),concat:w,encodeAddressBuffer:function(e){return t(e,"Crockford").toLocaleLowerCase()},extractPublicKey:A,fullAddress:j,generateAddress:function e(a){return f(this,void 0,void 0,(function*(){const t=new E,{address:r,seed:i}=yield t.generateAddress();if(void 0!==a){if(z(r)!==a)return e(a)}return{address:r,seed:i}}))},isValidAddress:T,pk2Address:q,seed2PairOfKey:_,shakeKeyValue:k,stringToUint8Array:function(e){return(new TextEncoder).encode(e)},toTokenAmount:(a,t)=>x(a,new e(10).pow(t)).toString(),uint8ArrayToString:function(e){return new TextDecoder("utf-8").decode(e)}});var N=new class{constructor(){this.dioxide="",this.rpc=""}get(){return{dioxide:this.dioxide,rpc:this.rpc}}set(e){const{dioxide:a,rpc:t}=y(e);this.dioxide=a,this.rpc=t}};const R=globalThis.AbortController;function B(e){return e.ok?e:Promise.reject(e)}class O{constructor(){this.prune=e=>e.endsWith("/")?e.slice(0,-1):e}get(e,a){return new Promise((t=>{const{dioxide:r}=N.get();a=Object.assign({credentials:"omit"},a);let i=e.startsWith("http")?e:r+e;if(a.data){const e=k(a.data)||{};i+="?"+s.stringify(e,{encode:!1})}const n=new R;a.signal=n.signal;const o=setTimeout((()=>{n.abort()}),3e4);d(i,a).then(B).then((e=>e.text().then((e=>t(l.parse(e)))))).finally((()=>{clearTimeout(o)}))}))}post(e,a={}){return new Promise((t=>{const{dioxide:r}=N.get(),{body:i}=a,n=e.startsWith("http")?e:r+(e.startsWith("/")?e.slice(1):e),o=new R,s=Object.assign(Object.assign({},a),{method:"post",body:i,signal:o.signal}),l=setTimeout((()=>{o.abort()}),3e4);d(n,s).then(B).then((e=>e.json().then((e=>t(e))))).finally((()=>{clearTimeout(l)}))}))}}class C extends O{checkAddress(e){if(!e||!T(e))throw new Error("Address is not valid")}getISN(e){return f(this,void 0,void 0,(function*(){const a=j(e);this.checkAddress(a);const{err:t,ret:r}=yield this.post(function(){const{rpc:e}=N.get();return encodeURI(e+"/api?req=dx.isn")}(),{body:JSON.stringify({address:a})});if(t)throw t;return(null==r?void 0:r.ISN)||0}))}getTxnListByAddress(e){return this.get("",{data:Object.assign({module:"address",action:"listtxn"},e)}).then((e=>e.Result))}getAddressInfo(e){const a=j(e);return this.get("",{data:{module:"address",action:"baseinfo",address:a.replace(/#/g,"%23")}}).then((e=>e.Result)).catch((()=>({})))}getDetailInfo(e){return this.get("",{data:{module:"address",action:"detail",address:e.replace(/#/g,"%23")}})}getBalance(e){const a=j(e);return this.checkAddress(a),this.get("",{data:{module:"address",action:"balance",address:a.replace(/#/g,"%23")}}).then((e=>{var a,t,r,i,n,o;const s={symbol:"DIO",decimals:8},l=null===(t=null===(a=e.Result)||void 0===a?void 0:a.State)||void 0===t?void 0:t.Balance.match(/\d+/g);if(null===(r=e.Result)||void 0===r?void 0:r.Wallet){const a=null===(n=null===(i=e.Result)||void 0===i?void 0:i.Wallet)||void 0===n?void 0:n.find((e=>e.symbol===s.symbol));if(a)return((null==a?void 0:a.amount)||"0").toString().split(":")[0]}return null!==(o=null==l?void 0:l[0])&&void 0!==o?o:"0"}))}getAddressTokens(e){return f(this,void 0,void 0,(function*(){const a=j(e);this.checkAddress(a);const{Result:t}=yield this.get("",{data:{module:"address",action:"tokens",address:a.replace(/#/g,"%23")}});return(null==t?void 0:t.ListData)||[]}))}getAddressTokenBalance(e,a){return f(this,void 0,void 0,(function*(){var t,r,i;const n=j(e);this.checkAddress(n);const o=yield this.getDetailInfo(e);if(null===(t=null==o?void 0:o.Result)||void 0===t?void 0:t.Wallet){const e=null===(i=null===(r=o.Result)||void 0===r?void 0:r.Wallet)||void 0===i?void 0:i.find((e=>e.symbol===a.split(":")[0]));if(e)return e.amount.toString()}return"0"}))}}class D extends O{compose(e){return this.post(function(){const{rpc:e}=N.get();return encodeURI(e+"/api?req=tx.compose")}(),{body:e})}sendTransaction(e){return this.post(function(){const{rpc:e}=N.get();return encodeURI(e+"/api?req=tx.send")}(),{body:e})}getTransactionByHash(e){return f(this,void 0,void 0,(function*(){const{Status:a,Message:t,Result:r}=yield this.get("",{data:{module:"txn",action:"details",hash:e}});if(a)throw t;return null==r?void 0:r.Content}))}getDepositTx(e){return f(this,void 0,void 0,(function*(){const{limit:a=500,pos:t=0,height:r}=e,i={limit:a,pos:t,height:r,module:"txn",action:"deposit"},n=yield this.get("",{data:i}),{Status:o,Message:s,Result:l}=n;if(o)throw s;return l}))}}class U{constructor({originTxn:e,hashSize:a,ttl:t}){this.hashSize=a||32,this.targetNum=BigInt(0),this.nonZeroBytes=0,this.originTxn=e,this.ttl=t||30,this.powData=m.arrayBuffer(this.originTxn)}LeadingZeroBits(e){let a=e.toString(2),t=0;for(;a.length<64;)a="0"+a,t++;return t}Set(e){let a=BigInt("0x8000000000000000")/BigInt(e.toFixed(0));const t=this.LeadingZeroBits(a);a=BigInt(a)<<BigInt(t);const r=8*this.hashSize-63-t,i=Math.floor(r/8),n=r%8;n?(this.nonZeroBytes=i+1,a>>=BigInt(8)-BigInt(n)):this.nonZeroBytes=i,this.targetNum=a>>BigInt(32),this.nonZeroBytes+=8}IsFulfilled(e){const a=this.hashSize,t=this.nonZeroBytes;if(this.targetNum<=new DataView(e).getUint32(t-4,!0))return!1;for(let r=t;r<a;r++){if(0!==new DataView(e).getInt8(r))return!1}return!0}getNonce(){this.Set((1e3+(this.originTxn.byteLength+12)*(10*this.ttl+100))/3);const e=[];let a=0;for(let t=0;t<3;t++){for(;;){const r=new DataView(this.powData);r.setUint32(60,a,!0);const i=h.arrayBuffer(r.buffer);if(this.IsFulfilled(i)){e[t]=a;break}a++}a++}return e}getHashMixinNonnce(){const e=this.getNonce(),a=new Uint8Array(this.originTxn.byteLength+12);return a.set(new Uint8Array(this.originTxn),0),e.forEach(((e,t)=>{a.set(new Uint8Array(new Uint32Array([e]).buffer),this.originTxn.byteLength+4*t)})),a.buffer}}class L extends O{chainStatus(){return f(this,void 0,void 0,(function*(){const e=yield this.get("",{data:{module:"chain",action:"status"}}),{Status:a,Message:t,Result:r}=e;if(a)throw t;return r}))}getGasPrice(){return f(this,void 0,void 0,(function*(){return(yield this.chainStatus()).AvgGasPrice||0}))}}class M{constructor(){this.txnServices=new D,this.overViewServices=new L}getTxn(e){return f(this,void 0,void 0,(function*(){return this.txnServices.getTransactionByHash(e)}))}compose(e){return f(this,void 0,void 0,(function*(){const{ret:a,err:t}=yield this.txnServices.compose(JSON.stringify(e));if(t)throw new Error(a.toString());return a.TxData}))}sign(e,a){return f(this,void 0,void 0,(function*(){const r=a,n=yield this.compose(e),o=A(e.sender);if(!o)throw new Error("pk error");const s=this.insertPK(n,[{encryptedMethodOrderNumber:3,publicKey:new Uint8Array(o)}]),l=yield i.sign(s,r);if(!(yield i.verify(l,s,o)))throw new Error("sign error");const d=w(s,l),c=new U({originTxn:d.buffer,ttl:e.ttl}).getHashMixinNonnce(),m=t(h.arrayBuffer(c),"Crockford");return{rawTxData:u(c),hash:m.toLowerCase()}}))}send(e,a){return f(this,void 0,void 0,(function*(){const{rawTxData:t}=yield this.sign(e,a),{ret:r,err:i}=yield this.txnServices.sendTransaction(JSON.stringify({txdata:t}));if(i)throw new Error(r.toString());return r.Hash}))}sendRawTx(e){return f(this,void 0,void 0,(function*(){const{ret:a,err:t}=yield this.txnServices.sendTransaction(JSON.stringify({txdata:e}));if(t)throw new Error(a.toString());return a.Hash}))}insertPK(e,a){const t=new Uint8Array(c(e)),r=[];a.forEach((e=>{const a=new Uint8Array([e.encryptedMethodOrderNumber]),t=e.publicKey;r.push(a),r.push(t)}));return w(t,...r)}getEstimatedFee(e){return f(this,void 0,void 0,(function*(){const{function:a,args:t,delegatee:r,scale:i=3,tokens:n}=e,o=yield this.overViewServices.chainStatus(),s=(null==o?void 0:o.AvgGasPrice)||0,l=t.to||t.To,{ret:d,err:c}=yield this.txnServices.compose(JSON.stringify({sender:l,gasprice:s,delegatee:r,function:a,args:t,tokens:n}));if(c)throw new Error("services.compose failed: txdata is empty("+d.toString()+")");const u=d.GasOffered.toString();return this.calculateGasFee({average:s,scale:i,gasLimit:Number(u)})}))}calculateGasFee(e){const{average:a,scale:t=3,gasLimit:r}=e;return parseInt((.25*(t-1)+.5)*a+"",10)*r}getDepositTxByBlock(e){return this.txnServices.getDepositTx(e)}transfer(e){return f(this,arguments,void 0,(function*({to:e,amount:a,secretKey:t,ttl:r}){const i=yield this.sk2base32Address(t);return this.send({sender:i,gasprice:100,function:"core.coin.transfer",args:{To:e,Amount:a},ttl:r},t)}))}transferFCA(e){return f(this,arguments,void 0,(function*({symbol:e,to:a,amount:t,secretKey:r,ttl:i}){const n=yield this.sk2base32Address(r);return this.send({sender:n,gasprice:100,function:"core.wallet.transfer",args:{To:a,Amount:t,TokenId:e},ttl:i},r)}))}sk2base32Address(e){return f(this,void 0,void 0,(function*(){const a=yield i.getPublicKey(e),{address:r}=q(a);return j(t(r,"Crockford").toLocaleLowerCase())}))}}class P extends O{getExcutedTx(e){return f(this,void 0,void 0,(function*(){const{limit:a=500,pos:t=0,height:r}=e,i={limit:a,pos:t,height:r,module:"block",action:"txn_executed"},n=yield this.get("",{data:i}),{Status:o,Message:s,Result:l}=n;if(o)throw s;return l}))}}class K{constructor(e){this.net=e||g.TEST,N.set(this.net),this.addr=new C,this.blocks=new P,this.overview=new L,this.txn=new M,console.log("Dioxide initialized with net: ",this.net)}setProvider(e){this.net=e,N.set(e)}static version(){return"0.0.14"}}export{p as DioFunction,g as NET,K as Web3,b as getDefaultToken,y as getProvider,I as utils};