diff --git a/docs/dist/.vocs/search-index-8eb6dc42.json b/docs/dist/.vocs/search-index-8eb6dc42.json index 5f2b780..5f53917 100644 --- a/docs/dist/.vocs/search-index-8eb6dc42.json +++ b/docs/dist/.vocs/search-index-8eb6dc42.json @@ -1 +1 @@ -{"documentCount":386,"nextId":386,"documentIds":{"0":"docs/pages/protocol.mdx#klaster-protocol-technical-summary","1":"docs/pages/protocol.mdx#overview","2":"docs/pages/protocol.mdx#key-concepts","3":"docs/pages/protocol.mdx#1-itx-interchain-transaction-bundles","4":"docs/pages/protocol.mdx#2-transaction-commitment-layer","5":"docs/pages/protocol.mdx#core-components","6":"docs/pages/protocol.mdx#smart-accounts---itx-module","7":"docs/pages/protocol.mdx#klaster-nodes","8":"docs/pages/protocol.mdx#meta-paymaster-and-multichain-gas-refunds","9":"docs/pages/protocol.mdx#optimistic-itx-execution","10":"docs/pages/protocol.mdx#integration","11":"docs/pages/protocol.mdx#use-cases","12":"docs/pages/protocol.mdx#security-considerations","13":"docs/pages/protocol.mdx#future-developments","14":"docs/pages/reference.md#klaster-sdk","15":"docs/pages/reference.md#classes","16":"docs/pages/reference.md#encodingservice","17":"docs/pages/reference.md#constructors","18":"docs/pages/reference.md#new-encodingservice","19":"docs/pages/reference.md#returns","20":"docs/pages/reference.md#methods","21":"docs/pages/reference.md#encodebatchcall","22":"docs/pages/reference.md#parameters","23":"docs/pages/reference.md#returns-1","24":"docs/pages/reference.md#example","25":"docs/pages/reference.md#defined-in","26":"docs/pages/reference.md#encodeuseropcall","27":"docs/pages/reference.md#parameters-1","28":"docs/pages/reference.md#returns-2","29":"docs/pages/reference.md#example-1","30":"docs/pages/reference.md#defined-in-1","31":"docs/pages/reference.md#klastersdk","32":"docs/pages/reference.md#constructors-1","33":"docs/pages/reference.md#new-klastersdk","34":"docs/pages/reference.md#parameters-2","35":"docs/pages/reference.md#returns-3","36":"docs/pages/reference.md#defined-in-2","37":"docs/pages/reference.md#properties","38":"docs/pages/reference.md#activeaccountsalt","39":"docs/pages/reference.md#defined-in-3","40":"docs/pages/reference.md#masteraddress","41":"docs/pages/reference.md#defined-in-4","42":"docs/pages/reference.md#methods-1","43":"docs/pages/reference.md#autoexecute","44":"docs/pages/reference.md#parameters-3","45":"docs/pages/reference.md#returns-4","46":"docs/pages/reference.md#async","47":"docs/pages/reference.md#throws","48":"docs/pages/reference.md#example-2","49":"docs/pages/reference.md#remarks","50":"docs/pages/reference.md#see","51":"docs/pages/reference.md#defined-in-5","52":"docs/pages/reference.md#changeaccountsalt","53":"docs/pages/reference.md#parameters-4","54":"docs/pages/reference.md#returns-5","55":"docs/pages/reference.md#example-3","56":"docs/pages/reference.md#note","57":"docs/pages/reference.md#see-1","58":"docs/pages/reference.md#defined-in-6","59":"docs/pages/reference.md#changemasteraddress","60":"docs/pages/reference.md#parameters-5","61":"docs/pages/reference.md#returns-6","62":"docs/pages/reference.md#throws-1","63":"docs/pages/reference.md#example-4","64":"docs/pages/reference.md#note-1","65":"docs/pages/reference.md#see-2","66":"docs/pages/reference.md#defined-in-7","67":"docs/pages/reference.md#encodetxfee","68":"docs/pages/reference.md#parameters-6","69":"docs/pages/reference.md#returns-7","70":"docs/pages/reference.md#async-1","71":"docs/pages/reference.md#throws-2","72":"docs/pages/reference.md#example-5","73":"docs/pages/reference.md#note-2","74":"docs/pages/reference.md#see-3","75":"docs/pages/reference.md#defined-in-8","76":"docs/pages/reference.md#execute","77":"docs/pages/reference.md#parameters-7","78":"docs/pages/reference.md#returns-8","79":"docs/pages/reference.md#async-2","80":"docs/pages/reference.md#throws-3","81":"docs/pages/reference.md#remarks-1","82":"docs/pages/reference.md#example-6","83":"docs/pages/reference.md#see-4","84":"docs/pages/reference.md#defined-in-9","85":"docs/pages/reference.md#getmultichainaccount","86":"docs/pages/reference.md#returns-9","87":"docs/pages/reference.md#async-3","88":"docs/pages/reference.md#throws-4","89":"docs/pages/reference.md#example-7","90":"docs/pages/reference.md#note-3","91":"docs/pages/reference.md#see-5","92":"docs/pages/reference.md#defined-in-10","93":"docs/pages/reference.md#getquote","94":"docs/pages/reference.md#parameters-8","95":"docs/pages/reference.md#returns-10","96":"docs/pages/reference.md#async-4","97":"docs/pages/reference.md#throws-5","98":"docs/pages/reference.md#throws-6","99":"docs/pages/reference.md#example-8","100":"docs/pages/reference.md#note-4","101":"docs/pages/reference.md#see-6","102":"docs/pages/reference.md#defined-in-11","103":"docs/pages/reference.md#transferandexecute","104":"docs/pages/reference.md#parameters-9","105":"docs/pages/reference.md#returns-11","106":"docs/pages/reference.md#async-5","107":"docs/pages/reference.md#throws-7","108":"docs/pages/reference.md#example-9","109":"docs/pages/reference.md#remarks-2","110":"docs/pages/reference.md#see-7","111":"docs/pages/reference.md#defined-in-12","112":"docs/pages/reference.md#saltutil","113":"docs/pages/reference.md#constructors-2","114":"docs/pages/reference.md#new-saltutil","115":"docs/pages/reference.md#returns-12","116":"docs/pages/reference.md#methods-2","117":"docs/pages/reference.md#accountat","118":"docs/pages/reference.md#parameters-10","119":"docs/pages/reference.md#returns-13","120":"docs/pages/reference.md#example-10","121":"docs/pages/reference.md#defined-in-13","122":"docs/pages/reference.md#customaccount","123":"docs/pages/reference.md#parameters-11","124":"docs/pages/reference.md#returns-14","125":"docs/pages/reference.md#example-11","126":"docs/pages/reference.md#remarks-3","127":"docs/pages/reference.md#defined-in-14","128":"docs/pages/reference.md#firstaccount","129":"docs/pages/reference.md#returns-15","130":"docs/pages/reference.md#example-12","131":"docs/pages/reference.md#defined-in-15","132":"docs/pages/reference.md#interfaces","133":"docs/pages/reference.md#apipaymentdata","134":"docs/pages/reference.md#properties-1","135":"docs/pages/reference.md#chainid","136":"docs/pages/reference.md#defined-in-16","137":"docs/pages/reference.md#masterwallet","138":"docs/pages/reference.md#defined-in-17","139":"docs/pages/reference.md#salt","140":"docs/pages/reference.md#defined-in-18","141":"docs/pages/reference.md#token","142":"docs/pages/reference.md#defined-in-19","143":"docs/pages/reference.md#apiuserop","144":"docs/pages/reference.md#properties-2","145":"docs/pages/reference.md#calldata","146":"docs/pages/reference.md#defined-in-20","147":"docs/pages/reference.md#callgaslimit","148":"docs/pages/reference.md#defined-in-21","149":"docs/pages/reference.md#chainid-1","150":"docs/pages/reference.md#defined-in-22","151":"docs/pages/reference.md#masterwallet-1","152":"docs/pages/reference.md#defined-in-23","153":"docs/pages/reference.md#salt-1","154":"docs/pages/reference.md#defined-in-24","155":"docs/pages/reference.md#erc4337userop","156":"docs/pages/reference.md#properties-3","157":"docs/pages/reference.md#calldata-1","158":"docs/pages/reference.md#defined-in-25","159":"docs/pages/reference.md#callgaslimit-1","160":"docs/pages/reference.md#defined-in-26","161":"docs/pages/reference.md#initcode","162":"docs/pages/reference.md#defined-in-27","163":"docs/pages/reference.md#maxfeepergas","164":"docs/pages/reference.md#defined-in-28","165":"docs/pages/reference.md#maxpriorityfeepergas","166":"docs/pages/reference.md#defined-in-29","167":"docs/pages/reference.md#nonce","168":"docs/pages/reference.md#defined-in-30","169":"docs/pages/reference.md#paymasteranddata","170":"docs/pages/reference.md#defined-in-31","171":"docs/pages/reference.md#preverificationgas","172":"docs/pages/reference.md#defined-in-32","173":"docs/pages/reference.md#sender","174":"docs/pages/reference.md#defined-in-33","175":"docs/pages/reference.md#signature","176":"docs/pages/reference.md#defined-in-34","177":"docs/pages/reference.md#verificationgaslimit","178":"docs/pages/reference.md#defined-in-35","179":"docs/pages/reference.md#executeresponse","180":"docs/pages/reference.md#properties-4","181":"docs/pages/reference.md#itxhash","182":"docs/pages/reference.md#defined-in-36","183":"docs/pages/reference.md#executedaction","184":"docs/pages/reference.md#properties-5","185":"docs/pages/reference.md#chainid-2","186":"docs/pages/reference.md#defined-in-37","187":"docs/pages/reference.md#executiondata","188":"docs/pages/reference.md#defined-in-38","189":"docs/pages/reference.md#executionstatus","190":"docs/pages/reference.md#defined-in-39","191":"docs/pages/reference.md#lowerboundtimestap","192":"docs/pages/reference.md#defined-in-40","193":"docs/pages/reference.md#maxgaslimit","194":"docs/pages/reference.md#defined-in-41","195":"docs/pages/reference.md#upperboundtimestamp","196":"docs/pages/reference.md#defined-in-42","197":"docs/pages/reference.md#userop","198":"docs/pages/reference.md#defined-in-43","199":"docs/pages/reference.md#userophash","200":"docs/pages/reference.md#defined-in-44","201":"docs/pages/reference.md#itxuserop","202":"docs/pages/reference.md#properties-6","203":"docs/pages/reference.md#chainid-3","204":"docs/pages/reference.md#defined-in-45","205":"docs/pages/reference.md#lowerboundtime","206":"docs/pages/reference.md#defined-in-46","207":"docs/pages/reference.md#txs","208":"docs/pages/reference.md#defined-in-47","209":"docs/pages/reference.md#upperboundtime","210":"docs/pages/reference.md#defined-in-48","211":"docs/pages/reference.md#interchaintransaction","212":"docs/pages/reference.md#properties-7","213":"docs/pages/reference.md#actions","214":"docs/pages/reference.md#defined-in-49","215":"docs/pages/reference.md#paymentinfo","216":"docs/pages/reference.md#defined-in-50","217":"docs/pages/reference.md#itxstatusresponse","218":"docs/pages/reference.md#properties-8","219":"docs/pages/reference.md#commitment","220":"docs/pages/reference.md#defined-in-51","221":"docs/pages/reference.md#itxhash-1","222":"docs/pages/reference.md#defined-in-52","223":"docs/pages/reference.md#node","224":"docs/pages/reference.md#defined-in-53","225":"docs/pages/reference.md#paymentinfo-1","226":"docs/pages/reference.md#type-declaration","227":"docs/pages/reference.md#tokenamount","228":"docs/pages/reference.md#tokenvalue","229":"docs/pages/reference.md#defined-in-54","230":"docs/pages/reference.md#userops","231":"docs/pages/reference.md#defined-in-55","232":"docs/pages/reference.md#multichainaccount","233":"docs/pages/reference.md#properties-9","234":"docs/pages/reference.md#address","235":"docs/pages/reference.md#defined-in-56","236":"docs/pages/reference.md#salt-2","237":"docs/pages/reference.md#defined-in-57","238":"docs/pages/reference.md#quoteresponse","239":"docs/pages/reference.md#properties-10","240":"docs/pages/reference.md#commitment-1","241":"docs/pages/reference.md#defined-in-58","242":"docs/pages/reference.md#itxhash-2","243":"docs/pages/reference.md#defined-in-59","244":"docs/pages/reference.md#node-1","245":"docs/pages/reference.md#defined-in-60","246":"docs/pages/reference.md#paymentinfo-2","247":"docs/pages/reference.md#defined-in-61","248":"docs/pages/reference.md#userops-1","249":"docs/pages/reference.md#defined-in-62","250":"docs/pages/reference.md#rawtransaction","251":"docs/pages/reference.md#properties-11","252":"docs/pages/reference.md#data","253":"docs/pages/reference.md#defined-in-63","254":"docs/pages/reference.md#gaslimit","255":"docs/pages/reference.md#defined-in-64","256":"docs/pages/reference.md#to","257":"docs/pages/reference.md#defined-in-65","258":"docs/pages/reference.md#value","259":"docs/pages/reference.md#defined-in-66","260":"docs/pages/reference.md#supportedpaymenttokeninfo","261":"docs/pages/reference.md#properties-12","262":"docs/pages/reference.md#node-2","263":"docs/pages/reference.md#defined-in-67","264":"docs/pages/reference.md#supported_chains","265":"docs/pages/reference.md#defined-in-68","266":"docs/pages/reference.md#supported_gas_tokens","267":"docs/pages/reference.md#defined-in-69","268":"docs/pages/reference.md#version","269":"docs/pages/reference.md#defined-in-70","270":"docs/pages/reference.md#type-aliases","271":"docs/pages/reference.md#config","272":"docs/pages/reference.md#type-declaration-1","273":"docs/pages/reference.md#masteraddress-1","274":"docs/pages/reference.md#nodeurl","275":"docs/pages/reference.md#defined-in-71","276":"docs/pages/reference.md#paymenttokensymbol","277":"docs/pages/reference.md#defined-in-72","278":"docs/pages/reference.md#functions","279":"docs/pages/reference.md#buildtokenstrategy","280":"docs/pages/reference.md#parameters-12","281":"docs/pages/reference.md#returns-16","282":"docs/pages/reference.md#throws-8","283":"docs/pages/reference.md#example-13","284":"docs/pages/reference.md#defined-in-73","285":"docs/pages/reference.md#buildtransfererc20fromeoatx","286":"docs/pages/reference.md#parameters-13","287":"docs/pages/reference.md#returns-17","288":"docs/pages/reference.md#example-14","289":"docs/pages/reference.md#defined-in-74","290":"docs/pages/reference.md#createtokenmapping","291":"docs/pages/reference.md#parameters-14","292":"docs/pages/reference.md#returns-18","293":"docs/pages/reference.md#throws-9","294":"docs/pages/reference.md#example-15","295":"docs/pages/reference.md#see-8","296":"docs/pages/reference.md#defined-in-75","297":"docs/pages/reference.md#encodeaction","298":"docs/pages/reference.md#parameters-15","299":"docs/pages/reference.md#returns-19","300":"docs/pages/reference.md#chainid-4","301":"docs/pages/reference.md#txs-1","302":"docs/pages/reference.md#example-16","303":"docs/pages/reference.md#defined-in-76","304":"docs/pages/reference.md#encodebridgingdatafromstrategy","305":"docs/pages/reference.md#parameters-16","306":"docs/pages/reference.md#returns-20","307":"docs/pages/reference.md#throws-10","308":"docs/pages/reference.md#example-17","309":"docs/pages/reference.md#defined-in-77","310":"docs/pages/reference.md#encodeitx","311":"docs/pages/reference.md#parameters-17","312":"docs/pages/reference.md#returns-21","313":"docs/pages/reference.md#example-18","314":"docs/pages/reference.md#defined-in-78","315":"docs/pages/reference.md#encodetx","316":"docs/pages/reference.md#parameters-18","317":"docs/pages/reference.md#returns-22","318":"docs/pages/reference.md#example-19","319":"docs/pages/reference.md#defined-in-79","320":"docs/pages/reference.md#fetchinjectedaddress","321":"docs/pages/reference.md#returns-23","322":"docs/pages/reference.md#async-6","323":"docs/pages/reference.md#function","324":"docs/pages/reference.md#throws-11","325":"docs/pages/reference.md#example-20","326":"docs/pages/reference.md#requires","327":"docs/pages/reference.md#see-9","328":"docs/pages/reference.md#note-5","329":"docs/pages/reference.md#defined-in-80","330":"docs/pages/reference.md#getunifiedbalance","331":"docs/pages/reference.md#parameters-19","332":"docs/pages/reference.md#returns-24","333":"docs/pages/reference.md#throws-12","334":"docs/pages/reference.md#example-21","335":"docs/pages/reference.md#defined-in-81","336":"docs/pages/reference.md#initklaster","337":"docs/pages/reference.md#parameters-20","338":"docs/pages/reference.md#returns-25","339":"docs/pages/reference.md#example-22","340":"docs/pages/reference.md#throws-13","341":"docs/pages/reference.md#defined-in-82","342":"docs/pages/reference.md#resolvetoken","343":"docs/pages/reference.md#parameters-21","344":"docs/pages/reference.md#returns-26","345":"docs/pages/reference.md#throws-14","346":"docs/pages/reference.md#defined-in-83","347":"docs/pages/reference.md#signwithinjectedwallet","348":"docs/pages/reference.md#parameters-22","349":"docs/pages/reference.md#returns-27","350":"docs/pages/reference.md#throws-15","351":"docs/pages/reference.md#example-23","352":"docs/pages/reference.md#note-6","353":"docs/pages/reference.md#defined-in-84","354":"docs/pages/security-audit.mdx#klaster-security-audits","355":"docs/pages/supported-networks-tokens.mdx#supported-gas-tokens","356":"docs/pages/zero-to-hero-klaster-guide.mdx#zero-to-hero-guide-building-a-chain-abstracted-application","357":"docs/pages/zero-to-hero-klaster-guide.mdx#install-klaster-and-viem","358":"docs/pages/zero-to-hero-klaster-guide.mdx#create-a-signer-object","359":"docs/pages/zero-to-hero-klaster-guide.mdx#initialize-klaster-sdk","360":"docs/pages/zero-to-hero-klaster-guide.mdx#initialize-a-multichain-readonly-rpc-client","361":"docs/pages/zero-to-hero-klaster-guide.mdx#map-token-deployments-across-multiple-blockchains","362":"docs/pages/zero-to-hero-klaster-guide.mdx#create-a-bridging-plugin","363":"docs/pages/zero-to-hero-klaster-guide.mdx#fetching-a-unified-balance","364":"docs/pages/zero-to-hero-klaster-guide.mdx#encoding-the-bridging--execution-actions","365":"docs/pages/zero-to-hero-klaster-guide.mdx#encoding-the-bridging-operations","366":"docs/pages/zero-to-hero-klaster-guide.mdx#encoding-the-desired-action","367":"docs/pages/zero-to-hero-klaster-guide.mdx#creating-an-interchain-transaction","368":"docs/pages/zero-to-hero-klaster-guide.mdx#executing-the-interchain-transaction","369":"docs/pages/zero-to-hero-klaster-guide.mdx#getting-a-quote","370":"docs/pages/zero-to-hero-klaster-guide.mdx#signing-the-quote","371":"docs/pages/zero-to-hero-klaster-guide.mdx#sending-the-itx-for-execution","372":"docs/pages/zero-to-hero-klaster-guide.mdx#tracking-the-execution","373":"docs/pages/zero-to-hero-klaster-guide.mdx#conclusion","374":"docs/pages/accounts/biconomy.mdx#initializing-a-biconomy-account","375":"docs/pages/accounts/safe.mdx#initializing-a-safe-account","376":"docs/pages/concepts/bridge-plugins.mdx#bridging-plugins","377":"docs/pages/concepts/interchain-transaction.mdx#interchain-transaction","378":"docs/pages/concepts/interchain-transaction.mdx#details","379":"docs/pages/concepts/multichain-account.mdx#multichain-smart-contract-account","380":"docs/pages/concepts/multichain-account.mdx#deriving-accounts","381":"docs/pages/concepts/multichain-public-client.mdx#multichain-public-client","382":"docs/pages/concepts/multichain-token-mapping.mdx#multichain-token-mapping","383":"docs/pages/concepts/multichain-token-mapping.mdx#notes","384":"docs/pages/concepts/unified-balance.mdx#unified-balance","385":"docs/pages/quickstart/gas-abstraction.mdx#gas-abstraction-quickstart"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[4,1,1],"1":[1,4,39],"2":[2,4,1],"3":[5,6,22],"4":[4,6,14],"5":[2,4,1],"6":[4,6,21],"7":[2,6,39],"8":[6,6,29],"9":[3,6,21],"10":[1,4,24],"11":[2,4,27],"12":[2,4,31],"13":[2,4,20],"14":[2,1,1],"15":[1,2,1],"16":[1,3,45],"17":[1,4,1],"18":[3,5,3],"19":[1,7,2],"20":[1,4,1],"21":[2,5,46],"22":[1,7,45],"23":[1,7,19],"24":[1,7,18],"25":[2,7,6],"26":[2,5,36],"27":[1,7,40],"28":[1,7,17],"29":[1,7,16],"30":[2,7,6],"31":[1,3,30],"32":[1,4,1],"33":[3,5,4],"34":[1,7,3],"35":[1,7,2],"36":[2,7,4],"37":[1,4,1],"38":[1,5,3],"39":[2,6,4],"40":[1,5,5],"41":[2,6,4],"42":[1,4,1],"43":[2,5,38],"44":[1,7,46],"45":[1,7,19],"46":[1,7,1],"47":[1,7,18],"48":[1,7,40],"49":[1,7,43],"50":[1,7,10],"51":[2,7,4],"52":[2,5,47],"53":[1,7,25],"54":[1,7,2],"55":[1,7,14],"56":[1,7,32],"57":[1,7,12],"58":[2,7,4],"59":[2,5,44],"60":[1,7,20],"61":[1,7,2],"62":[1,7,11],"63":[1,7,14],"64":[1,7,33],"65":[1,7,12],"66":[2,7,4],"67":[2,5,57],"68":[1,7,31],"69":[1,7,37],"70":[1,7,1],"71":[1,7,29],"72":[1,7,32],"73":[1,7,22],"74":[1,7,16],"75":[2,7,4],"76":[2,5,34],"77":[1,7,27],"78":[1,7,19],"79":[1,7,1],"80":[1,7,18],"81":[1,7,32],"82":[1,7,24],"83":[1,7,20],"84":[2,7,4],"85":[2,5,48],"86":[1,7,26],"87":[1,7,1],"88":[1,7,19],"89":[1,7,30],"90":[1,7,26],"91":[1,7,11],"92":[2,7,4],"93":[2,5,36],"94":[1,7,18],"95":[1,7,21],"96":[1,7,1],"97":[1,7,12],"98":[1,7,18],"99":[1,7,31],"100":[1,7,18],"101":[1,7,11],"102":[2,7,4],"103":[2,5,38],"104":[1,7,36],"105":[1,7,15],"106":[1,7,1],"107":[1,7,14],"108":[1,7,48],"109":[1,7,48],"110":[1,7,24],"111":[2,7,4],"112":[1,3,32],"113":[1,4,1],"114":[3,5,3],"115":[1,7,2],"116":[1,4,1],"117":[2,5,23],"118":[1,7,11],"119":[1,7,10],"120":[1,7,11],"121":[2,7,6],"122":[2,5,24],"123":[1,7,6],"124":[1,7,7],"125":[1,7,11],"126":[1,7,22],"127":[2,7,6],"128":[2,5,12],"129":[1,7,12],"130":[1,7,11],"131":[2,7,6],"132":[1,2,1],"133":[1,3,29],"134":[1,4,1],"135":[1,5,26],"136":[2,6,4],"137":[1,5,20],"138":[2,6,4],"139":[1,5,26],"140":[2,6,4],"141":[1,5,24],"142":[2,6,4],"143":[1,3,28],"144":[1,4,1],"145":[1,5,21],"146":[2,6,4],"147":[1,5,27],"148":[2,6,4],"149":[1,5,21],"150":[2,6,4],"151":[1,5,20],"152":[2,6,4],"153":[1,5,26],"154":[2,6,4],"155":[1,3,26],"156":[1,4,1],"157":[1,5,14],"158":[2,6,4],"159":[1,5,11],"160":[2,6,4],"161":[1,5,20],"162":[2,6,4],"163":[1,5,17],"164":[2,6,4],"165":[1,5,15],"166":[2,6,4],"167":[1,5,16],"168":[2,6,4],"169":[1,5,22],"170":[2,6,4],"171":[1,5,17],"172":[2,6,4],"173":[1,5,16],"174":[2,6,4],"175":[1,5,13],"176":[2,6,4],"177":[1,5,10],"178":[2,6,4],"179":[1,3,23],"180":[1,4,1],"181":[1,5,40],"182":[2,6,4],"183":[1,3,31],"184":[1,4,1],"185":[1,5,14],"186":[2,6,4],"187":[1,5,13],"188":[2,6,4],"189":[1,5,47],"190":[2,6,4],"191":[1,5,16],"192":[2,6,4],"193":[1,5,14],"194":[2,6,4],"195":[1,5,16],"196":[2,6,4],"197":[1,5,12],"198":[2,6,4],"199":[1,5,15],"200":[2,6,4],"201":[1,3,28],"202":[1,4,1],"203":[1,5,16],"204":[2,6,4],"205":[2,5,16],"206":[2,7,4],"207":[1,5,31],"208":[2,6,4],"209":[2,5,16],"210":[2,7,4],"211":[1,3,1],"212":[1,4,1],"213":[1,5,3],"214":[2,6,4],"215":[1,5,3],"216":[2,6,4],"217":[1,3,27],"218":[1,4,1],"219":[1,5,15],"220":[2,6,4],"221":[1,5,19],"222":[2,6,4],"223":[1,5,17],"224":[2,6,4],"225":[1,5,20],"226":[2,6,1],"227":[1,6,3],"228":[1,6,3],"229":[2,6,4],"230":[1,5,25],"231":[2,6,4],"232":[1,3,26],"233":[1,4,1],"234":[1,5,57],"235":[2,6,4],"236":[1,5,33],"237":[2,6,4],"238":[1,3,37],"239":[1,4,1],"240":[1,5,17],"241":[2,6,4],"242":[1,5,22],"243":[2,6,4],"244":[1,5,21],"245":[2,6,4],"246":[1,5,21],"247":[2,6,4],"248":[1,5,32],"249":[2,6,4],"250":[1,3,38],"251":[1,4,1],"252":[1,5,24],"253":[2,6,4],"254":[1,5,25],"255":[2,6,4],"256":[1,5,23],"257":[2,6,4],"258":[1,5,29],"259":[2,6,4],"260":[1,3,1],"261":[1,4,1],"262":[1,5,5],"263":[2,6,4],"264":[2,5,4],"265":[2,7,4],"266":[3,5,5],"267":[2,8,4],"268":[1,5,3],"269":[2,6,4],"270":[2,2,1],"271":[1,4,10],"272":[2,5,1],"273":[1,6,3],"274":[1,6,3],"275":[2,5,4],"276":[1,4,47],"277":[2,5,7],"278":[1,2,1],"279":[2,3,28],"280":[1,5,3],"281":[1,5,38],"282":[1,5,25],"283":[1,5,48],"284":[2,5,7],"285":[2,3,45],"286":[1,5,43],"287":[1,5,42],"288":[1,5,33],"289":[2,5,5],"290":[2,3,40],"291":[1,5,24],"292":[1,5,13],"293":[1,5,14],"294":[1,5,47],"295":[1,5,10],"296":[2,5,7],"297":[2,3,40],"298":[1,5,16],"299":[1,5,9],"300":[1,5,3],"301":[1,5,3],"302":[1,5,6],"303":[2,5,6],"304":[2,3,41],"305":[1,5,8],"306":[1,5,27],"307":[1,5,22],"308":[1,5,77],"309":[2,5,7],"310":[2,3,39],"311":[1,5,9],"312":[1,5,6],"313":[1,5,9],"314":[2,5,6],"315":[2,3,37],"316":[1,5,9],"317":[1,5,6],"318":[1,5,5],"319":[2,5,6],"320":[2,3,41],"321":[1,5,29],"322":[1,5,1],"323":[1,5,2],"324":[1,5,31],"325":[1,5,23],"326":[1,5,2],"327":[1,5,4],"328":[1,5,31],"329":[2,5,5],"330":[2,3,19],"331":[1,5,35],"332":[1,5,29],"333":[1,5,22],"334":[1,5,58],"335":[2,5,7],"336":[2,3,30],"337":[1,5,10],"338":[1,5,10],"339":[1,5,29],"340":[1,5,18],"341":[2,5,4],"342":[2,3,16],"343":[1,5,15],"344":[1,5,10],"345":[1,5,11],"346":[2,5,7],"347":[2,3,39],"348":[1,5,37],"349":[1,5,17],"350":[1,5,26],"351":[1,5,20],"352":[1,5,31],"353":[2,5,5],"354":[3,1,14],"355":[3,1,82],"356":[9,1,80],"357":[4,9,6],"358":[4,9,64],"359":[3,9,67],"360":[6,9,122],"361":[6,9,179],"362":[4,9,166],"363":[4,9,76],"364":[6,9,87],"365":[4,15,167],"366":[4,15,69],"367":[4,15,84],"368":[4,9,20],"369":[3,13,54],"370":[3,13,79],"371":[5,13,21],"372":[3,13,36],"373":[1,9,16],"374":[4,1,26],"375":[4,1,49],"376":[2,1,188],"377":[2,1,33],"378":[1,3,59],"379":[4,1,86],"380":[2,5,94],"381":[3,1,81],"382":[3,1,117],"383":[1,4,25],"384":[2,1,39],"385":[3,1,3]},"averageFieldLength":[1.603626943005181,5.5025906735751295,20.34455958549224],"storedFields":{"0":{"href":"/protocol#klaster-protocol-technical-summary","html":"\n","isPage":true,"text":"\n","title":"Klaster Protocol Technical Summary","titles":[]},"1":{"href":"/protocol#overview","html":"\n

Klaster Protocol is a chain abstraction framework that enables the execution of complex cross-chain transaction bundles with a single user signature. It introduces a Transaction Commitment Layer between users/dApps and multiple blockchain networks, facilitating seamless interaction across different chains.

\n","isPage":false,"text":"\nKlaster Protocol is a chain abstraction framework that enables the execution of complex cross-chain transaction bundles with a single user signature. It introduces a Transaction Commitment Layer between users/dApps and multiple blockchain networks, facilitating seamless interaction across different chains.\n","title":"Overview","titles":["Klaster Protocol Technical Summary"]},"2":{"href":"/protocol#key-concepts","html":"\n","isPage":false,"text":"\n","title":"Key Concepts","titles":["Klaster Protocol Technical Summary"]},"3":{"href":"/protocol#1-itx-interchain-transaction-bundles","html":"\n\n","isPage":false,"text":"\n\nSeries of (possibly dependent) transactions spanning across multiple chains\nRepresented as a Merkle Tree of UserOps\nDefined by a unique Merkle Root hash (iTx hash)\n\n","title":"1. iTx (Interchain Transaction) bundles","titles":["Klaster Protocol Technical Summary","Key Concepts"]},"4":{"href":"/protocol#2-transaction-commitment-layer","html":"\n\n","isPage":false,"text":"\n\nNetwork of Klaster Nodes\nProvides execution guarantees\nOrchestrates iTx execution across multiple blockchain networks\n\n","title":"2. Transaction Commitment Layer","titles":["Klaster Protocol Technical Summary","Key Concepts"]},"5":{"href":"/protocol#core-components","html":"\n","isPage":false,"text":"\n","title":"Core Components","titles":["Klaster Protocol Technical Summary"]},"6":{"href":"/protocol#smart-accounts---itx-module","html":"\n\n","isPage":false,"text":"\n\nStandardized ERC-7579 module for smart contract accounts\nEnables single signature approval for entire iTx bundles\nCompatible with existing smart account wallets\n\n","title":"Smart Accounts - iTx Module","titles":["Klaster Protocol Technical Summary","Core Components"]},"7":{"href":"/protocol#klaster-nodes","html":"\n

Responsibilities:

\n\n

Node Selection Process:

\n
    \n
  1. Nodes provide quotes for iTx execution
  2. \n
  3. User/dApp selects best quote based on cost and node reputation
  4. \n
  5. Selected node commits to iTx execution
  6. \n
  7. User signs the iTx bundle
  8. \n
  9. Node executes the iTx bundle
  10. \n
\n","isPage":false,"text":"\nResponsibilities:\n\nEstimating iTx fees & responding to quote requests\nCommitting to iTx execution\nExecuting fully signed iTx bundles\n\nNode Selection Process:\n\nNodes provide quotes for iTx execution\nUser/dApp selects best quote based on cost and node reputation\nSelected node commits to iTx execution\nUser signs the iTx bundle\nNode executes the iTx bundle\n\n","title":"Klaster Nodes","titles":["Klaster Protocol Technical Summary","Core Components"]},"8":{"href":"/protocol#meta-paymaster-and-multichain-gas-refunds","html":"\n\n","isPage":false,"text":"\n\nNodes act as Meta Paymasters, accepting payment in one token/chain and executing transactions across multiple chains\nUtilizes ERC-4337 EntryPoint for UserOp routing\nImplements gas refunds for overpaid transactions\n\n","title":"Meta Paymaster and Multichain Gas Refunds","titles":["Klaster Protocol Technical Summary","Core Components"]},"9":{"href":"/protocol#optimistic-itx-execution","html":"\n\n","isPage":false,"text":"\n\nNodes determine optimal execution order through simulation\nExecutes UserOps when simulations yield 0 REVERT opcodes\nIncentivized by diminishing success tips\n\n","title":"Optimistic iTx Execution","titles":["Klaster Protocol Technical Summary","Core Components"]},"10":{"href":"/protocol#integration","html":"\n\n","isPage":false,"text":"\n\nSDK available for dApp/Wallet developers\nEnables efficient building of chain-abstracted applications\nNeutral approach, compatible with various bridges and AA wallet providers\n\n","title":"Integration","titles":["Klaster Protocol Technical Summary"]},"11":{"href":"/protocol#use-cases","html":"\n\n","isPage":false,"text":"\n\nChain-abstracted versions of existing dApps (e.g., AAVE)\nStreamlined checkout flows\nEasier onboarding to SocialFi L2/L3 apps\nSingle-chain dApps attracting users from various chains\n\n","title":"Use Cases","titles":["Klaster Protocol Technical Summary"]},"12":{"href":"/protocol#security-considerations","html":"\n\n","isPage":false,"text":"\n\nUsers maintain full control of funds through AA wallets\nNodes can be slashed for failing to execute committed iTx bundles\nSecurity reduced to the security of bridges used for asset transfers between chains\n\n","title":"Security Considerations","titles":["Klaster Protocol Technical Summary"]},"13":{"href":"/protocol#future-developments","html":"\n","isPage":false,"text":"\n\nDecentralization phase including slashing and multichain staking\nPublic node implementation for verification and customization\nPotential integration with intent solver networks\n","title":"Future Developments","titles":["Klaster Protocol Technical Summary"]},"14":{"href":"/reference#klaster-sdk","html":"\n","isPage":true,"text":"\n","title":"klaster-sdk","titles":[]},"15":{"href":"/reference#classes","html":"\n","isPage":false,"text":"\n","title":"Classes","titles":["klaster-sdk"]},"16":{"href":"/reference#encodingservice","html":"\n

A service for encoding user operations (UserOps) for Smart Contract Accounts in the Klaster ecosystem.

\n

This service provides methods to encode single and batch transactions into UserOps\nthat can be processed by the Klaster Node. It intelligently chooses between single\nand batch encoding to optimize for gas efficiency and ensure atomic execution of\nmultiple transactions when needed.

\n","isPage":false,"text":"\nA service for encoding user operations (UserOps) for Smart Contract Accounts in the Klaster ecosystem.\nThis service provides methods to encode single and batch transactions into UserOps\nthat can be processed by the Klaster Node. It intelligently chooses between single\nand batch encoding to optimize for gas efficiency and ensure atomic execution of\nmultiple transactions when needed.\n","title":"EncodingService","titles":["klaster-sdk","Classes"]},"17":{"href":"/reference#constructors","html":"\n","isPage":false,"text":"\n","title":"Constructors","titles":["klaster-sdk","Classes","EncodingService"]},"18":{"href":"/reference#new-encodingservice","html":"\n
\n

new EncodingService(): EncodingService

\n
\n","isPage":false,"text":"\n\nnew EncodingService(): EncodingService\n\n","title":"new EncodingService()","titles":["klaster-sdk","Classes","EncodingService","Constructors"]},"19":{"href":"/reference#returns","html":"\n

EncodingService

\n","isPage":false,"text":"\nEncodingService\n","title":"Returns","titles":["klaster-sdk","Classes","EncodingService","Constructors","new EncodingService()"]},"20":{"href":"/reference#methods","html":"\n","isPage":false,"text":"\n","title":"Methods","titles":["klaster-sdk","Classes","EncodingService"]},"21":{"href":"/reference#encodebatchcall","html":"\n
\n

static encodeBatchCall(txs, chainId, masterWallet, salt): ApiUserOp

\n
\n

Encodes multiple transactions into a single UserOp for batch execution on a Smart Contract Account.

\n

This method prepares a UserOp that, when executed, will call the 'executeBatch' function\non the Smart Contract Account, allowing multiple transactions to be executed atomically.\nThis can lead to significant gas savings compared to executing transactions individually.

\n","isPage":false,"text":"\n\nstatic encodeBatchCall(txs, chainId, masterWallet, salt): ApiUserOp\n\nEncodes multiple transactions into a single UserOp for batch execution on a Smart Contract Account.\nThis method prepares a UserOp that, when executed, will call the 'executeBatch' function\non the Smart Contract Account, allowing multiple transactions to be executed atomically.\nThis can lead to significant gas savings compared to executing transactions individually.\n","title":"encodeBatchCall()","titles":["klaster-sdk","Classes","EncodingService","Methods"]},"22":{"href":"/reference#parameters","html":"\n

txs: RawTransaction[]

\n

An array of transactions to be encoded for batch execution.

\n

chainId: number

\n

The ID of the blockchain where the transactions will be executed.

\n

masterWallet: `0x${string}`

\n

The address of the master wallet from which the Smart Contract Account is derived.

\n

salt: string

\n

A unique value used in conjunction with the masterWallet to derive the Smart Contract Account address.

\n","isPage":false,"text":"\n• txs: RawTransaction[]\nAn array of transactions to be encoded for batch execution.\n• chainId: number\nThe ID of the blockchain where the transactions will be executed.\n• masterWallet: `0x${string}`\nThe address of the master wallet from which the Smart Contract Account is derived.\n• salt: string\nA unique value used in conjunction with the masterWallet to derive the Smart Contract Account address.\n","title":"Parameters","titles":["klaster-sdk","Classes","EncodingService","Methods","encodeBatchCall()"]},"23":{"href":"/reference#returns-1","html":"\n

ApiUserOp

\n

A UserOp object representing the batch execution, which can be sent to the Klaster Node for quoting and execution.

\n","isPage":false,"text":"\nApiUserOp\nA UserOp object representing the batch execution, which can be sent to the Klaster Node for quoting and execution.\n","title":"Returns","titles":["klaster-sdk","Classes","EncodingService","Methods","encodeBatchCall()"]},"24":{"href":"/reference#example","html":"\n
const userOp = EncodingService.encodeBatchCall(\n  [\n    { to: '0x...', value: 1000n, data: '0x...', gasLimit: 21000n },\n    { to: '0x...', value: 2000n, data: '0x...', gasLimit: 50000n }\n  ],\n  1,\n  '0x...',\n  'uniqueSalt'\n);
\n","isPage":false,"text":"\nconst userOp = EncodingService.encodeBatchCall(\n [\n { to: '0x...', value: 1000n, data: '0x...', gasLimit: 21000n },\n { to: '0x...', value: 2000n, data: '0x...', gasLimit: 50000n }\n ],\n 1,\n '0x...',\n 'uniqueSalt'\n);\n","title":"Example","titles":["klaster-sdk","Classes","EncodingService","Methods","encodeBatchCall()"]},"25":{"href":"/reference#defined-in","html":"\n

utils/encoding.service.ts:80

\n","isPage":false,"text":"\nutils/encoding.service.ts:80\n","title":"Defined in","titles":["klaster-sdk","Classes","EncodingService","Methods","encodeBatchCall()"]},"26":{"href":"/reference#encodeuseropcall","html":"\n
\n

static encodeUserOpCall(tx, chainId, masterWallet, salt): ApiUserOp

\n
\n

Encodes a single transaction into a UserOp for execution on a Smart Contract Account.

\n

This method prepares a UserOp that, when executed, will call the 'execute' function\non the Smart Contract Account derived from the provided masterWallet and salt.

\n","isPage":false,"text":"\n\nstatic encodeUserOpCall(tx, chainId, masterWallet, salt): ApiUserOp\n\nEncodes a single transaction into a UserOp for execution on a Smart Contract Account.\nThis method prepares a UserOp that, when executed, will call the 'execute' function\non the Smart Contract Account derived from the provided masterWallet and salt.\n","title":"encodeUserOpCall()","titles":["klaster-sdk","Classes","EncodingService","Methods"]},"27":{"href":"/reference#parameters-1","html":"\n

tx: RawTransaction

\n

The transaction to be encoded.

\n

chainId: number

\n

The ID of the blockchain where the transaction will be executed.

\n

masterWallet: `0x${string}`

\n

The address of the master wallet from which the Smart Contract Account is derived.

\n

salt: string

\n

A unique value used in conjunction with the masterWallet to derive the Smart Contract Account address.

\n","isPage":false,"text":"\n• tx: RawTransaction\nThe transaction to be encoded.\n• chainId: number\nThe ID of the blockchain where the transaction will be executed.\n• masterWallet: `0x${string}`\nThe address of the master wallet from which the Smart Contract Account is derived.\n• salt: string\nA unique value used in conjunction with the masterWallet to derive the Smart Contract Account address.\n","title":"Parameters","titles":["klaster-sdk","Classes","EncodingService","Methods","encodeUserOpCall()"]},"28":{"href":"/reference#returns-2","html":"\n

ApiUserOp

\n

A UserOp object that can be sent to the Klaster Node for quoting and execution.

\n","isPage":false,"text":"\nApiUserOp\nA UserOp object that can be sent to the Klaster Node for quoting and execution.\n","title":"Returns","titles":["klaster-sdk","Classes","EncodingService","Methods","encodeUserOpCall()"]},"29":{"href":"/reference#example-1","html":"\n
const userOp = EncodingService.encodeUserOpCall(\n  { to: '0x...', value: 1000n, data: '0x...', gasLimit: 21000n },\n  1,\n  '0x...',\n  'uniqueSalt'\n);
\n","isPage":false,"text":"\nconst userOp = EncodingService.encodeUserOpCall(\n { to: '0x...', value: 1000n, data: '0x...', gasLimit: 21000n },\n 1,\n '0x...',\n 'uniqueSalt'\n);\n","title":"Example","titles":["klaster-sdk","Classes","EncodingService","Methods","encodeUserOpCall()"]},"30":{"href":"/reference#defined-in-1","html":"\n

utils/encoding.service.ts:35

\n
\n","isPage":false,"text":"\nutils/encoding.service.ts:35\n\n","title":"Defined in","titles":["klaster-sdk","Classes","EncodingService","Methods","encodeUserOpCall()"]},"31":{"href":"/reference#klastersdk","html":"\n

KlasterSDK creates an instance of the SDK used to communicate with\nthe Klaster protocol. It offers typed information for all the types\nused to communicate with the protocol, as well as utility functions\nfor encoding tokens, transactions and accounts.

\n","isPage":false,"text":"\nKlasterSDK creates an instance of the SDK used to communicate with\nthe Klaster protocol. It offers typed information for all the types\nused to communicate with the protocol, as well as utility functions\nfor encoding tokens, transactions and accounts.\n","title":"KlasterSDK","titles":["klaster-sdk","Classes"]},"32":{"href":"/reference#constructors-1","html":"\n","isPage":false,"text":"\n","title":"Constructors","titles":["klaster-sdk","Classes","KlasterSDK"]},"33":{"href":"/reference#new-klastersdk","html":"\n
\n

new KlasterSDK(config): KlasterSDK

\n
\n","isPage":false,"text":"\n\nnew KlasterSDK(config): KlasterSDK\n\n","title":"new KlasterSDK()","titles":["klaster-sdk","Classes","KlasterSDK","Constructors"]},"34":{"href":"/reference#parameters-2","html":"\n

config: Config

\n","isPage":false,"text":"\n• config: Config\n","title":"Parameters","titles":["klaster-sdk","Classes","KlasterSDK","Constructors","new KlasterSDK()"]},"35":{"href":"/reference#returns-3","html":"\n

KlasterSDK

\n","isPage":false,"text":"\nKlasterSDK\n","title":"Returns","titles":["klaster-sdk","Classes","KlasterSDK","Constructors","new KlasterSDK()"]},"36":{"href":"/reference#defined-in-2","html":"\n

index.ts:78

\n","isPage":false,"text":"\nindex.ts:78\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Constructors","new KlasterSDK()"]},"37":{"href":"/reference#properties","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Classes","KlasterSDK"]},"38":{"href":"/reference#activeaccountsalt","html":"\n
\n

activeAccountSalt: string

\n
\n","isPage":false,"text":"\n\nactiveAccountSalt: string\n\n","title":"activeAccountSalt","titles":["klaster-sdk","Classes","KlasterSDK","Properties"]},"39":{"href":"/reference#defined-in-3","html":"\n

index.ts:74

\n","isPage":false,"text":"\nindex.ts:74\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Properties","activeAccountSalt"]},"40":{"href":"/reference#masteraddress","html":"\n
\n

masterAddress: `0x${string}`

\n
\n","isPage":false,"text":"\n\nmasterAddress: `0x${string}`\n\n","title":"masterAddress","titles":["klaster-sdk","Classes","KlasterSDK","Properties"]},"41":{"href":"/reference#defined-in-4","html":"\n

index.ts:76

\n","isPage":false,"text":"\nindex.ts:76\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Properties","masterAddress"]},"42":{"href":"/reference#methods-1","html":"\n","isPage":false,"text":"\n","title":"Methods","titles":["klaster-sdk","Classes","KlasterSDK"]},"43":{"href":"/reference#autoexecute","html":"\n
\n

autoExecute(itx, signHash): Promise<ExecuteResponse>

\n
\n

Automatically fetches a quote and executes the Interchain Transaction (iTx).

\n

This function streamlines the process of executing an iTx by combining the quote\nfetching and execution steps. It automatically handles the flow of getting a quote,\nsigning the iTx hash, and executing the transaction.

\n","isPage":false,"text":"\n\nautoExecute(itx, signHash): Promise<ExecuteResponse>\n\nAutomatically fetches a quote and executes the Interchain Transaction (iTx).\nThis function streamlines the process of executing an iTx by combining the quote\nfetching and execution steps. It automatically handles the flow of getting a quote,\nsigning the iTx hash, and executing the transaction.\n","title":"autoExecute()","titles":["klaster-sdk","Classes","KlasterSDK","Methods"]},"44":{"href":"/reference#parameters-3","html":"\n

itx: InterchainTransaction

\n

The interchain transaction object containing\nthe transactions you wish to execute. This should include all necessary\ninformation for the iTx, such as actions and payment details.

\n

signHash

\n

A function to sign the iTx hash with a private key.\nThis function should take a hash string (prefixed with '0x') and return\na Promise resolving to the signed hash string.

\n","isPage":false,"text":"\n• itx: InterchainTransaction\nThe interchain transaction object containing\nthe transactions you wish to execute. This should include all necessary\ninformation for the iTx, such as actions and payment details.\n• signHash\nA function to sign the iTx hash with a private key.\nThis function should take a hash string (prefixed with '0x') and return\na Promise resolving to the signed hash string.\n","title":"Parameters","titles":["klaster-sdk","Classes","KlasterSDK","Methods","autoExecute()"]},"45":{"href":"/reference#returns-4","html":"\n

Promise<ExecuteResponse>

\n

A promise that resolves to an ExecuteResponse object,\ncontaining the iTx hash of the executed transaction.

\n","isPage":false,"text":"\nPromise<ExecuteResponse>\nA promise that resolves to an ExecuteResponse object,\ncontaining the iTx hash of the executed transaction.\n","title":"Returns","titles":["klaster-sdk","Classes","KlasterSDK","Methods","autoExecute()"]},"46":{"href":"/reference#async","html":"\n","isPage":false,"text":"\n","title":"Async","titles":["klaster-sdk","Classes","KlasterSDK","Methods","autoExecute()"]},"47":{"href":"/reference#throws","html":"\n

May throw errors during the quote fetching, signing, or execution phases.\nThese could include network errors, signing failures, or execution issues.

\n","isPage":false,"text":"\nMay throw errors during the quote fetching, signing, or execution phases.\nThese could include network errors, signing failures, or execution issues.\n","title":"Throws","titles":["klaster-sdk","Classes","KlasterSDK","Methods","autoExecute()"]},"48":{"href":"/reference#example-2","html":"\n
const itx = {\n  actions: [...],  // Array of actions to be executed\n  paymentInfo: ... // Payment information\n};\n \nconst signHash = async (hash) => {\n  // Implement your signing logic here\n  return signedHash;\n};\n \ntry {\n  const result = await klasterSDK.autoExecute(itx, signHash);\n  console.log('iTx executed successfully. Hash:', result.iTxHash);\n} catch (error) {\n  console.error('AutoExecute failed:', error);\n}
\n","isPage":false,"text":"\nconst itx = {\n actions: [...], // Array of actions to be executed\n paymentInfo: ... // Payment information\n};\n \nconst signHash = async (hash) => {\n // Implement your signing logic here\n return signedHash;\n};\n \ntry {\n const result = await klasterSDK.autoExecute(itx, signHash);\n console.log('iTx executed successfully. Hash:', result.iTxHash);\n} catch (error) {\n console.error('AutoExecute failed:', error);\n}\n","title":"Example","titles":["klaster-sdk","Classes","KlasterSDK","Methods","autoExecute()"]},"49":{"href":"/reference#remarks","html":"\n\n","isPage":false,"text":"\n\nThe signHash function must return a properly signed hash. Ensure you're using\nthe correct signing method (e.g., personalSign) to avoid execution errors.\nThis function abstracts away the separate steps of quoting and executing,\nmaking it more convenient for straightforward iTx executions.\n\n","title":"Remarks","titles":["klaster-sdk","Classes","KlasterSDK","Methods","autoExecute()"]},"50":{"href":"/reference#see","html":"\n\n","isPage":false,"text":"\n\ngetQuote - Used internally to fetch the quote.\nexecute - Used internally to execute the transaction.\n\n","title":"See","titles":["klaster-sdk","Classes","KlasterSDK","Methods","autoExecute()"]},"51":{"href":"/reference#defined-in-5","html":"\n

index.ts:397

\n","isPage":false,"text":"\nindex.ts:397\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Methods","autoExecute()"]},"52":{"href":"/reference#changeaccountsalt","html":"\n
\n

changeAccountSalt(salt): void

\n
\n

Changes the salt value used for deriving ERC4337 multichain smart accounts.

\n

This function updates the activeAccountSalt parameter of the SDK instance. The salt,\nin combination with the connected Externally Owned Account (EOA), is used to\ndeterministically derive ERC4337 compliant multichain smart contract accounts.\nChanging this salt will result in deriving a different smart contract account\nfor all subsequent operations.

\n","isPage":false,"text":"\n\nchangeAccountSalt(salt): void\n\nChanges the salt value used for deriving ERC4337 multichain smart accounts.\nThis function updates the activeAccountSalt parameter of the SDK instance. The salt,\nin combination with the connected Externally Owned Account (EOA), is used to\ndeterministically derive ERC4337 compliant multichain smart contract accounts.\nChanging this salt will result in deriving a different smart contract account\nfor all subsequent operations.\n","title":"changeAccountSalt()","titles":["klaster-sdk","Classes","KlasterSDK","Methods"]},"53":{"href":"/reference#parameters-4","html":"\n

salt: string

\n

The new salt value to be used for account derivation.\nThis should be a unique string that, when combined with\nthe EOA address, produces a unique smart account address.

\n","isPage":false,"text":"\n• salt: string\nThe new salt value to be used for account derivation.\nThis should be a unique string that, when combined with\nthe EOA address, produces a unique smart account address.\n","title":"Parameters","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeAccountSalt()"]},"54":{"href":"/reference#returns-5","html":"\n

void

\n","isPage":false,"text":"\nvoid\n","title":"Returns","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeAccountSalt()"]},"55":{"href":"/reference#example-3","html":"\n
// Assuming 'klasterSDK' is an initialized instance of the Klaster SDK\nklasterSDK.changeAccountSalt('uniqueSaltValue123');
\n","isPage":false,"text":"\n// Assuming 'klasterSDK' is an initialized instance of the Klaster SDK\nklasterSDK.changeAccountSalt('uniqueSaltValue123');\n","title":"Example","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeAccountSalt()"]},"56":{"href":"/reference#note","html":"\n

Changing the account salt will affect all future account derivations and operations.\nIt does not affect previously derived accounts or ongoing transactions. Ensure you understand\nthe implications of changing this salt in the context of your application.

\n","isPage":false,"text":"\nChanging the account salt will affect all future account derivations and operations.\nIt does not affect previously derived accounts or ongoing transactions. Ensure you understand\nthe implications of changing this salt in the context of your application.\n","title":"Note","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeAccountSalt()"]},"57":{"href":"/reference#see-1","html":"\n

For more information on ERC4337 and account abstraction, visit:\nAccount Abstraction

\n","isPage":false,"text":"\nFor more information on ERC4337 and account abstraction, visit:\nAccount Abstraction\n","title":"See","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeAccountSalt()"]},"58":{"href":"/reference#defined-in-6","html":"\n

index.ts:136

\n","isPage":false,"text":"\nindex.ts:136\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeAccountSalt()"]},"59":{"href":"/reference#changemasteraddress","html":"\n
\n

changeMasterAddress(wallet): void

\n
\n

Changes the master wallet address used for deriving ERC4337 multichain smart accounts.

\n

This function updates the masterAddress parameter of the SDK instance. The master address,\nin combination with a salt value, is used to deterministically derive ERC4337 compliant\nmultichain smart contract accounts. Changing this address will result in deriving\ndifferent smart contract accounts for all subsequent operations.

\n","isPage":false,"text":"\n\nchangeMasterAddress(wallet): void\n\nChanges the master wallet address used for deriving ERC4337 multichain smart accounts.\nThis function updates the masterAddress parameter of the SDK instance. The master address,\nin combination with a salt value, is used to deterministically derive ERC4337 compliant\nmultichain smart contract accounts. Changing this address will result in deriving\ndifferent smart contract accounts for all subsequent operations.\n","title":"changeMasterAddress()","titles":["klaster-sdk","Classes","KlasterSDK","Methods"]},"60":{"href":"/reference#parameters-5","html":"\n

wallet: `0x${string}`

\n

The new master wallet address to be used for account derivation.\nThis should be a valid Ethereum address.

\n","isPage":false,"text":"\n• wallet: `0x${string}`\nThe new master wallet address to be used for account derivation.\nThis should be a valid Ethereum address.\n","title":"Parameters","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeMasterAddress()"]},"61":{"href":"/reference#returns-6","html":"\n

void

\n","isPage":false,"text":"\nvoid\n","title":"Returns","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeMasterAddress()"]},"62":{"href":"/reference#throws-1","html":"\n

May throw an error if the provided address is invalid.

\n","isPage":false,"text":"\nMay throw an error if the provided address is invalid.\n","title":"Throws","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeMasterAddress()"]},"63":{"href":"/reference#example-4","html":"\n
// Assuming 'klasterSDK' is an initialized instance of the Klaster SDK\nklasterSDK.changeMasterAddress('0x742d35Cc6634C0532925a3b844Bc454e4438f44e');
\n","isPage":false,"text":"\n// Assuming 'klasterSDK' is an initialized instance of the Klaster SDK\nklasterSDK.changeMasterAddress('0x742d35Cc6634C0532925a3b844Bc454e4438f44e');\n","title":"Example","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeMasterAddress()"]},"64":{"href":"/reference#note-1","html":"\n

Changing the master address will affect all future account derivations and operations.\nIt does not affect previously derived accounts or ongoing transactions. Ensure you understand\nthe implications of changing this address in the context of your application.

\n","isPage":false,"text":"\nChanging the master address will affect all future account derivations and operations.\nIt does not affect previously derived accounts or ongoing transactions. Ensure you understand\nthe implications of changing this address in the context of your application.\n","title":"Note","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeMasterAddress()"]},"65":{"href":"/reference#see-2","html":"\n

For more information on ERC4337 and account abstraction, visit:\nAccount Abstraction

\n","isPage":false,"text":"\nFor more information on ERC4337 and account abstraction, visit:\nAccount Abstraction\n","title":"See","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeMasterAddress()"]},"66":{"href":"/reference#defined-in-7","html":"\n

index.ts:107

\n","isPage":false,"text":"\nindex.ts:107\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeMasterAddress()"]},"67":{"href":"/reference#encodetxfee","html":"\n
\n

encodeTxFee(paymentToken, chainId): Promise<ApiPaymentData>

\n
\n

A helper function that prepares an ApiPaymentData object for transaction fee payments.

\n

This asynchronous function simplifies the process of creating an ApiPaymentData object,\nwhich is used to specify how transaction fees should be paid on the Klaster Protocol.\nIt combines information from the multichain account, the current SDK configuration,\nand the specified payment token to create a complete payment data structure.

\n","isPage":false,"text":"\n\nencodeTxFee(paymentToken, chainId): Promise<ApiPaymentData>\n\nA helper function that prepares an ApiPaymentData object for transaction fee payments.\nThis asynchronous function simplifies the process of creating an ApiPaymentData object,\nwhich is used to specify how transaction fees should be paid on the Klaster Protocol.\nIt combines information from the multichain account, the current SDK configuration,\nand the specified payment token to create a complete payment data structure.\n","title":"encodeTxFee()","titles":["klaster-sdk","Classes","KlasterSDK","Methods"]},"68":{"href":"/reference#parameters-6","html":"\n

paymentToken: PaymentTokenSymbol

\n

A string representing the symbol of the token being used for\npayments. e.g. ETH, USDC, MATIC, WSTETH, ...

\n

chainId: number

\n

The chainId of the chain on which you wish to execute the payment.

\n","isPage":false,"text":"\n• paymentToken: PaymentTokenSymbol\nA string representing the symbol of the token being used for\npayments. e.g. ETH, USDC, MATIC, WSTETH, ...\n• chainId: number\nThe chainId of the chain on which you wish to execute the payment.\n","title":"Parameters","titles":["klaster-sdk","Classes","KlasterSDK","Methods","encodeTxFee()"]},"69":{"href":"/reference#returns-7","html":"\n

Promise<ApiPaymentData>

\n

A promise that resolves to an ApiPaymentData object containing:

\n\n","isPage":false,"text":"\nPromise<ApiPaymentData>\nA promise that resolves to an ApiPaymentData object containing:\n\nchainId: The chain ID where the payment will be processed\nmasterWallet: The address of the master wallet used in the SDK.\nsalt: The salt used for deriving the multichain account.\ntoken: The address of the token to be used for payment.\n\n","title":"Returns","titles":["klaster-sdk","Classes","KlasterSDK","Methods","encodeTxFee()"]},"70":{"href":"/reference#async-1","html":"\n","isPage":false,"text":"\n","title":"Async","titles":["klaster-sdk","Classes","KlasterSDK","Methods","encodeTxFee()"]},"71":{"href":"/reference#throws-2","html":"\n

May throw an error if:

\n\n","isPage":false,"text":"\nMay throw an error if:\n\nThere's an issue retrieving the multichain account.\nThe specified payment token is not found or invalid.\nAny other unexpected error occurs during the process.\n\n","title":"Throws","titles":["klaster-sdk","Classes","KlasterSDK","Methods","encodeTxFee()"]},"72":{"href":"/reference#example-5","html":"\n
// Assuming 'klasterSDK' is an initialized instance of the Klaster SDK\ntry {\n  const paymentData = await klasterSDK.encodeTxFee('USDC', optimism.id);\n  console.log('Payment data:', paymentData);\n} catch (error) {\n  console.error('Failed to encode transaction fee:', error);\n}
\n","isPage":false,"text":"\n// Assuming 'klasterSDK' is an initialized instance of the Klaster SDK\ntry {\n const paymentData = await klasterSDK.encodeTxFee('USDC', optimism.id);\n console.log('Payment data:', paymentData);\n} catch (error) {\n console.error('Failed to encode transaction fee:', error);\n}\n","title":"Example","titles":["klaster-sdk","Classes","KlasterSDK","Methods","encodeTxFee()"]},"73":{"href":"/reference#note-2","html":"\n

This function uses the current state of the SDK, including the master wallet address.\nMake sure these are set correctly before calling this function.

\n","isPage":false,"text":"\nThis function uses the current state of the SDK, including the master wallet address.\nMake sure these are set correctly before calling this function.\n","title":"Note","titles":["klaster-sdk","Classes","KlasterSDK","Methods","encodeTxFee()"]},"74":{"href":"/reference#see-3","html":"\n\n","isPage":false,"text":"\n\ngetMultichainAccount - Used internally to fetch the current multichain account.\ngetPaymentToken - Used internally to resolve the token address from the ChainTokenPair.\n\n","title":"See","titles":["klaster-sdk","Classes","KlasterSDK","Methods","encodeTxFee()"]},"75":{"href":"/reference#defined-in-8","html":"\n

index.ts:227

\n","isPage":false,"text":"\nindex.ts:227\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Methods","encodeTxFee()"]},"76":{"href":"/reference#execute","html":"\n
\n

execute(response, signedHash): Promise<ExecuteResponse>

\n
\n

Executes the Interchain Transaction (iTx) based on a quote response and signed hash.

\n

This function triggers the execution of an iTx on the Klaster network. Once called\nwith a valid signed hash, the execution becomes irreversible.

\n","isPage":false,"text":"\n\nexecute(response, signedHash): Promise<ExecuteResponse>\n\nExecutes the Interchain Transaction (iTx) based on a quote response and signed hash.\nThis function triggers the execution of an iTx on the Klaster network. Once called\nwith a valid signed hash, the execution becomes irreversible.\n","title":"execute()","titles":["klaster-sdk","Classes","KlasterSDK","Methods"]},"77":{"href":"/reference#parameters-7","html":"\n

response: QuoteResponse

\n

The response object returned from calling the quote\nendpoint. This contains necessary information for execution.

\n

signedHash: string

\n

The iTx hash, signed by the wallet using the personalSign method.

\n","isPage":false,"text":"\n• response: QuoteResponse\nThe response object returned from calling the quote\nendpoint. This contains necessary information for execution.\n• signedHash: string\nThe iTx hash, signed by the wallet using the personalSign method.\n","title":"Parameters","titles":["klaster-sdk","Classes","KlasterSDK","Methods","execute()"]},"78":{"href":"/reference#returns-8","html":"\n

Promise<ExecuteResponse>

\n

A promise that resolves to an ExecuteResponse object\ncontaining the iTx hash of the executed transaction.

\n","isPage":false,"text":"\nPromise<ExecuteResponse>\nA promise that resolves to an ExecuteResponse object\ncontaining the iTx hash of the executed transaction.\n","title":"Returns","titles":["klaster-sdk","Classes","KlasterSDK","Methods","execute()"]},"79":{"href":"/reference#async-2","html":"\n","isPage":false,"text":"\n","title":"Async","titles":["klaster-sdk","Classes","KlasterSDK","Methods","execute()"]},"80":{"href":"/reference#throws-3","html":"\n

May throw an error if the execution fails, if the signed hash is invalid,\nor if there are network issues.

\n","isPage":false,"text":"\nMay throw an error if the execution fails, if the signed hash is invalid,\nor if there are network issues.\n","title":"Throws","titles":["klaster-sdk","Classes","KlasterSDK","Methods","execute()"]},"81":{"href":"/reference#remarks-1","html":"\n

IMPORTANT: The hash must be signed using the personalSign method.\nIf you encounter an "invalid merkle hash" error, ensure you're using the correct\nsigning method. Some libraries may default to a different signing scheme.

\n","isPage":false,"text":"\nIMPORTANT: The hash must be signed using the personalSign method.\nIf you encounter an "invalid merkle hash" error, ensure you're using the correct\nsigning method. Some libraries may default to a different signing scheme.\n","title":"Remarks","titles":["klaster-sdk","Classes","KlasterSDK","Methods","execute()"]},"82":{"href":"/reference#example-6","html":"\n
try {\n  const quoteResponse = await klasterSDK.getQuote(...);\n  const signedHash = await wallet.personalSign(quoteResponse.hash);\n  const executeResponse = await klasterSDK.execute(quoteResponse, signedHash);\n  console.log('Execution successful. iTx hash:', executeResponse.iTxHash);\n} catch (error) {\n  console.error('Execution failed:', error);\n}
\n","isPage":false,"text":"\ntry {\n const quoteResponse = await klasterSDK.getQuote(...);\n const signedHash = await wallet.personalSign(quoteResponse.hash);\n const executeResponse = await klasterSDK.execute(quoteResponse, signedHash);\n console.log('Execution successful. iTx hash:', executeResponse.iTxHash);\n} catch (error) {\n console.error('Execution failed:', error);\n}\n","title":"Example","titles":["klaster-sdk","Classes","KlasterSDK","Methods","execute()"]},"83":{"href":"/reference#see-4","html":"\n\n","isPage":false,"text":"\n\ngetQuote - Used to obtain the necessary QuoteResponse.\nhttps://eips.ethereum.org/EIPS/eip-191 - EIP-191 for signed data standard.\n\n","title":"See","titles":["klaster-sdk","Classes","KlasterSDK","Methods","execute()"]},"84":{"href":"/reference#defined-in-9","html":"\n

index.ts:342

\n","isPage":false,"text":"\nindex.ts:342\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Methods","execute()"]},"85":{"href":"/reference#getmultichainaccount","html":"\n
\n

getMultichainAccount(): Promise<MultichainAccount>

\n
\n

Fetches the multichain ERC4337 account derived from the current masterWallet and salt.

\n

This asynchronous function retrieves the multichain smart contract account that is\ndeterministically derived using the masterWallet and salt parameters set during\nSDK initialization or subsequently updated.

\n

The derived account is compliant with the ERC4337 standard for account abstraction\nand can be used across multiple blockchain networks.

\n","isPage":false,"text":"\n\ngetMultichainAccount(): Promise<MultichainAccount>\n\nFetches the multichain ERC4337 account derived from the current masterWallet and salt.\nThis asynchronous function retrieves the multichain smart contract account that is\ndeterministically derived using the masterWallet and salt parameters set during\nSDK initialization or subsequently updated.\nThe derived account is compliant with the ERC4337 standard for account abstraction\nand can be used across multiple blockchain networks.\n","title":"getMultichainAccount()","titles":["klaster-sdk","Classes","KlasterSDK","Methods"]},"86":{"href":"/reference#returns-9","html":"\n

Promise<MultichainAccount>

\n

A promise that resolves to a MultichainAccount object.\nThe object contains:

\n\n","isPage":false,"text":"\nPromise<MultichainAccount>\nA promise that resolves to a MultichainAccount object.\nThe object contains:\n\nsalt: The current active account salt used for derivation.\naddress: The derived multichain smart contract account address.\n\n","title":"Returns","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getMultichainAccount()"]},"87":{"href":"/reference#async-3","html":"\n","isPage":false,"text":"\n","title":"Async","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getMultichainAccount()"]},"88":{"href":"/reference#throws-4","html":"\n

May throw an error if there's an issue communicating with the node service\nor if the account derivation fails.

\n","isPage":false,"text":"\nMay throw an error if there's an issue communicating with the node service\nor if the account derivation fails.\n","title":"Throws","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getMultichainAccount()"]},"89":{"href":"/reference#example-7","html":"\n
// Assuming 'klasterSDK' is an initialized instance of the Klaster SDK\ntry {\n  const account = await klasterSDK.getMultichainAccount();\n  console.log('Derived account:', account.address);\n  console.log('Used salt:', account.salt);\n} catch (error) {\n  console.error('Failed to fetch multichain account:', error);\n}
\n","isPage":false,"text":"\n// Assuming 'klasterSDK' is an initialized instance of the Klaster SDK\ntry {\n const account = await klasterSDK.getMultichainAccount();\n console.log('Derived account:', account.address);\n console.log('Used salt:', account.salt);\n} catch (error) {\n console.error('Failed to fetch multichain account:', error);\n}\n","title":"Example","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getMultichainAccount()"]},"90":{"href":"/reference#note-3","html":"\n

This function uses the current values of masterWallet and salt. If you need\nto derive a different account, use changeMasterAddress() or changeAccountSalt()\nbefore calling this function.

\n","isPage":false,"text":"\nThis function uses the current values of masterWallet and salt. If you need\nto derive a different account, use changeMasterAddress() or changeAccountSalt()\nbefore calling this function.\n","title":"Note","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getMultichainAccount()"]},"91":{"href":"/reference#see-5","html":"\n\n","isPage":false,"text":"\n\nchangeMasterAddress - To change the master wallet address.\nchangeAccountSalt - To change the account salt.\n\n","title":"See","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getMultichainAccount()"]},"92":{"href":"/reference#defined-in-10","html":"\n

index.ts:176

\n","isPage":false,"text":"\nindex.ts:176\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getMultichainAccount()"]},"93":{"href":"/reference#getquote","html":"\n
\n

getQuote(itx): Promise<QuoteResponse>

\n
\n

Fetches a quote for the interchain transaction (iTx).

\n

This asynchronous function processes an InterchainTransaction object to obtain a quote\nfrom the Klaster Node. The quote contains the full iTx information as well as the\nrequired payment information for executing the transaction.

\n","isPage":false,"text":"\n\ngetQuote(itx): Promise<QuoteResponse>\n\nFetches a quote for the interchain transaction (iTx).\nThis asynchronous function processes an InterchainTransaction object to obtain a quote\nfrom the Klaster Node. The quote contains the full iTx information as well as the\nrequired payment information for executing the transaction.\n","title":"getQuote()","titles":["klaster-sdk","Classes","KlasterSDK","Methods"]},"94":{"href":"/reference#parameters-8","html":"\n

itx: InterchainTransaction

\n

The full Interchain Transaction object. This object\nshould contain an array of actions and payment information.

\n","isPage":false,"text":"\n• itx: InterchainTransaction\nThe full Interchain Transaction object. This object\nshould contain an array of actions and payment information.\n","title":"Parameters","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getQuote()"]},"95":{"href":"/reference#returns-10","html":"\n

Promise<QuoteResponse>

\n

A promise that resolves to a QuoteResponse object\ncontaining the full iTx information and required payment details.

\n","isPage":false,"text":"\nPromise<QuoteResponse>\nA promise that resolves to a QuoteResponse object\ncontaining the full iTx information and required payment details.\n","title":"Returns","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getQuote()"]},"96":{"href":"/reference#async-4","html":"\n","isPage":false,"text":"\n","title":"Async","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getQuote()"]},"97":{"href":"/reference#throws-5","html":"\n

Throws an error if the actions array in the iTx is empty.

\n","isPage":false,"text":"\nThrows an error if the actions array in the iTx is empty.\n","title":"Throws","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getQuote()"]},"98":{"href":"/reference#throws-6","html":"\n

May throw errors from the EncodingService or the node service if there\nare issues encoding the actions or fetching the quote.

\n","isPage":false,"text":"\nMay throw errors from the EncodingService or the node service if there\nare issues encoding the actions or fetching the quote.\n","title":"Throws","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getQuote()"]},"99":{"href":"/reference#example-8","html":"\n
const itx = {\n  actions: [\n    {\n      txs: [{ to: '0x...', value: 1000n, data: '0x...', gasLimit: 21000n }],\n      chainId: 1\n    }\n  ],\n  paymentInfo: { ... } // ApiPaymentData object\n};\n \ntry {\n  const quote = await klasterSDK.getQuote(itx);\n  console.log('Received quote:', quote);\n} catch (error) {\n  console.error('Failed to get quote:', error);\n}
\n","isPage":false,"text":"\nconst itx = {\n actions: [\n {\n txs: [{ to: '0x...', value: 1000n, data: '0x...', gasLimit: 21000n }],\n chainId: 1\n }\n ],\n paymentInfo: { ... } // ApiPaymentData object\n};\n \ntry {\n const quote = await klasterSDK.getQuote(itx);\n console.log('Received quote:', quote);\n} catch (error) {\n console.error('Failed to get quote:', error);\n}\n","title":"Example","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getQuote()"]},"100":{"href":"/reference#note-4","html":"\n

This function uses the current values of masterAddress and activeAccountSalt\nfrom the SDK instance for encoding user operations.

\n","isPage":false,"text":"\nThis function uses the current values of masterAddress and activeAccountSalt\nfrom the SDK instance for encoding user operations.\n","title":"Note","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getQuote()"]},"101":{"href":"/reference#see-6","html":"\n\n","isPage":false,"text":"\n\nEncodingService.encodeUserOpCall - Used for encoding single transaction actions.\nEncodingService.encodeBatchCall - Used for encoding multi-transaction actions.\n\n","title":"See","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getQuote()"]},"102":{"href":"/reference#defined-in-11","html":"\n

index.ts:282

\n","isPage":false,"text":"\nindex.ts:282\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getQuote()"]},"103":{"href":"/reference#transferandexecute","html":"\n
\n

transferAndExecute(params): Promise<ExecuteResponse>

\n
\n

Transfers ERC20 tokens to the multichain smart contract account and\nexecutes the desired actions across multiple blockchains.

\n

This function performs two main operations:

\n
    \n
  1. Transfers ERC20 tokens to the smart contract account.
  2. \n
  3. Executes an interchain transaction (iTx) after the transfer is confirmed.
  4. \n
\n","isPage":false,"text":"\n\ntransferAndExecute(params): Promise<ExecuteResponse>\n\nTransfers ERC20 tokens to the multichain smart contract account and\nexecutes the desired actions across multiple blockchains.\nThis function performs two main operations:\n\nTransfers ERC20 tokens to the smart contract account.\nExecutes an interchain transaction (iTx) after the transfer is confirmed.\n\n","title":"transferAndExecute()","titles":["klaster-sdk","Classes","KlasterSDK","Methods"]},"104":{"href":"/reference#parameters-9","html":"\n

params

\n

The parameters object containing transfer and execution instructions.

\n

params.executeItx

\n

Instructions for executing the interchain transaction.

\n

params.executeItx.iTx: InterchainTransaction

\n

params.executeItx.signItxHashAction

\n

params.transferToSmartAccount

\n

Instructions for transferring ERC20 tokens to the smart account.

\n

params.transferToSmartAccount.amountToTransfer: bigint

\n

params.transferToSmartAccount.chainId: number

\n

params.transferToSmartAccount.executeTxAction

\n

params.transferToSmartAccount.tokenToTransfer: `0x${string}`

\n","isPage":false,"text":"\n• params\nThe parameters object containing transfer and execution instructions.\n• params.executeItx\nInstructions for executing the interchain transaction.\n• params.executeItx.iTx: InterchainTransaction\n• params.executeItx.signItxHashAction\n• params.transferToSmartAccount\nInstructions for transferring ERC20 tokens to the smart account.\n• params.transferToSmartAccount.amountToTransfer: bigint\n• params.transferToSmartAccount.chainId: number\n• params.transferToSmartAccount.executeTxAction\n• params.transferToSmartAccount.tokenToTransfer: `0x${string}`\n","title":"Parameters","titles":["klaster-sdk","Classes","KlasterSDK","Methods","transferAndExecute()"]},"105":{"href":"/reference#returns-11","html":"\n

Promise<ExecuteResponse>

\n

A promise that resolves to the execution response of the iTx.

\n","isPage":false,"text":"\nPromise<ExecuteResponse>\nA promise that resolves to the execution response of the iTx.\n","title":"Returns","titles":["klaster-sdk","Classes","KlasterSDK","Methods","transferAndExecute()"]},"106":{"href":"/reference#async-5","html":"\n","isPage":false,"text":"\n","title":"Async","titles":["klaster-sdk","Classes","KlasterSDK","Methods","transferAndExecute()"]},"107":{"href":"/reference#throws-7","html":"\n

May throw errors during the token transfer, quote fetching, signing, or execution phases.

\n","isPage":false,"text":"\nMay throw errors during the token transfer, quote fetching, signing, or execution phases.\n","title":"Throws","titles":["klaster-sdk","Classes","KlasterSDK","Methods","transferAndExecute()"]},"108":{"href":"/reference#example-9","html":"\n
const result = await klasterSDK.transferAndExecute({\n  transferToSmartAccount: {\n    tokenToTransfer: '0x...',  // ERC20 token address\n    amountToTransfer: BigInt(1000000),  // Amount in smallest unit\n    chainId: 1,  // Ethereum mainnet\n    executeTxAction: async (tx) => {\n      // Implement your transaction execution logic here\n      await yourProvider.sendTransaction(tx);\n    }\n  },\n  executeItx: {\n    iTx: {\n      // Your interchain transaction object\n    },\n    signItxHashAction: async (hash) => {\n      // Implement your signing logic here\n      return await yourSigner.signMessage(hash);\n    }\n  }\n});
\n","isPage":false,"text":"\nconst result = await klasterSDK.transferAndExecute({\n transferToSmartAccount: {\n tokenToTransfer: '0x...', // ERC20 token address\n amountToTransfer: BigInt(1000000), // Amount in smallest unit\n chainId: 1, // Ethereum mainnet\n executeTxAction: async (tx) => {\n // Implement your transaction execution logic here\n await yourProvider.sendTransaction(tx);\n }\n },\n executeItx: {\n iTx: {\n // Your interchain transaction object\n },\n signItxHashAction: async (hash) => {\n // Implement your signing logic here\n return await yourSigner.signMessage(hash);\n }\n }\n});\n","title":"Example","titles":["klaster-sdk","Classes","KlasterSDK","Methods","transferAndExecute()"]},"109":{"href":"/reference#remarks-2","html":"\n\n","isPage":false,"text":"\n\nThe executeTxAction function should handle the actual sending of the transfer transaction to the blockchain.\nConsult the Klaster documentation for details on implementing this with your specific provider.\nThe signItxHashAction function should handle the signing of the iTx hash.\nEnsure you're using the correct signing method as specified in the Klaster documentation.\nThis function will wait for the transfer transaction to be accepted before proceeding with the iTx execution.\n\n","title":"Remarks","titles":["klaster-sdk","Classes","KlasterSDK","Methods","transferAndExecute()"]},"110":{"href":"/reference#see-7","html":"\n\n","isPage":false,"text":"\n\nKlaster documentation for detailed information on implementing executeTxAction and signItxHashAction.\nbuildTransferERC20FromEoaTx - Used internally to construct the transfer transaction.\ngetQuote - Used internally to fetch the quote for the iTx.\nexecute - Used internally to execute the iTx.\n\n","title":"See","titles":["klaster-sdk","Classes","KlasterSDK","Methods","transferAndExecute()"]},"111":{"href":"/reference#defined-in-12","html":"\n

index.ts:466

\n
\n","isPage":false,"text":"\nindex.ts:466\n\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Methods","transferAndExecute()"]},"112":{"href":"/reference#saltutil","html":"\n

Utility class for generating salt values used in KlasterSDK functions.

\n

Salt values are crucial for deriving unique smart contract accounts within the Klaster ecosystem.\nThis class provides methods to generate salts for different account scenarios.

\n","isPage":false,"text":"\nUtility class for generating salt values used in KlasterSDK functions.\nSalt values are crucial for deriving unique smart contract accounts within the Klaster ecosystem.\nThis class provides methods to generate salts for different account scenarios.\n","title":"SaltUtil","titles":["klaster-sdk","Classes"]},"113":{"href":"/reference#constructors-2","html":"\n","isPage":false,"text":"\n","title":"Constructors","titles":["klaster-sdk","Classes","SaltUtil"]},"114":{"href":"/reference#new-saltutil","html":"\n
\n

new SaltUtil(): SaltUtil

\n
\n","isPage":false,"text":"\n\nnew SaltUtil(): SaltUtil\n\n","title":"new SaltUtil()","titles":["klaster-sdk","Classes","SaltUtil","Constructors"]},"115":{"href":"/reference#returns-12","html":"\n

SaltUtil

\n","isPage":false,"text":"\nSaltUtil\n","title":"Returns","titles":["klaster-sdk","Classes","SaltUtil","Constructors","new SaltUtil()"]},"116":{"href":"/reference#methods-2","html":"\n","isPage":false,"text":"\n","title":"Methods","titles":["klaster-sdk","Classes","SaltUtil"]},"117":{"href":"/reference#accountat","html":"\n
\n

static accountAt(i): string

\n
\n

Generates a salt for an account at a specific index.

\n

This method allows for deterministic generation of salts for multiple accounts.

\n","isPage":false,"text":"\n\nstatic accountAt(i): string\n\nGenerates a salt for an account at a specific index.\nThis method allows for deterministic generation of salts for multiple accounts.\n","title":"accountAt()","titles":["klaster-sdk","Classes","SaltUtil","Methods"]},"118":{"href":"/reference#parameters-10","html":"\n

i: number

\n

The index of the account, starting from 0.

\n","isPage":false,"text":"\n• i: number\nThe index of the account, starting from 0.\n","title":"Parameters","titles":["klaster-sdk","Classes","SaltUtil","Methods","accountAt()"]},"119":{"href":"/reference#returns-13","html":"\n

string

\n

A salt value corresponding to the given index.

\n","isPage":false,"text":"\nstring\nA salt value corresponding to the given index.\n","title":"Returns","titles":["klaster-sdk","Classes","SaltUtil","Methods","accountAt()"]},"120":{"href":"/reference#example-10","html":"\n
const thirdAccountSalt = SaltUtil.accountAt(2);\nconsole.log(thirdAccountSalt); // Outputs: "2"
\n","isPage":false,"text":"\nconst thirdAccountSalt = SaltUtil.accountAt(2);\nconsole.log(thirdAccountSalt); // Outputs: "2"\n","title":"Example","titles":["klaster-sdk","Classes","SaltUtil","Methods","accountAt()"]},"121":{"href":"/reference#defined-in-13","html":"\n

utils/salt.service.ts:33

\n","isPage":false,"text":"\nutils/salt.service.ts:33\n","title":"Defined in","titles":["klaster-sdk","Classes","SaltUtil","Methods","accountAt()"]},"122":{"href":"/reference#customaccount","html":"\n
\n

static customAccount(salt): string

\n
\n

Allows for the use of a custom salt value.

\n

This method provides flexibility for users who want to use their own salt values.

\n","isPage":false,"text":"\n\nstatic customAccount(salt): string\n\nAllows for the use of a custom salt value.\nThis method provides flexibility for users who want to use their own salt values.\n","title":"customAccount()","titles":["klaster-sdk","Classes","SaltUtil","Methods"]},"123":{"href":"/reference#parameters-11","html":"\n

salt: string

\n

A custom salt value.

\n","isPage":false,"text":"\n• salt: string\nA custom salt value.\n","title":"Parameters","titles":["klaster-sdk","Classes","SaltUtil","Methods","customAccount()"]},"124":{"href":"/reference#returns-14","html":"\n

string

\n

The provided custom salt value.

\n","isPage":false,"text":"\nstring\nThe provided custom salt value.\n","title":"Returns","titles":["klaster-sdk","Classes","SaltUtil","Methods","customAccount()"]},"125":{"href":"/reference#example-11","html":"\n
const customSalt = SaltUtil.customAccount("mySuperUniqueValue");\nconsole.log(customSalt); // Outputs: "mySuperUniqueValue"
\n","isPage":false,"text":"\nconst customSalt = SaltUtil.customAccount("mySuperUniqueValue");\nconsole.log(customSalt); // Outputs: "mySuperUniqueValue"\n","title":"Example","titles":["klaster-sdk","Classes","SaltUtil","Methods","customAccount()"]},"126":{"href":"/reference#remarks-3","html":"\n

When using custom salts, ensure they are unique to avoid account collisions.\nCustom salts should be securely generated and managed to maintain account security.

\n","isPage":false,"text":"\nWhen using custom salts, ensure they are unique to avoid account collisions.\nCustom salts should be securely generated and managed to maintain account security.\n","title":"Remarks","titles":["klaster-sdk","Classes","SaltUtil","Methods","customAccount()"]},"127":{"href":"/reference#defined-in-14","html":"\n

utils/salt.service.ts:53

\n","isPage":false,"text":"\nutils/salt.service.ts:53\n","title":"Defined in","titles":["klaster-sdk","Classes","SaltUtil","Methods","customAccount()"]},"128":{"href":"/reference#firstaccount","html":"\n
\n

static firstAccount(): string

\n
\n

Generates a salt for the first (default) account.

\n","isPage":false,"text":"\n\nstatic firstAccount(): string\n\nGenerates a salt for the first (default) account.\n","title":"firstAccount()","titles":["klaster-sdk","Classes","SaltUtil","Methods"]},"129":{"href":"/reference#returns-15","html":"\n

string

\n

A salt value of "0", representing the first account.

\n","isPage":false,"text":"\nstring\nA salt value of "0", representing the first account.\n","title":"Returns","titles":["klaster-sdk","Classes","SaltUtil","Methods","firstAccount()"]},"130":{"href":"/reference#example-12","html":"\n
const firstAccountSalt = SaltUtil.firstAccount();\nconsole.log(firstAccountSalt); // Outputs: "0"
\n","isPage":false,"text":"\nconst firstAccountSalt = SaltUtil.firstAccount();\nconsole.log(firstAccountSalt); // Outputs: "0"\n","title":"Example","titles":["klaster-sdk","Classes","SaltUtil","Methods","firstAccount()"]},"131":{"href":"/reference#defined-in-15","html":"\n

utils/salt.service.ts:17

\n","isPage":false,"text":"\nutils/salt.service.ts:17\n","title":"Defined in","titles":["klaster-sdk","Classes","SaltUtil","Methods","firstAccount()"]},"132":{"href":"/reference#interfaces","html":"\n","isPage":false,"text":"\n","title":"Interfaces","titles":["klaster-sdk"]},"133":{"href":"/reference#apipaymentdata","html":"\n

Represents the payment data structure for gas costs and transaction fees in the Klaster API.\nThis interface defines the necessary information for processing payments related to\nuser operations on the Klaster network.

\n

ApiPaymentData

\n","isPage":false,"text":"\nRepresents the payment data structure for gas costs and transaction fees in the Klaster API.\nThis interface defines the necessary information for processing payments related to\nuser operations on the Klaster network.\nApiPaymentData\n","title":"ApiPaymentData","titles":["klaster-sdk","Interfaces"]},"134":{"href":"/reference#properties-1","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","ApiPaymentData"]},"135":{"href":"/reference#chainid","html":"\n
\n

chainId: number

\n
\n

The ID of the blockchain network on which the payment for\nthe gas cost and transaction fees will be processed. This determines the specific\nblockchain where the payment transaction will occur.

\n","isPage":false,"text":"\n\nchainId: number\n\nThe ID of the blockchain network on which the payment for\nthe gas cost and transaction fees will be processed. This determines the specific\nblockchain where the payment transaction will occur.\n","title":"chainId","titles":["klaster-sdk","Interfaces","ApiPaymentData","Properties"]},"136":{"href":"/reference#defined-in-16","html":"\n

types.ts:52

\n","isPage":false,"text":"\ntypes.ts:52\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ApiPaymentData","Properties","chainId"]},"137":{"href":"/reference#masterwallet","html":"\n
\n

masterWallet: `0x${string}`

\n
\n

The address of the Externally Owned Account (EOA) from which\nthe Klaster Multichain Smart Account is derived.

\n","isPage":false,"text":"\n\nmasterWallet: `0x${string}`\n\nThe address of the Externally Owned Account (EOA) from which\nthe Klaster Multichain Smart Account is derived.\n","title":"masterWallet","titles":["klaster-sdk","Interfaces","ApiPaymentData","Properties"]},"138":{"href":"/reference#defined-in-17","html":"\n

types.ts:49

\n","isPage":false,"text":"\ntypes.ts:49\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ApiPaymentData","Properties","masterWallet"]},"139":{"href":"/reference#salt","html":"\n
\n

salt: string

\n
\n

A unique value used in conjunction with the masterWallet address\nto calculate the Klaster Multichain Smart Account address. This ensures unique account\naddresses for the same EOA.

\n","isPage":false,"text":"\n\nsalt: string\n\nA unique value used in conjunction with the masterWallet address\nto calculate the Klaster Multichain Smart Account address. This ensures unique account\naddresses for the same EOA.\n","title":"salt","titles":["klaster-sdk","Interfaces","ApiPaymentData","Properties"]},"140":{"href":"/reference#defined-in-18","html":"\n

types.ts:50

\n","isPage":false,"text":"\ntypes.ts:50\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ApiPaymentData","Properties","salt"]},"141":{"href":"/reference#token","html":"\n
\n

token: string

\n
\n

The address of the ERC20 token that will be used to pay for\nthe gas cost and transaction fees associated with the user operation.

\n","isPage":false,"text":"\n\ntoken: string\n\nThe address of the ERC20 token that will be used to pay for\nthe gas cost and transaction fees associated with the user operation.\n","title":"token","titles":["klaster-sdk","Interfaces","ApiPaymentData","Properties"]},"142":{"href":"/reference#defined-in-19","html":"\n

types.ts:51

\n
\n","isPage":false,"text":"\ntypes.ts:51\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ApiPaymentData","Properties","token"]},"143":{"href":"/reference#apiuserop","html":"\n

Represents the user operation format expected as input by the Klaster Node API.\nThis interface defines the structure for ERC-4337 compliant user operations\nspecifically tailored for Klaster Multichain Smart Accounts.

\n

ApiUserOp

\n","isPage":false,"text":"\nRepresents the user operation format expected as input by the Klaster Node API.\nThis interface defines the structure for ERC-4337 compliant user operations\nspecifically tailored for Klaster Multichain Smart Accounts.\nApiUserOp\n","title":"ApiUserOp","titles":["klaster-sdk","Interfaces"]},"144":{"href":"/reference#properties-2","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","ApiUserOp"]},"145":{"href":"/reference#calldata","html":"\n
\n

callData: string

\n
\n

The encoded function call data to be executed on the blockchain.\nThis represents the actual operation the user wants to perform.

\n","isPage":false,"text":"\n\ncallData: string\n\nThe encoded function call data to be executed on the blockchain.\nThis represents the actual operation the user wants to perform.\n","title":"callData","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties"]},"146":{"href":"/reference#defined-in-20","html":"\n

types.ts:25

\n","isPage":false,"text":"\ntypes.ts:25\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties","callData"]},"147":{"href":"/reference#callgaslimit","html":"\n
\n

callGasLimit: string

\n
\n

The maximum amount of gas that can be used for the execution\nof the callData on the target blockchain. This is part of the ERC-4337 specification for\naccount abstraction.

\n","isPage":false,"text":"\n\ncallGasLimit: string\n\nThe maximum amount of gas that can be used for the execution\nof the callData on the target blockchain. This is part of the ERC-4337 specification for\naccount abstraction.\n","title":"callGasLimit","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties"]},"148":{"href":"/reference#defined-in-21","html":"\n

types.ts:26

\n","isPage":false,"text":"\ntypes.ts:26\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties","callGasLimit"]},"149":{"href":"/reference#chainid-1","html":"\n
\n

chainId: number

\n
\n

The ID of the blockchain network where the UserOp is to be executed.\nThis determines which network the operation will be sent to.

\n","isPage":false,"text":"\n\nchainId: number\n\nThe ID of the blockchain network where the UserOp is to be executed.\nThis determines which network the operation will be sent to.\n","title":"chainId","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties"]},"150":{"href":"/reference#defined-in-22","html":"\n

types.ts:27

\n","isPage":false,"text":"\ntypes.ts:27\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties","chainId"]},"151":{"href":"/reference#masterwallet-1","html":"\n
\n

masterWallet: `0x${string}`

\n
\n

The address of the Externally Owned Account (EOA) from which\nthe Klaster Multichain Smart Account is derived.

\n","isPage":false,"text":"\n\nmasterWallet: `0x${string}`\n\nThe address of the Externally Owned Account (EOA) from which\nthe Klaster Multichain Smart Account is derived.\n","title":"masterWallet","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties"]},"152":{"href":"/reference#defined-in-23","html":"\n

types.ts:23

\n","isPage":false,"text":"\ntypes.ts:23\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties","masterWallet"]},"153":{"href":"/reference#salt-1","html":"\n
\n

salt: string

\n
\n

A unique value used in conjunction with the masterWallet address\nto calculate the Klaster Multichain Smart Account address. This ensures unique account\naddresses for the same EOA.

\n","isPage":false,"text":"\n\nsalt: string\n\nA unique value used in conjunction with the masterWallet address\nto calculate the Klaster Multichain Smart Account address. This ensures unique account\naddresses for the same EOA.\n","title":"salt","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties"]},"154":{"href":"/reference#defined-in-24","html":"\n

types.ts:24

\n
\n","isPage":false,"text":"\ntypes.ts:24\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties","salt"]},"155":{"href":"/reference#erc4337userop","html":"\n

Represents the full ERC-4337 UserOperation standard object format.\nThis interface defines the structure of a user operation as specified in the ERC-4337 standard\nfor account abstraction in Ethereum.

\n

ERC4337UserOp

\n","isPage":false,"text":"\nRepresents the full ERC-4337 UserOperation standard object format.\nThis interface defines the structure of a user operation as specified in the ERC-4337 standard\nfor account abstraction in Ethereum.\nERC4337UserOp\n","title":"ERC4337UserOp","titles":["klaster-sdk","Interfaces"]},"156":{"href":"/reference#properties-3","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","ERC4337UserOp"]},"157":{"href":"/reference#calldata-1","html":"\n
\n

callData: string

\n
\n

The data to be passed to the sender during the main execution call.

\n","isPage":false,"text":"\n\ncallData: string\n\nThe data to be passed to the sender during the main execution call.\n","title":"callData","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"158":{"href":"/reference#defined-in-25","html":"\n

types.ts:77

\n","isPage":false,"text":"\ntypes.ts:77\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","callData"]},"159":{"href":"/reference#callgaslimit-1","html":"\n
\n

callGasLimit: string

\n
\n

The gas limit for the main execution call.

\n","isPage":false,"text":"\n\ncallGasLimit: string\n\nThe gas limit for the main execution call.\n","title":"callGasLimit","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"160":{"href":"/reference#defined-in-26","html":"\n

types.ts:78

\n","isPage":false,"text":"\ntypes.ts:78\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","callGasLimit"]},"161":{"href":"/reference#initcode","html":"\n
\n

initCode: string

\n
\n

The initialization code for the account if it hasn't been deployed yet. Empty string if the account is already deployed.

\n","isPage":false,"text":"\n\ninitCode: string\n\nThe initialization code for the account if it hasn't been deployed yet. Empty string if the account is already deployed.\n","title":"initCode","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"162":{"href":"/reference#defined-in-27","html":"\n

types.ts:76

\n","isPage":false,"text":"\ntypes.ts:76\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","initCode"]},"163":{"href":"/reference#maxfeepergas","html":"\n
\n

maxFeePerGas: string

\n
\n

The maximum total fee per gas the sender is willing to pay (including the priority fee).

\n","isPage":false,"text":"\n\nmaxFeePerGas: string\n\nThe maximum total fee per gas the sender is willing to pay (including the priority fee).\n","title":"maxFeePerGas","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"164":{"href":"/reference#defined-in-28","html":"\n

types.ts:81

\n","isPage":false,"text":"\ntypes.ts:81\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","maxFeePerGas"]},"165":{"href":"/reference#maxpriorityfeepergas","html":"\n
\n

maxPriorityFeePerGas: string

\n
\n

The maximum priority fee per gas the sender is willing to pay.

\n","isPage":false,"text":"\n\nmaxPriorityFeePerGas: string\n\nThe maximum priority fee per gas the sender is willing to pay.\n","title":"maxPriorityFeePerGas","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"166":{"href":"/reference#defined-in-29","html":"\n

types.ts:82

\n","isPage":false,"text":"\ntypes.ts:82\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","maxPriorityFeePerGas"]},"167":{"href":"/reference#nonce","html":"\n
\n

nonce: string

\n
\n

A unique identifier to prevent replay attacks, typically managed by the account itself.

\n","isPage":false,"text":"\n\nnonce: string\n\nA unique identifier to prevent replay attacks, typically managed by the account itself.\n","title":"nonce","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"168":{"href":"/reference#defined-in-30","html":"\n

types.ts:75

\n","isPage":false,"text":"\ntypes.ts:75\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","nonce"]},"169":{"href":"/reference#paymasteranddata","html":"\n
\n

paymasterAndData: string

\n
\n

The address of the paymaster sponsoring the transaction, followed by extra data to send to the paymaster. Empty string if there's no paymaster.

\n","isPage":false,"text":"\n\npaymasterAndData: string\n\nThe address of the paymaster sponsoring the transaction, followed by extra data to send to the paymaster. Empty string if there's no paymaster.\n","title":"paymasterAndData","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"170":{"href":"/reference#defined-in-31","html":"\n

types.ts:83

\n","isPage":false,"text":"\ntypes.ts:83\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","paymasterAndData"]},"171":{"href":"/reference#preverificationgas","html":"\n
\n

preVerificationGas: string

\n
\n

The amount of gas to compensate the bundler for pre-verification execution and calldata.

\n","isPage":false,"text":"\n\npreVerificationGas: string\n\nThe amount of gas to compensate the bundler for pre-verification execution and calldata.\n","title":"preVerificationGas","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"172":{"href":"/reference#defined-in-32","html":"\n

types.ts:80

\n","isPage":false,"text":"\ntypes.ts:80\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","preVerificationGas"]},"173":{"href":"/reference#sender","html":"\n
\n

sender: `0x${string}`

\n
\n

The address of the smart contract account that will make the transaction.

\n","isPage":false,"text":"\n\nsender: `0x${string}`\n\nThe address of the smart contract account that will make the transaction.\n","title":"sender","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"174":{"href":"/reference#defined-in-33","html":"\n

types.ts:74

\n","isPage":false,"text":"\ntypes.ts:74\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","sender"]},"175":{"href":"/reference#signature","html":"\n
\n

signature: string

\n
\n

The signature over the entire UserOperation, to be validated during verification.

\n","isPage":false,"text":"\n\nsignature: string\n\nThe signature over the entire UserOperation, to be validated during verification.\n","title":"signature","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"176":{"href":"/reference#defined-in-34","html":"\n

types.ts:84

\n","isPage":false,"text":"\ntypes.ts:84\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","signature"]},"177":{"href":"/reference#verificationgaslimit","html":"\n
\n

verificationGasLimit: string

\n
\n

The gas limit for the verification step.

\n","isPage":false,"text":"\n\nverificationGasLimit: string\n\nThe gas limit for the verification step.\n","title":"verificationGasLimit","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"178":{"href":"/reference#defined-in-35","html":"\n

types.ts:79

\n
\n","isPage":false,"text":"\ntypes.ts:79\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","verificationGasLimit"]},"179":{"href":"/reference#executeresponse","html":"\n

Represents the response model returned by the /execute route of the Klaster Node API.\nThis interface encapsulates the result of initiating the execution of an interchain transaction.

\n

ExecuteResponse

\n","isPage":false,"text":"\nRepresents the response model returned by the /execute route of the Klaster Node API.\nThis interface encapsulates the result of initiating the execution of an interchain transaction.\nExecuteResponse\n","title":"ExecuteResponse","titles":["klaster-sdk","Interfaces"]},"180":{"href":"/reference#properties-4","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","ExecuteResponse"]},"181":{"href":"/reference#itxhash","html":"\n
\n

iTxHash: string

\n
\n

The hash of the Klaster Interchain Transaction (iTx) that has been\nsubmitted for execution. This hash serves as a unique identifier for the interchain transaction\nand can be used to track or reference the transaction's status and outcome across multiple chains.

\n","isPage":false,"text":"\n\niTxHash: string\n\nThe hash of the Klaster Interchain Transaction (iTx) that has been\nsubmitted for execution. This hash serves as a unique identifier for the interchain transaction\nand can be used to track or reference the transaction's status and outcome across multiple chains.\n","title":"iTxHash","titles":["klaster-sdk","Interfaces","ExecuteResponse","Properties"]},"182":{"href":"/reference#defined-in-36","html":"\n

types.ts:154

\n
\n","isPage":false,"text":"\ntypes.ts:154\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ExecuteResponse","Properties","iTxHash"]},"183":{"href":"/reference#executedaction","html":"\n

Represents the model returned by the Klaster Node API after an Action has been executed.\nThis interface provides detailed information about the execution status and parameters\nof a user operation processed by Klaster.

\n

ExecutedAction

\n","isPage":false,"text":"\nRepresents the model returned by the Klaster Node API after an Action has been executed.\nThis interface provides detailed information about the execution status and parameters\nof a user operation processed by Klaster.\nExecutedAction\n","title":"ExecutedAction","titles":["klaster-sdk","Interfaces"]},"184":{"href":"/reference#properties-5","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","ExecutedAction"]},"185":{"href":"/reference#chainid-2","html":"\n
\n

chainId: string

\n
\n

The identifier of the blockchain network on which the userOp is executed.

\n","isPage":false,"text":"\n\nchainId: string\n\nThe identifier of the blockchain network on which the userOp is executed.\n","title":"chainId","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties"]},"186":{"href":"/reference#defined-in-37","html":"\n

types.ts:112

\n","isPage":false,"text":"\ntypes.ts:112\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties","chainId"]},"187":{"href":"/reference#executiondata","html":"\n
\n

executionData: string

\n
\n

The callData of the executed action, representing the actual operation performed.

\n","isPage":false,"text":"\n\nexecutionData: string\n\nThe callData of the executed action, representing the actual operation performed.\n","title":"executionData","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties"]},"188":{"href":"/reference#defined-in-38","html":"\n

types.ts:115

\n","isPage":false,"text":"\ntypes.ts:115\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties","executionData"]},"189":{"href":"/reference#executionstatus","html":"\n
\n

executionStatus: "SUCCESS" | "PENDING" | "FAILED"

\n
\n

The current status of the UserOp execution:

\n\n","isPage":false,"text":"\n\nexecutionStatus: "SUCCESS" | "PENDING" | "FAILED"\n\nThe current status of the UserOp execution:\n\n"SUCCESS": The operation was successfully executed.\n"FAILED": The operation failed during execution.\n"PENDING": The Klaster node is waiting for conditions to be met before execution.\nThis status is part of the Klaster spec and is particularly relevant for multichain actions\nwhere execution conditions on the destination chain may depend on prior token bridging.\n\n","title":"executionStatus","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties"]},"190":{"href":"/reference#defined-in-39","html":"\n

types.ts:114

\n","isPage":false,"text":"\ntypes.ts:114\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties","executionStatus"]},"191":{"href":"/reference#lowerboundtimestap","html":"\n
\n

lowerBoundTimestap: string

\n
\n

The earliest timestamp at which the userOp will be executed on the target blockchain.

\n","isPage":false,"text":"\n\nlowerBoundTimestap: string\n\nThe earliest timestamp at which the userOp will be executed on the target blockchain.\n","title":"lowerBoundTimestap","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties"]},"192":{"href":"/reference#defined-in-40","html":"\n

types.ts:110

\n","isPage":false,"text":"\ntypes.ts:110\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties","lowerBoundTimestap"]},"193":{"href":"/reference#maxgaslimit","html":"\n
\n

maxGasLimit: string

\n
\n

The maximum gas limit allowed for the execution of this userOp.

\n","isPage":false,"text":"\n\nmaxGasLimit: string\n\nThe maximum gas limit allowed for the execution of this userOp.\n","title":"maxGasLimit","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties"]},"194":{"href":"/reference#defined-in-41","html":"\n

types.ts:113

\n","isPage":false,"text":"\ntypes.ts:113\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties","maxGasLimit"]},"195":{"href":"/reference#upperboundtimestamp","html":"\n
\n

upperBoundTimestamp: string

\n
\n

The latest timestamp by which the userOp will be executed on the target blockchain.

\n","isPage":false,"text":"\n\nupperBoundTimestamp: string\n\nThe latest timestamp by which the userOp will be executed on the target blockchain.\n","title":"upperBoundTimestamp","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties"]},"196":{"href":"/reference#defined-in-42","html":"\n

types.ts:111

\n","isPage":false,"text":"\ntypes.ts:111\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties","upperBoundTimestamp"]},"197":{"href":"/reference#userop","html":"\n
\n

userOp: ERC4337UserOp

\n
\n

The full ERC-4337 UserOperation object that was executed.

\n","isPage":false,"text":"\n\nuserOp: ERC4337UserOp\n\nThe full ERC-4337 UserOperation object that was executed.\n","title":"userOp","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties"]},"198":{"href":"/reference#defined-in-43","html":"\n

types.ts:108

\n","isPage":false,"text":"\ntypes.ts:108\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties","userOp"]},"199":{"href":"/reference#userophash","html":"\n
\n

userOpHash: string

\n
\n

The hash of the userOp, serving as a unique identifier for the operation.

\n","isPage":false,"text":"\n\nuserOpHash: string\n\nThe hash of the userOp, serving as a unique identifier for the operation.\n","title":"userOpHash","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties"]},"200":{"href":"/reference#defined-in-44","html":"\n

types.ts:109

\n
\n","isPage":false,"text":"\ntypes.ts:109\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties","userOpHash"]},"201":{"href":"/reference#itxuserop","html":"\n

Represents the minimal UserOperation required for a fully described Klaster Interchain Transaction model.\nThis interface defines the structure for actions that can be performed on a single chain within\na Klaster Interchain Transaction.

\n

ITxUserOp

\n","isPage":false,"text":"\nRepresents the minimal UserOperation required for a fully described Klaster Interchain Transaction model.\nThis interface defines the structure for actions that can be performed on a single chain within\na Klaster Interchain Transaction.\nITxUserOp\n","title":"ITxUserOp","titles":["klaster-sdk","Interfaces"]},"202":{"href":"/reference#properties-6","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","ITxUserOp"]},"203":{"href":"/reference#chainid-3","html":"\n
\n

chainId: number

\n
\n

The identifier of the blockchain network on which the transaction(s) will be executed.

\n","isPage":false,"text":"\n\nchainId: number\n\nThe identifier of the blockchain network on which the transaction(s) will be executed.\n","title":"chainId","titles":["klaster-sdk","Interfaces","ITxUserOp","Properties"]},"204":{"href":"/reference#defined-in-45","html":"\n

types.ts:212

\n","isPage":false,"text":"\ntypes.ts:212\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ITxUserOp","Properties","chainId"]},"205":{"href":"/reference#lowerboundtime","html":"\n
\n

optional lowerBoundTime: number

\n
\n

Optional. The earliest timestamp at which the transaction(s) can be executed.

\n","isPage":false,"text":"\n\noptional lowerBoundTime: number\n\nOptional. The earliest timestamp at which the transaction(s) can be executed.\n","title":"lowerBoundTime?","titles":["klaster-sdk","Interfaces","ITxUserOp","Properties"]},"206":{"href":"/reference#defined-in-46","html":"\n

types.ts:214

\n","isPage":false,"text":"\ntypes.ts:214\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ITxUserOp","Properties","lowerBoundTime?"]},"207":{"href":"/reference#txs","html":"\n
\n

txs: RawTransaction[]

\n
\n

An array of raw transactions to be executed on the specified chain.

\n\n","isPage":false,"text":"\n\ntxs: RawTransaction[]\n\nAn array of raw transactions to be executed on the specified chain.\n\nIf this array contains a single transaction, the 'execute' function will be called on the smart contract account.\nIf this array contains multiple transactions, the 'batchExecute' function will be called on the smart contract account.\n\n","title":"txs","titles":["klaster-sdk","Interfaces","ITxUserOp","Properties"]},"208":{"href":"/reference#defined-in-47","html":"\n

types.ts:211

\n","isPage":false,"text":"\ntypes.ts:211\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ITxUserOp","Properties","txs"]},"209":{"href":"/reference#upperboundtime","html":"\n
\n

optional upperBoundTime: number

\n
\n

Optional. The latest timestamp by which the transaction(s) should be executed.

\n","isPage":false,"text":"\n\noptional upperBoundTime: number\n\nOptional. The latest timestamp by which the transaction(s) should be executed.\n","title":"upperBoundTime?","titles":["klaster-sdk","Interfaces","ITxUserOp","Properties"]},"210":{"href":"/reference#defined-in-48","html":"\n

types.ts:213

\n
\n","isPage":false,"text":"\ntypes.ts:213\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ITxUserOp","Properties","upperBoundTime?"]},"211":{"href":"/reference#interchaintransaction","html":"\n","isPage":false,"text":"\n","title":"InterchainTransaction","titles":["klaster-sdk","Interfaces"]},"212":{"href":"/reference#properties-7","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","InterchainTransaction"]},"213":{"href":"/reference#actions","html":"\n
\n

actions: ITxUserOp[]

\n
\n","isPage":false,"text":"\n\nactions: ITxUserOp[]\n\n","title":"actions","titles":["klaster-sdk","Interfaces","InterchainTransaction","Properties"]},"214":{"href":"/reference#defined-in-49","html":"\n

types.ts:193

\n","isPage":false,"text":"\ntypes.ts:193\n","title":"Defined in","titles":["klaster-sdk","Interfaces","InterchainTransaction","Properties","actions"]},"215":{"href":"/reference#paymentinfo","html":"\n
\n

paymentInfo: ApiPaymentData

\n
\n","isPage":false,"text":"\n\npaymentInfo: ApiPaymentData\n\n","title":"paymentInfo","titles":["klaster-sdk","Interfaces","InterchainTransaction","Properties"]},"216":{"href":"/reference#defined-in-50","html":"\n

types.ts:194

\n
\n","isPage":false,"text":"\ntypes.ts:194\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","InterchainTransaction","Properties","paymentInfo"]},"217":{"href":"/reference#itxstatusresponse","html":"\n

Represents the response model returned by the /explorer route of the Klaster Node API.\nThis interface provides detailed information about the status and execution details of an interchain transaction.

\n

ItxStatusResponse

\n","isPage":false,"text":"\nRepresents the response model returned by the /explorer route of the Klaster Node API.\nThis interface provides detailed information about the status and execution details of an interchain transaction.\nItxStatusResponse\n","title":"ItxStatusResponse","titles":["klaster-sdk","Interfaces"]},"218":{"href":"/reference#properties-8","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","ItxStatusResponse"]},"219":{"href":"/reference#commitment","html":"\n
\n

commitment: string

\n
\n

The cryptographic commitment generated by the Klaster node, guaranteeing\nthe execution of the interchain transaction.

\n","isPage":false,"text":"\n\ncommitment: string\n\nThe cryptographic commitment generated by the Klaster node, guaranteeing\nthe execution of the interchain transaction.\n","title":"commitment","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties"]},"220":{"href":"/reference#defined-in-51","html":"\n

types.ts:183

\n","isPage":false,"text":"\ntypes.ts:183\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties","commitment"]},"221":{"href":"/reference#itxhash-1","html":"\n
\n

itxHash: string

\n
\n

The hash of the Klaster Interchain Transaction (iTx). Serves as a unique identifier\nfor the interchain transaction.

\n","isPage":false,"text":"\n\nitxHash: string\n\nThe hash of the Klaster Interchain Transaction (iTx). Serves as a unique identifier\nfor the interchain transaction.\n","title":"itxHash","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties"]},"222":{"href":"/reference#defined-in-52","html":"\n

types.ts:181

\n","isPage":false,"text":"\ntypes.ts:181\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties","itxHash"]},"223":{"href":"/reference#node","html":"\n
\n

node: `0x${string}`

\n
\n

The address of the Klaster node that is responsible for executing the interchain transaction.

\n","isPage":false,"text":"\n\nnode: `0x${string}`\n\nThe address of the Klaster node that is responsible for executing the interchain transaction.\n","title":"node","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties"]},"224":{"href":"/reference#defined-in-53","html":"\n

types.ts:182

\n","isPage":false,"text":"\ntypes.ts:182\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties","node"]},"225":{"href":"/reference#paymentinfo-1","html":"\n
\n

paymentInfo: ApiPaymentData & object

\n
\n

Contains information about the payment for the transaction, including the token\nused and the actual amount quoted for the execution.

\n","isPage":false,"text":"\n\npaymentInfo: ApiPaymentData & object\n\nContains information about the payment for the transaction, including the token\nused and the actual amount quoted for the execution.\n","title":"paymentInfo","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties"]},"226":{"href":"/reference#type-declaration","html":"\n","isPage":false,"text":"\n","title":"Type declaration","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties","paymentInfo"]},"227":{"href":"/reference#tokenamount","html":"\n
\n

tokenAmount: string

\n
\n","isPage":false,"text":"\n\ntokenAmount: string\n\n","title":"tokenAmount","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties","paymentInfo"]},"228":{"href":"/reference#tokenvalue","html":"\n
\n

tokenValue: string

\n
\n","isPage":false,"text":"\n\ntokenValue: string\n\n","title":"tokenValue","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties","paymentInfo"]},"229":{"href":"/reference#defined-in-54","html":"\n

types.ts:184

\n","isPage":false,"text":"\ntypes.ts:184\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties","paymentInfo"]},"230":{"href":"/reference#userops","html":"\n
\n

userOps: ExecutedAction[]

\n
\n

An array of ExecutedAction objects, each representing the status and\ndetails of a user operation executed as part of this interchain transaction across different chains.

\n","isPage":false,"text":"\n\nuserOps: ExecutedAction[]\n\nAn array of ExecutedAction objects, each representing the status and\ndetails of a user operation executed as part of this interchain transaction across different chains.\n","title":"userOps","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties"]},"231":{"href":"/reference#defined-in-55","html":"\n

types.ts:188

\n
\n","isPage":false,"text":"\ntypes.ts:188\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties","userOps"]},"232":{"href":"/reference#multichainaccount","html":"\n

Represents a Klaster Multichain Smart Contract account model.\nThis interface defines the essential properties of a smart contract account\nthat can operate across multiple blockchain networks.

\n

MultichainAccount

\n","isPage":false,"text":"\nRepresents a Klaster Multichain Smart Contract account model.\nThis interface defines the essential properties of a smart contract account\nthat can operate across multiple blockchain networks.\nMultichainAccount\n","title":"MultichainAccount","titles":["klaster-sdk","Interfaces"]},"233":{"href":"/reference#properties-9","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","MultichainAccount"]},"234":{"href":"/reference#address","html":"\n
\n

address: `0x${string}`

\n
\n

The unique address of the multichain smart contract account.\nThis address is (mostly) consistent across all supported blockchain networks, allowing\nfor unified identity and seamless cross-chain operations. Some exceptions to the generated\naddress being consistent are blockchains in the zkSync ecosystem & any other ecosystem where\nthe CREATE2 opcode doesn't behave the same way as on Ethereum mainnet.

\n","isPage":false,"text":"\n\naddress: `0x${string}`\n\nThe unique address of the multichain smart contract account.\nThis address is (mostly) consistent across all supported blockchain networks, allowing\nfor unified identity and seamless cross-chain operations. Some exceptions to the generated\naddress being consistent are blockchains in the zkSync ecosystem & any other ecosystem where\nthe CREATE2 opcode doesn't behave the same way as on Ethereum mainnet.\n","title":"address","titles":["klaster-sdk","Interfaces","MultichainAccount","Properties"]},"235":{"href":"/reference#defined-in-56","html":"\n

types.ts:258

\n","isPage":false,"text":"\ntypes.ts:258\n","title":"Defined in","titles":["klaster-sdk","Interfaces","MultichainAccount","Properties","address"]},"236":{"href":"/reference#salt-2","html":"\n
\n

salt: string

\n
\n

A unique value used in the account creation process.\nThe salt, combined with other parameters (such as the owner's address),\nensures that the account address is unique and deterministically generated\nacross all supported chains.

\n","isPage":false,"text":"\n\nsalt: string\n\nA unique value used in the account creation process.\nThe salt, combined with other parameters (such as the owner's address),\nensures that the account address is unique and deterministically generated\nacross all supported chains.\n","title":"salt","titles":["klaster-sdk","Interfaces","MultichainAccount","Properties"]},"237":{"href":"/reference#defined-in-57","html":"\n

types.ts:259

\n
\n","isPage":false,"text":"\ntypes.ts:259\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","MultichainAccount","Properties","salt"]},"238":{"href":"/reference#quoteresponse","html":"\n

Represents the model returned by the Klaster Node API when a user requests a quote for an interchain transaction.\nThis interface provides detailed information about the quote, including the transaction hash,\nnode commitment, and the user operations to be executed across multiple chains.

\n

QuoteResponse

\n","isPage":false,"text":"\nRepresents the model returned by the Klaster Node API when a user requests a quote for an interchain transaction.\nThis interface provides detailed information about the quote, including the transaction hash,\nnode commitment, and the user operations to be executed across multiple chains.\nQuoteResponse\n","title":"QuoteResponse","titles":["klaster-sdk","Interfaces"]},"239":{"href":"/reference#properties-10","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","QuoteResponse"]},"240":{"href":"/reference#commitment-1","html":"\n
\n

commitment: string

\n
\n

The cryptographic commitment generated by the Klaster node.\nThis commitment guarantees the execution of the quoted interchain transaction.

\n","isPage":false,"text":"\n\ncommitment: string\n\nThe cryptographic commitment generated by the Klaster node.\nThis commitment guarantees the execution of the quoted interchain transaction.\n","title":"commitment","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties"]},"241":{"href":"/reference#defined-in-58","html":"\n

types.ts:138

\n","isPage":false,"text":"\ntypes.ts:138\n","title":"Defined in","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties","commitment"]},"242":{"href":"/reference#itxhash-2","html":"\n
\n

itxHash: `0x${string}`

\n
\n

The hash of the Klaster Interchain Transaction. This serves\nas a unique identifier for the entire interchain operation.

\n","isPage":false,"text":"\n\nitxHash: `0x${string}`\n\nThe hash of the Klaster Interchain Transaction. This serves\nas a unique identifier for the entire interchain operation.\n","title":"itxHash","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties"]},"243":{"href":"/reference#defined-in-59","html":"\n

types.ts:137

\n","isPage":false,"text":"\ntypes.ts:137\n","title":"Defined in","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties","itxHash"]},"244":{"href":"/reference#node-1","html":"\n
\n

node: `0x${string}`

\n
\n

The address of the Klaster node that has returned the quote and\ncommitted itself to executing the interchain transaction.

\n","isPage":false,"text":"\n\nnode: `0x${string}`\n\nThe address of the Klaster node that has returned the quote and\ncommitted itself to executing the interchain transaction.\n","title":"node","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties"]},"245":{"href":"/reference#defined-in-60","html":"\n

types.ts:139

\n","isPage":false,"text":"\ntypes.ts:139\n","title":"Defined in","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties","node"]},"246":{"href":"/reference#paymentinfo-2","html":"\n
\n

paymentInfo: ApiPaymentData

\n
\n

Contains information about the payment for the\ntransaction, including the token to be used and the chain on which the payment will occur.

\n","isPage":false,"text":"\n\npaymentInfo: ApiPaymentData\n\nContains information about the payment for the\ntransaction, including the token to be used and the chain on which the payment will occur.\n","title":"paymentInfo","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties"]},"247":{"href":"/reference#defined-in-61","html":"\n

types.ts:140

\n","isPage":false,"text":"\ntypes.ts:140\n","title":"Defined in","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties","paymentInfo"]},"248":{"href":"/reference#userops-1","html":"\n
\n

userOps: ERC4337UserOp[]

\n
\n

An array of all UserOperations across all chains that\nthe node has committed to executing as part of this interchain transaction. Each UserOp\nrepresents a specific action on a particular blockchain within the interchain transaction.

\n","isPage":false,"text":"\n\nuserOps: ERC4337UserOp[]\n\nAn array of all UserOperations across all chains that\nthe node has committed to executing as part of this interchain transaction. Each UserOp\nrepresents a specific action on a particular blockchain within the interchain transaction.\n","title":"userOps","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties"]},"249":{"href":"/reference#defined-in-62","html":"\n

types.ts:141

\n
\n","isPage":false,"text":"\ntypes.ts:141\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties","userOps"]},"250":{"href":"/reference#rawtransaction","html":"\n

Represents a raw transaction as expected by the execute and batchExecute functions\nof smart contract wallets compliant with the ERC-4337 standard.\nThis interface defines the structure for a single transaction to be executed\nas part of a user operation in account abstraction.

\n

RawTransaction

\n","isPage":false,"text":"\nRepresents a raw transaction as expected by the execute and batchExecute functions\nof smart contract wallets compliant with the ERC-4337 standard.\nThis interface defines the structure for a single transaction to be executed\nas part of a user operation in account abstraction.\nRawTransaction\n","title":"RawTransaction","titles":["klaster-sdk","Interfaces"]},"251":{"href":"/reference#properties-11","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","RawTransaction"]},"252":{"href":"/reference#data","html":"\n
\n

data: string

\n
\n

The input data of the transaction, typically the encoded function\ncall for contract interactions. For simple value transfers, this can be an empty string.

\n","isPage":false,"text":"\n\ndata: string\n\nThe input data of the transaction, typically the encoded function\ncall for contract interactions. For simple value transfers, this can be an empty string.\n","title":"data","titles":["klaster-sdk","Interfaces","RawTransaction","Properties"]},"253":{"href":"/reference#defined-in-63","html":"\n

types.ts:236

\n","isPage":false,"text":"\ntypes.ts:236\n","title":"Defined in","titles":["klaster-sdk","Interfaces","RawTransaction","Properties","data"]},"254":{"href":"/reference#gaslimit","html":"\n
\n

gasLimit: bigint

\n
\n

The maximum amount of gas that can be used for executing\nthis transaction, represented as a bigint. This helps prevent unexpectedly high gas costs.

\n","isPage":false,"text":"\n\ngasLimit: bigint\n\nThe maximum amount of gas that can be used for executing\nthis transaction, represented as a bigint. This helps prevent unexpectedly high gas costs.\n","title":"gasLimit","titles":["klaster-sdk","Interfaces","RawTransaction","Properties"]},"255":{"href":"/reference#defined-in-64","html":"\n

types.ts:237

\n","isPage":false,"text":"\ntypes.ts:237\n","title":"Defined in","titles":["klaster-sdk","Interfaces","RawTransaction","Properties","gasLimit"]},"256":{"href":"/reference#to","html":"\n
\n

to: `0x${string}`

\n
\n

The recipient address of the transaction. This can be a contract\naddress for contract interactions or an EOA for simple transfers.

\n","isPage":false,"text":"\n\nto: `0x${string}`\n\nThe recipient address of the transaction. This can be a contract\naddress for contract interactions or an EOA for simple transfers.\n","title":"to","titles":["klaster-sdk","Interfaces","RawTransaction","Properties"]},"257":{"href":"/reference#defined-in-65","html":"\n

types.ts:234

\n","isPage":false,"text":"\ntypes.ts:234\n","title":"Defined in","titles":["klaster-sdk","Interfaces","RawTransaction","Properties","to"]},"258":{"href":"/reference#value","html":"\n
\n

value: bigint

\n
\n

The amount of native currency (e.g., ETH) to be sent with the\ntransaction, represented as a bigint. Use 0n for transactions that don't transfer value.

\n","isPage":false,"text":"\n\nvalue: bigint\n\nThe amount of native currency (e.g., ETH) to be sent with the\ntransaction, represented as a bigint. Use 0n for transactions that don't transfer value.\n","title":"value","titles":["klaster-sdk","Interfaces","RawTransaction","Properties"]},"259":{"href":"/reference#defined-in-66","html":"\n

types.ts:235

\n
\n","isPage":false,"text":"\ntypes.ts:235\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","RawTransaction","Properties","value"]},"260":{"href":"/reference#supportedpaymenttokeninfo","html":"\n","isPage":false,"text":"\n","title":"SupportedPaymentTokenInfo","titles":["klaster-sdk","Interfaces"]},"261":{"href":"/reference#properties-12","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","SupportedPaymentTokenInfo"]},"262":{"href":"/reference#node-2","html":"\n
\n

node: `0x${string}`

\n
\n","isPage":false,"text":"\n\nnode: `0x${string}`\n\n","title":"node","titles":["klaster-sdk","Interfaces","SupportedPaymentTokenInfo","Properties"]},"263":{"href":"/reference#defined-in-67","html":"\n

types.ts:267

\n","isPage":false,"text":"\ntypes.ts:267\n","title":"Defined in","titles":["klaster-sdk","Interfaces","SupportedPaymentTokenInfo","Properties","node"]},"264":{"href":"/reference#supported_chains","html":"\n
\n

supported_chains: object[]

\n
\n","isPage":false,"text":"\n\nsupported_chains: object[]\n\n","title":"supported_chains","titles":["klaster-sdk","Interfaces","SupportedPaymentTokenInfo","Properties"]},"265":{"href":"/reference#defined-in-68","html":"\n

types.ts:268

\n","isPage":false,"text":"\ntypes.ts:268\n","title":"Defined in","titles":["klaster-sdk","Interfaces","SupportedPaymentTokenInfo","Properties","supported_chains"]},"266":{"href":"/reference#supported_gas_tokens","html":"\n
\n

supported_gas_tokens: object[]

\n
\n","isPage":false,"text":"\n\nsupported_gas_tokens: object[]\n\n","title":"supported_gas_tokens","titles":["klaster-sdk","Interfaces","SupportedPaymentTokenInfo","Properties"]},"267":{"href":"/reference#defined-in-69","html":"\n

types.ts:272

\n","isPage":false,"text":"\ntypes.ts:272\n","title":"Defined in","titles":["klaster-sdk","Interfaces","SupportedPaymentTokenInfo","Properties","supported_gas_tokens"]},"268":{"href":"/reference#version","html":"\n
\n

version: string

\n
\n","isPage":false,"text":"\n\nversion: string\n\n","title":"version","titles":["klaster-sdk","Interfaces","SupportedPaymentTokenInfo","Properties"]},"269":{"href":"/reference#defined-in-70","html":"\n

types.ts:266

\n","isPage":false,"text":"\ntypes.ts:266\n","title":"Defined in","titles":["klaster-sdk","Interfaces","SupportedPaymentTokenInfo","Properties","version"]},"270":{"href":"/reference#type-aliases","html":"\n","isPage":false,"text":"\n","title":"Type Aliases","titles":["klaster-sdk"]},"271":{"href":"/reference#config","html":"\n
\n

Config: object

\n
\n

Configuration options for initializing the Klaster SDK.

\n","isPage":false,"text":"\n\nConfig: object\n\nConfiguration options for initializing the Klaster SDK.\n","title":"Config","titles":["klaster-sdk","Type Aliases"]},"272":{"href":"/reference#type-declaration-1","html":"\n","isPage":false,"text":"\n","title":"Type declaration","titles":["klaster-sdk","Type Aliases","Config"]},"273":{"href":"/reference#masteraddress-1","html":"\n
\n

masterAddress: Address

\n
\n","isPage":false,"text":"\n\nmasterAddress: Address\n\n","title":"masterAddress","titles":["klaster-sdk","Type Aliases","Config","Type declaration"]},"274":{"href":"/reference#nodeurl","html":"\n
\n

nodeUrl: string

\n
\n","isPage":false,"text":"\n\nnodeUrl: string\n\n","title":"nodeUrl","titles":["klaster-sdk","Type Aliases","Config","Type declaration"]},"275":{"href":"/reference#defined-in-71","html":"\n

index.ts:34

\n
\n","isPage":false,"text":"\nindex.ts:34\n\n","title":"Defined in","titles":["klaster-sdk","Type Aliases","Config"]},"276":{"href":"/reference#paymenttokensymbol","html":"\n
\n

PaymentTokenSymbol: "ETH" | "WETH" | "LINK" | "USDC" | "wstETH" | "USDT" | "MATIC" | "WMATIC" | "stMATIC" | "AVAX" | "WAVAX" | "BNB" | "WBNB" | "axlUSDC" | "crUSDC" | "BSC-USD"

\n
\n

Represents the symbol of a payment token supported by the system.\nThese symbols correspond to various tokens\nthat can be used for payments across different blockchain networks.

\n","isPage":false,"text":"\n\nPaymentTokenSymbol: "ETH" | "WETH" | "LINK" | "USDC" | "wstETH" | "USDT" | "MATIC" | "WMATIC" | "stMATIC" | "AVAX" | "WAVAX" | "BNB" | "WBNB" | "axlUSDC" | "crUSDC" | "BSC-USD"\n\nRepresents the symbol of a payment token supported by the system.\nThese symbols correspond to various tokens\nthat can be used for payments across different blockchain networks.\n","title":"PaymentTokenSymbol","titles":["klaster-sdk","Type Aliases"]},"277":{"href":"/reference#defined-in-72","html":"\n

utils/token-resolver.service.ts:88

\n","isPage":false,"text":"\nutils/token-resolver.service.ts:88\n","title":"Defined in","titles":["klaster-sdk","Type Aliases","PaymentTokenSymbol"]},"278":{"href":"/reference#functions","html":"\n","isPage":false,"text":"\n","title":"Functions","titles":["klaster-sdk"]},"279":{"href":"/reference#buildtokenstrategy","html":"\n
\n

buildTokenStrategy(__namedParameters): Promise<TokenStrategy>

\n
\n

Builds a strategy for using tokens across multiple chains to satisfy a given amount.\nEnsures all tokens have the same number of decimals.

\n","isPage":false,"text":"\n\nbuildTokenStrategy(__namedParameters): Promise<TokenStrategy>\n\nBuilds a strategy for using tokens across multiple chains to satisfy a given amount.\nEnsures all tokens have the same number of decimals.\n","title":"buildTokenStrategy()","titles":["klaster-sdk","Functions"]},"280":{"href":"/reference#parameters-12","html":"\n

__namedParameters: BuildTokenStrategyOptions

\n","isPage":false,"text":"\n• __namedParameters: BuildTokenStrategyOptions\n","title":"Parameters","titles":["klaster-sdk","Functions","buildTokenStrategy()"]},"281":{"href":"/reference#returns-16","html":"\n

Promise<TokenStrategy>

\n

A promise that resolves to either:

\n\n","isPage":false,"text":"\nPromise<TokenStrategy>\nA promise that resolves to either:\n\nAn array of StrategyItem objects, each containing a chainId and an amount to use from that chain.\nnull if the total balance across all chains is insufficient to satisfy the requested amount.\n\n","title":"Returns","titles":["klaster-sdk","Functions","buildTokenStrategy()"]},"282":{"href":"/reference#throws-8","html":"\n

Throws an error if:

\n\n","isPage":false,"text":"\nThrows an error if:\n\nThere's an issue fetching balances or decimals\nThe token addresses are invalid\nTokens across different chains have different numbers of decimals\n\n","title":"Throws","titles":["klaster-sdk","Functions","buildTokenStrategy()"]},"283":{"href":"/reference#example-13","html":"\n
const tokenMapping = {\n  10: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85',  // USDC on Optimism\n  8453: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' // USDC on Base\n};\n \nconst chainConfigs = [\n  { chainId: 10, rpcUrl: 'https://mainnet.optimism.io' },\n  { chainId: 8453, rpcUrl: 'https://mainnet.base.org' }\n];\n \nconst strategy = await buildTokenStrategy(tokenMapping, chainConfigs, BigInt("25000"), '0x...', "ascending");\nif (strategy) {\n  console.log('Strategy found:', strategy);\n  // Possible output: [{ chainId: 8453, amount: BigInt("4000") }, { chainId: 10, amount: BigInt("21000") }]\n} else {\n  console.log('Not enough tokens available across all chains');\n}
\n","isPage":false,"text":"\nconst tokenMapping = {\n 10: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85', // USDC on Optimism\n 8453: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' // USDC on Base\n};\n \nconst chainConfigs = [\n { chainId: 10, rpcUrl: 'https://mainnet.optimism.io' },\n { chainId: 8453, rpcUrl: 'https://mainnet.base.org' }\n];\n \nconst strategy = await buildTokenStrategy(tokenMapping, chainConfigs, BigInt("25000"), '0x...', "ascending");\nif (strategy) {\n console.log('Strategy found:', strategy);\n // Possible output: [{ chainId: 8453, amount: BigInt("4000") }, { chainId: 10, amount: BigInt("21000") }]\n} else {\n console.log('Not enough tokens available across all chains');\n}\n","title":"Example","titles":["klaster-sdk","Functions","buildTokenStrategy()"]},"284":{"href":"/reference#defined-in-73","html":"\n

utils/unified-balance.service.ts:254

\n
\n","isPage":false,"text":"\nutils/unified-balance.service.ts:254\n\n","title":"Defined in","titles":["klaster-sdk","Functions","buildTokenStrategy()"]},"285":{"href":"/reference#buildtransfererc20fromeoatx","html":"\n
\n

buildTransferERC20FromEoaTx(params): RawTransaction

\n
\n

Builds a transaction to transfer ERC20 tokens from an Externally Owned Account (EOA)\nto another account, typically a smart contract account.

\n

This function constructs a RawTransaction object that, when executed, will transfer\nthe specified amount of ERC20 tokens from the sending EOA to the recipient address.\nIt's commonly used to fund smart contract accounts with tokens.

\n","isPage":false,"text":"\n\nbuildTransferERC20FromEoaTx(params): RawTransaction\n\nBuilds a transaction to transfer ERC20 tokens from an Externally Owned Account (EOA)\nto another account, typically a smart contract account.\nThis function constructs a RawTransaction object that, when executed, will transfer\nthe specified amount of ERC20 tokens from the sending EOA to the recipient address.\nIt's commonly used to fund smart contract accounts with tokens.\n","title":"buildTransferERC20FromEoaTx()","titles":["klaster-sdk","Functions"]},"286":{"href":"/reference#parameters-13","html":"\n

params

\n

The parameters for building the transaction.

\n

params.amount: bigint

\n

The amount of tokens to transfer, in the token's smallest unit (e.g., wei for ETH-like tokens).

\n

params.chainId: number

\n

The ID of the blockchain network where the transaction will be executed.

\n

params.recipient: `0x${string}`

\n

The address of the account receiving the tokens.

\n

params.token: `0x${string}`

\n

The address of the ERC20 token contract.

\n","isPage":false,"text":"\n• params\nThe parameters for building the transaction.\n• params.amount: bigint\nThe amount of tokens to transfer, in the token's smallest unit (e.g., wei for ETH-like tokens).\n• params.chainId: number\nThe ID of the blockchain network where the transaction will be executed.\n• params.recipient: `0x${string}`\nThe address of the account receiving the tokens.\n• params.token: `0x${string}`\nThe address of the ERC20 token contract.\n","title":"Parameters","titles":["klaster-sdk","Functions","buildTransferERC20FromEoaTx()"]},"287":{"href":"/reference#returns-17","html":"\n

RawTransaction

\n

A RawTransaction object ready to be signed and broadcasted.\nThe object includes:

\n\n","isPage":false,"text":"\nRawTransaction\nA RawTransaction object ready to be signed and broadcasted.\nThe object includes:\n\nto: The address of the ERC20 token contract.\nvalue: Always 0n for ERC20 transfers.\ndata: The encoded function call data for the ERC20 'transfer' function.\ngasLimit: A predefined gas limit set to 55000 (adjust if necessary for different tokens or networks).\n\n","title":"Returns","titles":["klaster-sdk","Functions","buildTransferERC20FromEoaTx()"]},"288":{"href":"/reference#example-14","html":"\n
const txParams = {\n  recipient: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e',\n  amount: BigInt(1000000), // 1 USDC if USDC has 6 decimals\n  chainId: 1,\n  token: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48' // USDC on Ethereum mainnet\n};\nconst rawTx = buildTransferERC20FromEoaTx(txParams);\n// rawTx can now be signed and sent to the network
\n","isPage":false,"text":"\nconst txParams = {\n recipient: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e',\n amount: BigInt(1000000), // 1 USDC if USDC has 6 decimals\n chainId: 1,\n token: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48' // USDC on Ethereum mainnet\n};\nconst rawTx = buildTransferERC20FromEoaTx(txParams);\n// rawTx can now be signed and sent to the network\n","title":"Example","titles":["klaster-sdk","Functions","buildTransferERC20FromEoaTx()"]},"289":{"href":"/reference#defined-in-74","html":"\n

utils/utils.service.ts:127

\n
\n","isPage":false,"text":"\nutils/utils.service.ts:127\n\n","title":"Defined in","titles":["klaster-sdk","Functions","buildTransferERC20FromEoaTx()"]},"290":{"href":"/reference#createtokenmapping","html":"\n
\n

createTokenMapping(tokens): TokenMapping

\n
\n

Creates a TokenMapping object from an array of TokenInfo objects.

\n

This function generates a mapping of chain IDs to token addresses, which is used\nin other Klaster SDK functions like getUnifiedBalance. It allows for easy\nspecification of token addresses across multiple chains.

\n","isPage":false,"text":"\n\ncreateTokenMapping(tokens): TokenMapping\n\nCreates a TokenMapping object from an array of TokenInfo objects.\nThis function generates a mapping of chain IDs to token addresses, which is used\nin other Klaster SDK functions like getUnifiedBalance. It allows for easy\nspecification of token addresses across multiple chains.\n","title":"createTokenMapping()","titles":["klaster-sdk","Functions"]},"291":{"href":"/reference#parameters-14","html":"\n

tokens: TokenInfo[]

\n

An array of TokenInfo objects. Each TokenInfo should contain:

\n\n","isPage":false,"text":"\n• tokens: TokenInfo[]\nAn array of TokenInfo objects. Each TokenInfo should contain:\n\nchain: The chain ID (number) where the token is deployed.\naddress: The address (string) of the token contract on the specified chain.\n\n","title":"Parameters","titles":["klaster-sdk","Functions","createTokenMapping()"]},"292":{"href":"/reference#returns-18","html":"\n

TokenMapping

\n

An object where keys are chain IDs and values are token addresses.

\n","isPage":false,"text":"\nTokenMapping\nAn object where keys are chain IDs and values are token addresses.\n","title":"Returns","titles":["klaster-sdk","Functions","createTokenMapping()"]},"293":{"href":"/reference#throws-9","html":"\n

Throws an error if duplicate chain IDs are provided in the input array.

\n","isPage":false,"text":"\nThrows an error if duplicate chain IDs are provided in the input array.\n","title":"Throws","titles":["klaster-sdk","Functions","createTokenMapping()"]},"294":{"href":"/reference#example-15","html":"\n
import { createTokenMapping } from 'klaster-sdk';\n \n// Create a mapping for USDC across multiple chains\nconst usdcMapping = createTokenMapping([\n  { chain: 1, address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' },  // Ethereum Mainnet\n  { chain: 10, address: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85' }, // Optimism\n  { chain: 137, address: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174' }  // Polygon\n]);\n \nconsole.log(usdcMapping);\n// Output:\n// {\n//   1: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n//   10: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85',\n//   137: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174'\n// }\n \n// This mapping can then be used in other SDK functions:\nconst balance = await getUnifiedBalance({\n  mapping: usdcMapping,\n  address: '0x...',\n  chainConfigs: [...]\n});
\n","isPage":false,"text":"\nimport { createTokenMapping } from 'klaster-sdk';\n \n// Create a mapping for USDC across multiple chains\nconst usdcMapping = createTokenMapping([\n { chain: 1, address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' }, // Ethereum Mainnet\n { chain: 10, address: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85' }, // Optimism\n { chain: 137, address: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174' } // Polygon\n]);\n \nconsole.log(usdcMapping);\n// Output:\n// {\n// 1: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n// 10: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85',\n// 137: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174'\n// }\n \n// This mapping can then be used in other SDK functions:\nconst balance = await getUnifiedBalance({\n mapping: usdcMapping,\n address: '0x...',\n chainConfigs: [...]\n});\n","title":"Example","titles":["klaster-sdk","Functions","createTokenMapping()"]},"295":{"href":"/reference#see-8","html":"\n

For using the created mapping, see the documentation for getUnifiedBalance.

\n","isPage":false,"text":"\nFor using the created mapping, see the documentation for getUnifiedBalance.\n","title":"See","titles":["klaster-sdk","Functions","createTokenMapping()"]},"296":{"href":"/reference#defined-in-75","html":"\n

utils/unified-balance.service.ts:75

\n
\n","isPage":false,"text":"\nutils/unified-balance.service.ts:75\n\n","title":"Defined in","titles":["klaster-sdk","Functions","createTokenMapping()"]},"297":{"href":"/reference#encodeaction","html":"\n
\n

encodeAction(txs, chainId): object

\n
\n

A syntactic helper for creating action objects in the Klaster SDK.

\n

This function combines an array of RawTransactions with a chain ID into an object.\nIt's used to provide a consistent coding style when working with actions in the Klaster SDK.

\n","isPage":false,"text":"\n\nencodeAction(txs, chainId): object\n\nA syntactic helper for creating action objects in the Klaster SDK.\nThis function combines an array of RawTransactions with a chain ID into an object.\nIt's used to provide a consistent coding style when working with actions in the Klaster SDK.\n","title":"encodeAction()","titles":["klaster-sdk","Functions"]},"298":{"href":"/reference#parameters-15","html":"\n

txs: RawTransaction[]

\n

An array of RawTransaction objects.

\n

chainId: number

\n

The ID of the blockchain for this action.

\n","isPage":false,"text":"\n• txs: RawTransaction[]\nAn array of RawTransaction objects.\n• chainId: number\nThe ID of the blockchain for this action.\n","title":"Parameters","titles":["klaster-sdk","Functions","encodeAction()"]},"299":{"href":"/reference#returns-19","html":"\n

object

\n

An object containing the transactions and chain ID.

\n","isPage":false,"text":"\nobject\nAn object containing the transactions and chain ID.\n","title":"Returns","titles":["klaster-sdk","Functions","encodeAction()"]},"300":{"href":"/reference#chainid-4","html":"\n
\n

chainId: number

\n
\n","isPage":false,"text":"\n\nchainId: number\n\n","title":"chainId","titles":["klaster-sdk","Functions","encodeAction()","Returns"]},"301":{"href":"/reference#txs-1","html":"\n
\n

txs: RawTransaction[]

\n
\n","isPage":false,"text":"\n\ntxs: RawTransaction[]\n\n","title":"txs","titles":["klaster-sdk","Functions","encodeAction()","Returns"]},"302":{"href":"/reference#example-16","html":"\n
const action = encodeAction([{ ... }, { ... }], 1);
\n","isPage":false,"text":"\nconst action = encodeAction([{ ... }, { ... }], 1);\n","title":"Example","titles":["klaster-sdk","Functions","encodeAction()"]},"303":{"href":"/reference#defined-in-76","html":"\n

utils/itx.service.ts:36

\n
\n","isPage":false,"text":"\nutils/itx.service.ts:36\n\n","title":"Defined in","titles":["klaster-sdk","Functions","encodeAction()"]},"304":{"href":"/reference#encodebridgingdatafromstrategy","html":"\n
\n

encodeBridgingDataFromStrategy(options): Promise<object[]>

\n
\n

Encodes bridging data from a token strategy for multiple chains.

\n

This function takes a token strategy (typically generated by buildTokenStrategy) and encodes\nthe necessary data for bridging tokens from multiple source chains to a single destination chain.\nIt uses the provided encodeSingleBridgeData function to generate the specific bridging data for each chain.

\n","isPage":false,"text":"\n\nencodeBridgingDataFromStrategy(options): Promise<object[]>\n\nEncodes bridging data from a token strategy for multiple chains.\nThis function takes a token strategy (typically generated by buildTokenStrategy) and encodes\nthe necessary data for bridging tokens from multiple source chains to a single destination chain.\nIt uses the provided encodeSingleBridgeData function to generate the specific bridging data for each chain.\n","title":"encodeBridgingDataFromStrategy()","titles":["klaster-sdk","Functions"]},"305":{"href":"/reference#parameters-16","html":"\n

options: EncodeBridgingDataFromStrategyOptions

\n

The options for encoding bridging data.

\n","isPage":false,"text":"\n• options: EncodeBridgingDataFromStrategyOptions\nThe options for encoding bridging data.\n","title":"Parameters","titles":["klaster-sdk","Functions","encodeBridgingDataFromStrategy()"]},"306":{"href":"/reference#returns-20","html":"\n

Promise<object[]>

\n

A promise that resolves to an array of RawTransaction objects,\neach containing the encoded bridging data for a single chain in the strategy.

\n","isPage":false,"text":"\nPromise<object[]>\nA promise that resolves to an array of RawTransaction objects,\neach containing the encoded bridging data for a single chain in the strategy.\n","title":"Returns","titles":["klaster-sdk","Functions","encodeBridgingDataFromStrategy()"]},"307":{"href":"/reference#throws-10","html":"\n

Throws an error if the strategy is null, indicating no feasible strategy exists,\nor if a token address is not found for a chain in the strategy.

\n","isPage":false,"text":"\nThrows an error if the strategy is null, indicating no feasible strategy exists,\nor if a token address is not found for a chain in the strategy.\n","title":"Throws","titles":["klaster-sdk","Functions","encodeBridgingDataFromStrategy()"]},"308":{"href":"/reference#example-17","html":"\n
const tokenMapping = {\n  10: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85',  // USDC on Optimism\n  8453: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' // USDC on Base\n};\n \nconst strategy = [\n  { chainId: 10, amount: BigInt("15000") },\n  { chainId: 8453, amount: BigInt("5000") }\n];\n \nconst encodeSingleBridgeData = async (\n  tokenAddress,\n  sourceChainId,\n  destinationChainId,\n  amount,\n  multichainAddress\n) => {\n  // Implement your specific bridge encoding logic here\n  // This is just a placeholder implementation\n  return {\n    to: multichainAddress,\n    value: //\n    gasLimit: //\n    data: // Data encoded by your bridge encoding implementation\n  };\n};\n \ntry {\n  const bridgingData = await encodeBridgingDataFromStrategy({\n    strategy,\n    tokenMapping,\n    destinationChainId: 1,  // Ethereum mainnet\n    multichainAddress: '0x1234567890123456789012345678901234567890',\n    encodeSingleBridgeData\n  });\n \n  console.log(bridgingData);\n  // Output will be an array of RawTransaction objects, one for each chain in the strategy\n} catch (error) {\n  console.error('Error encoding bridging data:', error.message);\n}
\n","isPage":false,"text":"\nconst tokenMapping = {\n 10: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85', // USDC on Optimism\n 8453: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' // USDC on Base\n};\n \nconst strategy = [\n { chainId: 10, amount: BigInt("15000") },\n { chainId: 8453, amount: BigInt("5000") }\n];\n \nconst encodeSingleBridgeData = async (\n tokenAddress,\n sourceChainId,\n destinationChainId,\n amount,\n multichainAddress\n) => {\n // Implement your specific bridge encoding logic here\n // This is just a placeholder implementation\n return {\n to: multichainAddress,\n value: //\n gasLimit: //\n data: // Data encoded by your bridge encoding implementation\n };\n};\n \ntry {\n const bridgingData = await encodeBridgingDataFromStrategy({\n strategy,\n tokenMapping,\n destinationChainId: 1, // Ethereum mainnet\n multichainAddress: '0x1234567890123456789012345678901234567890',\n encodeSingleBridgeData\n });\n \n console.log(bridgingData);\n // Output will be an array of RawTransaction objects, one for each chain in the strategy\n} catch (error) {\n console.error('Error encoding bridging data:', error.message);\n}\n","title":"Example","titles":["klaster-sdk","Functions","encodeBridgingDataFromStrategy()"]},"309":{"href":"/reference#defined-in-77","html":"\n

utils/unified-balance.service.ts:435

\n
\n","isPage":false,"text":"\nutils/unified-balance.service.ts:435\n\n","title":"Defined in","titles":["klaster-sdk","Functions","encodeBridgingDataFromStrategy()"]},"310":{"href":"/reference#encodeitx","html":"\n
\n

encodeItx(itx): InterchainTransaction

\n
\n

A syntactic helper for creating InterchainTransaction objects in the Klaster SDK.

\n

This function returns its input unchanged. Its purpose is to provide a consistent\ncoding style when working with the Klaster SDK, allowing for a more fluent and\nreadable way of creating InterchainTransaction objects.

\n","isPage":false,"text":"\n\nencodeItx(itx): InterchainTransaction\n\nA syntactic helper for creating InterchainTransaction objects in the Klaster SDK.\nThis function returns its input unchanged. Its purpose is to provide a consistent\ncoding style when working with the Klaster SDK, allowing for a more fluent and\nreadable way of creating InterchainTransaction objects.\n","title":"encodeItx()","titles":["klaster-sdk","Functions"]},"311":{"href":"/reference#parameters-17","html":"\n

itx: InterchainTransaction

\n

The InterchainTransaction object to be "encoded".

\n","isPage":false,"text":"\n• itx: InterchainTransaction\nThe InterchainTransaction object to be "encoded".\n","title":"Parameters","titles":["klaster-sdk","Functions","encodeItx()"]},"312":{"href":"/reference#returns-21","html":"\n

InterchainTransaction

\n

The same InterchainTransaction object, unchanged.

\n","isPage":false,"text":"\nInterchainTransaction\nThe same InterchainTransaction object, unchanged.\n","title":"Returns","titles":["klaster-sdk","Functions","encodeItx()"]},"313":{"href":"/reference#example-18","html":"\n
// Instead of:\n// const iTx: InterchainTransaction = { ... };\n// Use:\nconst iTx = encodeItx({ ... });
\n","isPage":false,"text":"\n// Instead of:\n// const iTx: InterchainTransaction = { ... };\n// Use:\nconst iTx = encodeItx({ ... });\n","title":"Example","titles":["klaster-sdk","Functions","encodeItx()"]},"314":{"href":"/reference#defined-in-78","html":"\n

utils/itx.service.ts:19

\n
\n","isPage":false,"text":"\nutils/itx.service.ts:19\n\n","title":"Defined in","titles":["klaster-sdk","Functions","encodeItx()"]},"315":{"href":"/reference#encodetx","html":"\n
\n

encodeTx(tx): RawTransaction

\n
\n

A syntactic helper for working with RawTransaction objects in the Klaster SDK.

\n

This function returns its input unchanged. Its purpose is to provide a consistent\ncoding style when working with the Klaster SDK, allowing for a more fluent way\nof handling RawTransaction objects.

\n","isPage":false,"text":"\n\nencodeTx(tx): RawTransaction\n\nA syntactic helper for working with RawTransaction objects in the Klaster SDK.\nThis function returns its input unchanged. Its purpose is to provide a consistent\ncoding style when working with the Klaster SDK, allowing for a more fluent way\nof handling RawTransaction objects.\n","title":"encodeTx()","titles":["klaster-sdk","Functions"]},"316":{"href":"/reference#parameters-18","html":"\n

tx: RawTransaction

\n

The RawTransaction object to be "encoded".

\n","isPage":false,"text":"\n• tx: RawTransaction\nThe RawTransaction object to be "encoded".\n","title":"Parameters","titles":["klaster-sdk","Functions","encodeTx()"]},"317":{"href":"/reference#returns-22","html":"\n

RawTransaction

\n

The same RawTransaction object, unchanged.

\n","isPage":false,"text":"\nRawTransaction\nThe same RawTransaction object, unchanged.\n","title":"Returns","titles":["klaster-sdk","Functions","encodeTx()"]},"318":{"href":"/reference#example-19","html":"\n
const tx = encodeTx({ ... });
\n","isPage":false,"text":"\nconst tx = encodeTx({ ... });\n","title":"Example","titles":["klaster-sdk","Functions","encodeTx()"]},"319":{"href":"/reference#defined-in-79","html":"\n

utils/itx.service.ts:53

\n
\n","isPage":false,"text":"\nutils/itx.service.ts:53\n\n","title":"Defined in","titles":["klaster-sdk","Functions","encodeTx()"]},"320":{"href":"/reference#fetchinjectedaddress","html":"\n
\n

fetchInjectedAddress(): Promise<Address | undefined>

\n
\n

Fetches the primary Ethereum address from an injected web3 wallet provider (e.g., MetaMask).

\n

This function creates a wallet client using the viem library and the injected Ethereum provider.\nIt then retrieves the list of addresses associated with the wallet and returns the first address.

\n","isPage":false,"text":"\n\nfetchInjectedAddress(): Promise<Address | undefined>\n\nFetches the primary Ethereum address from an injected web3 wallet provider (e.g., MetaMask).\nThis function creates a wallet client using the viem library and the injected Ethereum provider.\nIt then retrieves the list of addresses associated with the wallet and returns the first address.\n","title":"fetchInjectedAddress()","titles":["klaster-sdk","Functions"]},"321":{"href":"/reference#returns-23","html":"\n

Promise<Address | undefined>

\n

A promise that resolves to:

\n\n","isPage":false,"text":"\nPromise<Address | undefined>\nA promise that resolves to:\n\nThe primary Ethereum address (type Address) if available.\nundefined if no addresses are associated with the wallet or if the wallet is locked.\n\n","title":"Returns","titles":["klaster-sdk","Functions","fetchInjectedAddress()"]},"322":{"href":"/reference#async-6","html":"\n","isPage":false,"text":"\n","title":"Async","titles":["klaster-sdk","Functions","fetchInjectedAddress()"]},"323":{"href":"/reference#function","html":"\n

fetchInjectedAddress

\n","isPage":false,"text":"\nfetchInjectedAddress\n","title":"Function","titles":["klaster-sdk","Functions","fetchInjectedAddress()"]},"324":{"href":"/reference#throws-11","html":"\n

Throws an error if:

\n\n","isPage":false,"text":"\nThrows an error if:\n\nNo injected Ethereum provider is detected (i.e., window.ethereum is undefined).\nThe user denies permission to access their accounts.\nThere's an issue connecting to the Ethereum network.\n\n","title":"Throws","titles":["klaster-sdk","Functions","fetchInjectedAddress()"]},"325":{"href":"/reference#example-20","html":"\n
try {\n  const address = await fetchInjectedAddress();\n  if (address) {\n    console.log('Connected wallet address:', address);\n  } else {\n    console.log('No wallet address found or wallet is locked');\n  }\n} catch (error) {\n  console.error('Error fetching wallet address:', error);\n}
\n","isPage":false,"text":"\ntry {\n const address = await fetchInjectedAddress();\n if (address) {\n console.log('Connected wallet address:', address);\n } else {\n console.log('No wallet address found or wallet is locked');\n }\n} catch (error) {\n console.error('Error fetching wallet address:', error);\n}\n","title":"Example","titles":["klaster-sdk","Functions","fetchInjectedAddress()"]},"326":{"href":"/reference#requires","html":"\n

viem

\n","isPage":false,"text":"\nviem\n","title":"Requires","titles":["klaster-sdk","Functions","fetchInjectedAddress()"]},"327":{"href":"/reference#see-9","html":"\n

Wallet Client Documentation

\n","isPage":false,"text":"\nWallet Client Documentation\n","title":"See","titles":["klaster-sdk","Functions","fetchInjectedAddress()"]},"328":{"href":"/reference#note-5","html":"\n

This function is designed to work in a browser environment and requires\na web3-enabled browser with an injected Ethereum provider (like MetaMask).\nIt will not work in a Node.js environment or browsers without an Ethereum wallet.

\n","isPage":false,"text":"\nThis function is designed to work in a browser environment and requires\na web3-enabled browser with an injected Ethereum provider (like MetaMask).\nIt will not work in a Node.js environment or browsers without an Ethereum wallet.\n","title":"Note","titles":["klaster-sdk","Functions","fetchInjectedAddress()"]},"329":{"href":"/reference#defined-in-80","html":"\n

utils/utils.service.ts:47

\n
\n","isPage":false,"text":"\nutils/utils.service.ts:47\n\n","title":"Defined in","titles":["klaster-sdk","Functions","fetchInjectedAddress()"]},"330":{"href":"/reference#getunifiedbalance","html":"\n
\n

getUnifiedBalance(params): Promise<UnifiedBalanceResult>

\n
\n

Fetches and aggregates token balances across multiple blockchains for a given address.

\n","isPage":false,"text":"\n\ngetUnifiedBalance(params): Promise<UnifiedBalanceResult>\n\nFetches and aggregates token balances across multiple blockchains for a given address.\n","title":"getUnifiedBalance()","titles":["klaster-sdk","Functions"]},"331":{"href":"/reference#parameters-19","html":"\n

params

\n

The parameters for the function.

\n

params.address: `0x${string}`

\n

The address for which to fetch the token balances.

\n

params.chainConfigs: ChainConfig[]

\n

An array of objects, each containing a chainId and an rpcUrl.

\n

params.mapping: TokenMapping

\n

An object mapping chain IDs to token addresses.

\n","isPage":false,"text":"\n• params\nThe parameters for the function.\n• params.address: `0x${string}`\nThe address for which to fetch the token balances.\n• params.chainConfigs: ChainConfig[]\nAn array of objects, each containing a chainId and an rpcUrl.\n• params.mapping: TokenMapping\nAn object mapping chain IDs to token addresses.\n","title":"Parameters","titles":["klaster-sdk","Functions","getUnifiedBalance()"]},"332":{"href":"/reference#returns-24","html":"\n

Promise<UnifiedBalanceResult>

\n

A promise that resolves to an object containing:

\n\n","isPage":false,"text":"\nPromise<UnifiedBalanceResult>\nA promise that resolves to an object containing:\n\namount: The total balance across all chains as a bigint.\ndecimals: The number of decimals for the token.\n\n","title":"Returns","titles":["klaster-sdk","Functions","getUnifiedBalance()"]},"333":{"href":"/reference#throws-12","html":"\n

Throws an error in the following cases:

\n\n","isPage":false,"text":"\nThrows an error in the following cases:\n\nIf tokens across different chains have different numbers of decimals.\nIf no valid tokens are found in the mapping.\n\n","title":"Throws","titles":["klaster-sdk","Functions","getUnifiedBalance()"]},"334":{"href":"/reference#example-21","html":"\n
import { createTokenMapping, getUnifiedBalance } from 'klaster-sdk';\n \n// Create a token mapping for USDC\nconst usdcMapping = createTokenMapping([\n  { chain: 1, address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' },\n  { chain: 10, address: '0x0b2c639c533813f4aa9d7837caf62653d097ff85' }\n]);\n \n// Fetch the unified balance\ntry {\n  const result = await getUnifiedBalance({\n    mapping: usdcMapping,\n    address: '0x063B3184a74C510b5c6f5bBd122CC19689E0c706',\n    chainConfigs: [\n      { chainId: 1, rpcUrl: 'https://eth-mainnet.g.alchemy.com/v2/your-api-key' },\n      { chainId: 10, rpcUrl: 'https://opt-mainnet.g.alchemy.com/v2/your-api-key' }\n    ]\n  });\n  console.log(`Unified USDC Balance: ${result.amount} (${result.decimals} decimals)`);\n} catch (error) {\n  console.error('Error fetching unified balance:', error.message);\n}
\n","isPage":false,"text":"\nimport { createTokenMapping, getUnifiedBalance } from 'klaster-sdk';\n \n// Create a token mapping for USDC\nconst usdcMapping = createTokenMapping([\n { chain: 1, address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' },\n { chain: 10, address: '0x0b2c639c533813f4aa9d7837caf62653d097ff85' }\n]);\n \n// Fetch the unified balance\ntry {\n const result = await getUnifiedBalance({\n mapping: usdcMapping,\n address: '0x063B3184a74C510b5c6f5bBd122CC19689E0c706',\n chainConfigs: [\n { chainId: 1, rpcUrl: 'https://eth-mainnet.g.alchemy.com/v2/your-api-key' },\n { chainId: 10, rpcUrl: 'https://opt-mainnet.g.alchemy.com/v2/your-api-key' }\n ]\n });\n console.log(`Unified USDC Balance: ${result.amount} (${result.decimals} decimals)`);\n} catch (error) {\n console.error('Error fetching unified balance:', error.message);\n}\n","title":"Example","titles":["klaster-sdk","Functions","getUnifiedBalance()"]},"335":{"href":"/reference#defined-in-81","html":"\n

utils/unified-balance.service.ts:130

\n
\n","isPage":false,"text":"\nutils/unified-balance.service.ts:130\n\n","title":"Defined in","titles":["klaster-sdk","Functions","getUnifiedBalance()"]},"336":{"href":"/reference#initklaster","html":"\n
\n

initKlaster(config): KlasterSDK

\n
\n

Initializes the Klaster SDK with the provided configuration.

\n

This function serves as the entry point for using the Klaster SDK. It creates and\nreturns a new instance of the KlasterSDK class, configured with the provided options.

\n","isPage":false,"text":"\n\ninitKlaster(config): KlasterSDK\n\nInitializes the Klaster SDK with the provided configuration.\nThis function serves as the entry point for using the Klaster SDK. It creates and\nreturns a new instance of the KlasterSDK class, configured with the provided options.\n","title":"initKlaster()","titles":["klaster-sdk","Functions"]},"337":{"href":"/reference#parameters-20","html":"\n

config: Config

\n

The configuration options for the Klaster SDK.

\n","isPage":false,"text":"\n• config: Config\nThe configuration options for the Klaster SDK.\n","title":"Parameters","titles":["klaster-sdk","Functions","initKlaster()"]},"338":{"href":"/reference#returns-25","html":"\n

KlasterSDK

\n

A new instance of the KlasterSDK, ready for use.

\n","isPage":false,"text":"\nKlasterSDK\nA new instance of the KlasterSDK, ready for use.\n","title":"Returns","titles":["klaster-sdk","Functions","initKlaster()"]},"339":{"href":"/reference#example-22","html":"\n
import { initKlaster, Config } from 'klaster-sdk';\n \nconst config: Config = {\n  nodeUrl: 'https://klaster-node.example.com',\n  masterAddress: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e'\n};\n \nconst klasterSDK = initKlaster(config);\n \n// Now you can use klasterSDK to interact with the Klaster ecosystem
\n","isPage":false,"text":"\nimport { initKlaster, Config } from 'klaster-sdk';\n \nconst config: Config = {\n nodeUrl: 'https://klaster-node.example.com',\n masterAddress: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e'\n};\n \nconst klasterSDK = initKlaster(config);\n \n// Now you can use klasterSDK to interact with the Klaster ecosystem\n","title":"Example","titles":["klaster-sdk","Functions","initKlaster()"]},"340":{"href":"/reference#throws-13","html":"\n

Throws an error if the provided configuration is invalid or if\nthe SDK fails to initialize for any reason.

\n","isPage":false,"text":"\nThrows an error if the provided configuration is invalid or if\nthe SDK fails to initialize for any reason.\n","title":"Throws","titles":["klaster-sdk","Functions","initKlaster()"]},"341":{"href":"/reference#defined-in-82","html":"\n

index.ts:62

\n
\n","isPage":false,"text":"\nindex.ts:62\n\n","title":"Defined in","titles":["klaster-sdk","Functions","initKlaster()"]},"342":{"href":"/reference#resolvetoken","html":"\n
\n

resolveToken(symbol, chainId): TokenInfo

\n
\n

Resolves a payment token based on its symbol and the chain ID.

\n","isPage":false,"text":"\n\nresolveToken(symbol, chainId): TokenInfo\n\nResolves a payment token based on its symbol and the chain ID.\n","title":"resolveToken()","titles":["klaster-sdk","Functions"]},"343":{"href":"/reference#parameters-21","html":"\n

symbol: PaymentTokenSymbol

\n

The symbol of the payment token to resolve.

\n

chainId: number

\n

The ID of the blockchain network.

\n","isPage":false,"text":"\n• symbol: PaymentTokenSymbol\nThe symbol of the payment token to resolve.\n• chainId: number\nThe ID of the blockchain network.\n","title":"Parameters","titles":["klaster-sdk","Functions","resolveToken()"]},"344":{"href":"/reference#returns-26","html":"\n

TokenInfo

\n

A promise that resolves to the token information.

\n","isPage":false,"text":"\nTokenInfo\nA promise that resolves to the token information.\n","title":"Returns","titles":["klaster-sdk","Functions","resolveToken()"]},"345":{"href":"/reference#throws-14","html":"\n

If the token cannot be resolved for the given chain ID.

\n","isPage":false,"text":"\nIf the token cannot be resolved for the given chain ID.\n","title":"Throws","titles":["klaster-sdk","Functions","resolveToken()"]},"346":{"href":"/reference#defined-in-83","html":"\n

utils/token-resolver.service.ts:114

\n
\n","isPage":false,"text":"\nutils/token-resolver.service.ts:114\n\n","title":"Defined in","titles":["klaster-sdk","Functions","resolveToken()"]},"347":{"href":"/reference#signwithinjectedwallet","html":"\n
\n

signWithInjectedWallet(address, message): Promise<string>

\n
\n

Signs a message using the injected Ethereum provider (e.g., MetaMask) in the browser.

\n

This function uses the personal_sign method to create a signature with the user's\nEthereum account. It requires a web3-enabled browser with an injected Ethereum provider.

\n","isPage":false,"text":"\n\nsignWithInjectedWallet(address, message): Promise<string>\n\nSigns a message using the injected Ethereum provider (e.g., MetaMask) in the browser.\nThis function uses the personal_sign method to create a signature with the user's\nEthereum account. It requires a web3-enabled browser with an injected Ethereum provider.\n","title":"signWithInjectedWallet()","titles":["klaster-sdk","Functions"]},"348":{"href":"/reference#parameters-22","html":"\n

address: `0x${string}`

\n

The Ethereum address to sign the message with. This should\nbe an address that the user controls in their injected wallet.

\n

message: string

\n

The message to be signed. This will be converted to UTF-8\nand prefixed with "\\x19Ethereum Signed Message:\\n" before signing.

\n","isPage":false,"text":"\n• address: `0x${string}`\nThe Ethereum address to sign the message with. This should\nbe an address that the user controls in their injected wallet.\n• message: string\nThe message to be signed. This will be converted to UTF-8\nand prefixed with "\\x19Ethereum Signed Message:\\n" before signing.\n","title":"Parameters","titles":["klaster-sdk","Functions","signWithInjectedWallet()"]},"349":{"href":"/reference#returns-27","html":"\n

Promise<string>

\n

A promise that resolves to the signature string.\nThe signature is in hexadecimal format.

\n","isPage":false,"text":"\nPromise<string>\nA promise that resolves to the signature string.\nThe signature is in hexadecimal format.\n","title":"Returns","titles":["klaster-sdk","Functions","signWithInjectedWallet()"]},"350":{"href":"/reference#throws-15","html":"\n

Throws an error if the injected Ethereum provider is not available,\nif the user rejects the signature request, or if there's any other\nissue during the signing process.

\n","isPage":false,"text":"\nThrows an error if the injected Ethereum provider is not available,\nif the user rejects the signature request, or if there's any other\nissue during the signing process.\n","title":"Throws","titles":["klaster-sdk","Functions","signWithInjectedWallet()"]},"351":{"href":"/reference#example-23","html":"\n
try {\n  const address = '0x742d35Cc6634C0532925a3b844Bc454e4438f44e';\n  const message = 'Hello, Ethereum!';\n  const signature = await signWithInjectedWallet(address, message);\n  console.log('Signature:', signature);\n} catch (error) {\n  console.error('Error signing message:', error);\n}
\n","isPage":false,"text":"\ntry {\n const address = '0x742d35Cc6634C0532925a3b844Bc454e4438f44e';\n const message = 'Hello, Ethereum!';\n const signature = await signWithInjectedWallet(address, message);\n console.log('Signature:', signature);\n} catch (error) {\n console.error('Error signing message:', error);\n}\n","title":"Example","titles":["klaster-sdk","Functions","signWithInjectedWallet()"]},"352":{"href":"/reference#note-6","html":"\n

This function is designed to work in a browser environment and requires\na web3-enabled browser with an injected Ethereum provider (like MetaMask).\nIt will not work in a Node.js environment or browsers without an Ethereum wallet.

\n","isPage":false,"text":"\nThis function is designed to work in a browser environment and requires\na web3-enabled browser with an injected Ethereum provider (like MetaMask).\nIt will not work in a Node.js environment or browsers without an Ethereum wallet.\n","title":"Note","titles":["klaster-sdk","Functions","signWithInjectedWallet()"]},"353":{"href":"/reference#defined-in-84","html":"\n

utils/utils.service.ts:86

","isPage":false,"text":"\nutils/utils.service.ts:86","title":"Defined in","titles":["klaster-sdk","Functions","signWithInjectedWallet()"]},"354":{"href":"/security-audit#klaster-security-audits","html":"\n

Pashov\nhttps://github.com/pashov/audits/blob/master/team/pdf/Klaster-security-review.pdf

","isPage":true,"text":"\nPashov\nhttps://github.com/pashov/audits/blob/master/team/pdf/Klaster-security-review.pdf","title":"Klaster Security Audits","titles":[]},"355":{"href":"/supported-networks-tokens#supported-gas-tokens","html":"\n
Chain NameChain IDSupported TokensToken Address
Ethereum1ETH0x0000000000000000000000000000000000000000
Wrapped Ether (WETH)0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
ChainLink Token (LINK)0x514910771af9ca656af840dff83e8264ecf986ca
USD Coin (USDC)0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Wrapped liquid staked Ether 2.0 (wstETH)0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0
Tether USD (USDT)0xdac17f958d2ee523a2206206994597c13d831ec7
Optimism10ETH0x0000000000000000000000000000000000000000
Wrapped Ether (WETH)0x4200000000000000000000000000000000000006
ChainLink Token (LINK)0x350a791Bfc2C21F9Ed5d10980Dad2e2638ffa7f6
USD Coin (USDC)0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85
USD Coin (Bridged) (USDC)0x7F5c764cBc14f9669B88837ca1490cCa17c31607
Wrapped liquid staked Ether 2.0 (wstETH)0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb
Tether USD (USDT)0x94b008aA00579c1307B0EF2c499aD98a8ce58e58
Sepolia11155111ETH0x0000000000000000000000000000000000000000
ChainLink Token (LINK)0x779877A7B0D9E8603169DdbD7836e478b4624789
Polygon137MATIC0x0000000000000000000000000000000000000000
Wrapped Matic (WMATIC)0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270
ChainLink Token (LINK)0xb0897686c545045aFc77CF20eC7A532E3120E0F1
USDC0x3c499c542cef5e3811e1192ce70d8cc03d5c3359
USDC (Bridged)0x2791bca1f2de4661ed88a30c99a7a9449aa84174
Staked Matic (stMATIC)0x3a58a54c066fdc0f2d55fc9c89f0415c92ebf3c4
Tether USD (USDT)0xc2132D05D31c914a87C6611C10748AEb04B58e8F
Arbitrum One42161ETH0x0000000000000000000000000000000000000000
Wrapped Ether (WETH)0x82aF49447D8a07e3bd95BD0d56f35241523fBab1
ChainLink Token (LINK)0xf97f4df75117a78c1A5a0DBb814Af92458539FB4
USD Coin (USDC)0xaf88d065e77c8cC2239327C5EDb3A432268e5831
Wrapped liquid staked Ether 2.0 (wstETH)0x5979D7b546E38E414F7E9822514be443A4800529
Tether USD (USDT)0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9
Arbitrum Sepolia421614ETH0x0000000000000000000000000000000000000000
ChainLink Token (LINK)0xb1D4538B4571d411F07960EF2838Ce337FE1E80E
Avalanche C-Chain43114AVAX0x0000000000000000000000000000000000000000
Wrapped AVAX (WAVAX)0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7
ChainLink Token (LINK)0x5947BB275c521040051D82396192181b413227A3
USD Coin (USDC)0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E
USDC (Bridged)0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664
Tether USD (USDT)0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7
USDT (Bridged)0xc7198437980c041c805A1EDcbA50c1Ce5db95118
Scroll534352ETH0x0000000000000000000000000000000000000000
Wrapped Ether (WETH)0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7
ChainLink Token (LINK)0x548C6944cba02B9D1C0570102c89de64D258d3Ac
USD Coin (USDC)0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4
Tether USD (USDT)0xf55BEC9cafDbE8730f096Aa55dad6D22d44099Df
Wrapped liquid staked Ether 2.0 (wstETH)0xf610A9dfB7C89644979b4A0f27063E9e7d7Cda32
BNB Smart Chain56BNB0x0000000000000000000000000000000000000000
Wrapped BNB (WBNB)0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c
USDC (Binance-Peg)0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d
USDC (Axelar Wrapped) (axlUSDC)0x4268B8F0B87b6Eae5d897996E6b845ddbD99Adf3
USDC (cream.finace) (crUSDC)0xD83C88DB3A6cA4a32FFf1603b0f7DDce01F5f727
BSC-USD0x55d398326f99059fF775485246999027B3197955
Base8453ETH0x0000000000000000000000000000000000000000
Wrapped Ether (WETH)0x4200000000000000000000000000000000000006
ChainLink Token (LINK)0x88Fb150BDc53A65fe94Dea0c9BA0a6dAf8C6e196
USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
USDC (Axelar Wrapped) (axlUSDC)0xEB466342C4d449BC9f53A865D5Cb90586f405215
Wrapped liquid staked Ether 2.0 (wstETH)0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452
","isPage":true,"text":"\nChain NameChain IDSupported TokensToken AddressEthereum1ETH0x0000000000000000000000000000000000000000Wrapped Ether (WETH)0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2ChainLink Token (LINK)0x514910771af9ca656af840dff83e8264ecf986caUSD Coin (USDC)0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48Wrapped liquid staked Ether 2.0 (wstETH)0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0Tether USD (USDT)0xdac17f958d2ee523a2206206994597c13d831ec7Optimism10ETH0x0000000000000000000000000000000000000000Wrapped Ether (WETH)0x4200000000000000000000000000000000000006ChainLink Token (LINK)0x350a791Bfc2C21F9Ed5d10980Dad2e2638ffa7f6USD Coin (USDC)0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85USD Coin (Bridged) (USDC)0x7F5c764cBc14f9669B88837ca1490cCa17c31607Wrapped liquid staked Ether 2.0 (wstETH)0x1F32b1c2345538c0c6f582fCB022739c4A194EbbTether USD (USDT)0x94b008aA00579c1307B0EF2c499aD98a8ce58e58Sepolia11155111ETH0x0000000000000000000000000000000000000000ChainLink Token (LINK)0x779877A7B0D9E8603169DdbD7836e478b4624789Polygon137MATIC0x0000000000000000000000000000000000000000Wrapped Matic (WMATIC)0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270ChainLink Token (LINK)0xb0897686c545045aFc77CF20eC7A532E3120E0F1USDC0x3c499c542cef5e3811e1192ce70d8cc03d5c3359USDC (Bridged)0x2791bca1f2de4661ed88a30c99a7a9449aa84174Staked Matic (stMATIC)0x3a58a54c066fdc0f2d55fc9c89f0415c92ebf3c4Tether USD (USDT)0xc2132D05D31c914a87C6611C10748AEb04B58e8FArbitrum One42161ETH0x0000000000000000000000000000000000000000Wrapped Ether (WETH)0x82aF49447D8a07e3bd95BD0d56f35241523fBab1ChainLink Token (LINK)0xf97f4df75117a78c1A5a0DBb814Af92458539FB4USD Coin (USDC)0xaf88d065e77c8cC2239327C5EDb3A432268e5831Wrapped liquid staked Ether 2.0 (wstETH)0x5979D7b546E38E414F7E9822514be443A4800529Tether USD (USDT)0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9Arbitrum Sepolia421614ETH0x0000000000000000000000000000000000000000ChainLink Token (LINK)0xb1D4538B4571d411F07960EF2838Ce337FE1E80EAvalanche C-Chain43114AVAX0x0000000000000000000000000000000000000000Wrapped AVAX (WAVAX)0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7ChainLink Token (LINK)0x5947BB275c521040051D82396192181b413227A3USD Coin (USDC)0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6EUSDC (Bridged)0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664Tether USD (USDT)0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7USDT (Bridged)0xc7198437980c041c805A1EDcbA50c1Ce5db95118Scroll534352ETH0x0000000000000000000000000000000000000000Wrapped Ether (WETH)0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7ChainLink Token (LINK)0x548C6944cba02B9D1C0570102c89de64D258d3AcUSD Coin (USDC)0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4Tether USD (USDT)0xf55BEC9cafDbE8730f096Aa55dad6D22d44099DfWrapped liquid staked Ether 2.0 (wstETH)0xf610A9dfB7C89644979b4A0f27063E9e7d7Cda32BNB Smart Chain56BNB0x0000000000000000000000000000000000000000Wrapped BNB (WBNB)0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095cUSDC (Binance-Peg)0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580dUSDC (Axelar Wrapped) (axlUSDC)0x4268B8F0B87b6Eae5d897996E6b845ddbD99Adf3USDC (cream.finace) (crUSDC)0xD83C88DB3A6cA4a32FFf1603b0f7DDce01F5f727BSC-USD0x55d398326f99059fF775485246999027B3197955Base8453ETH0x0000000000000000000000000000000000000000Wrapped Ether (WETH)0x4200000000000000000000000000000000000006ChainLink Token (LINK)0x88Fb150BDc53A65fe94Dea0c9BA0a6dAf8C6e196USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913USDC (Axelar Wrapped) (axlUSDC)0xEB466342C4d449BC9f53A865D5Cb90586f405215Wrapped liquid staked Ether 2.0 (wstETH)0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452","title":"Supported Gas Tokens","titles":[]},"356":{"href":"/zero-to-hero-klaster-guide#zero-to-hero-guide-building-a-chain-abstracted-application","html":"\n

\"Ca\"/

\n

This will be a zero-to-hero introduction to the Klaster SDK. Here, we will explore all of the main concepts pertaining to\nthe development of chain abstracted apps and flows.

\n

In this tutorial, you will get all the required steps to build a chain abstracted application. If you're interested in what\na chain abstracted application looks like, check out our video on AbstraktAAVE - a chain abstracted implementation of AAVE.

\n\n

You can also use the app yourself at:

\n

https://demo-aave.klaster.io

\n\n","isPage":true,"text":"\n\nThis will be a zero-to-hero introduction to the Klaster SDK. Here, we will explore all of the main concepts pertaining to\nthe development of chain abstracted apps and flows.\nIn this tutorial, you will get all the required steps to build a chain abstracted application. If you're interested in what\na chain abstracted application looks like, check out our video on AbstraktAAVE - a chain abstracted implementation of AAVE.\n\nYou can also use the app yourself at:\nhttps://demo-aave.klaster.io\nWhile Klaster works with all major Ethereum SDK providers, such as ethers.js, web3.js and viem - it works best when used\nin conjuction with viem.\n","title":"Zero to Hero Guide: Building a Chain Abstracted Application","titles":[]},"357":{"href":"/zero-to-hero-klaster-guide#install-klaster-and-viem","html":"\n
npm i klaster-sdk viem
\n","isPage":false,"text":"\nnpm i klaster-sdk viem\n","title":"Install Klaster and Viem","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"358":{"href":"/zero-to-hero-klaster-guide#create-a-signer-object","html":"\n

Usign viem, create a signer object - which will be used to sign transactions.

\n
import {\n  buildMultichainReadonlyClient,\n  buildRpcInfo,\n  initKlaster,\n  klasterNodeHost,\n  loadBicoV2Account,\n} from "klaster-sdk";\nimport { createWalletClient, custom, http } from "viem";\nimport { generatePrivateKey, privateKeyToAccount } from "viem/accounts";\nimport { arbitrum, base, optimism, polygon, scroll } from "viem/chains";\n \n// When in browser environment create a signer\n// which uses the injected wallet (e.g. MetaMask, Rabby, ...)\nconst signer = createWalletClient({\n  transport: custom((window as any).ethereum),\n});\n \n// When in non-browser environment you can use private key\n// to sign messages.\nconst privateKey = generatePrivateKey();\nconst signerAccount = privateKeyToAccount(privateKey);\nconst signer = createWalletClient({\n  transport: http(),\n});
\n","isPage":false,"text":"\nUsign viem, create a signer object - which will be used to sign transactions.\nimport {\n buildMultichainReadonlyClient,\n buildRpcInfo,\n initKlaster,\n klasterNodeHost,\n loadBicoV2Account,\n} from "klaster-sdk";\nimport { createWalletClient, custom, http } from "viem";\nimport { generatePrivateKey, privateKeyToAccount } from "viem/accounts";\nimport { arbitrum, base, optimism, polygon, scroll } from "viem/chains";\n \n// When in browser environment create a signer\n// which uses the injected wallet (e.g. MetaMask, Rabby, ...)\nconst signer = createWalletClient({\n transport: custom((window as any).ethereum),\n});\n \n// When in non-browser environment you can use private key\n// to sign messages.\nconst privateKey = generatePrivateKey();\nconst signerAccount = privateKeyToAccount(privateKey);\nconst signer = createWalletClient({\n transport: http(),\n});\n","title":"Create a signer object","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"359":{"href":"/zero-to-hero-klaster-guide#initialize-klaster-sdk","html":"\n

To initialize the Klaster SDK, you must provide it with the following information:

\n\n

You can use multiple account providers (check documentation reference for supported account providers). In this tutorial,\nwe will use the Biconomy account provider:

\n
// Fetch the address from viem. You might need to call signer.requestAddresses()\n// depending on your injected Web3 provider.\nconst [address] = await signer.getAddresses();\n \n// Initializing the Klaster SDK with Biconomy as the smart contract account\n// provider.\nconst klaster = await initKlaster({\n  accountInitData: loadBicoV2Account({\n    owner: address, // Fetch\n  }),\n  nodeUrl: klasterNodeHost.default,\n});
\n","isPage":false,"text":"\nTo initialize the Klaster SDK, you must provide it with the following information:\n\nKlaster Node URL\nERC4337 Account Provider\n\nYou can use multiple account providers (check documentation reference for supported account providers). In this tutorial,\nwe will use the Biconomy account provider:\n// Fetch the address from viem. You might need to call signer.requestAddresses()\n// depending on your injected Web3 provider.\nconst [address] = await signer.getAddresses();\n \n// Initializing the Klaster SDK with Biconomy as the smart contract account\n// provider.\nconst klaster = await initKlaster({\n accountInitData: loadBicoV2Account({\n owner: address, // Fetch\n }),\n nodeUrl: klasterNodeHost.default,\n});\n","title":"Initialize Klaster SDK","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"360":{"href":"/zero-to-hero-klaster-guide#initialize-a-multichain-readonly-rpc-client","html":"\n

In order to achieve certain functionality for chain abstraction, such as getting a unified token balance across chains\nor encoding bridging actions - you will need to have a public RPC for every chain you wish to interact with. Do note\nthat this is only a public RPC, you don't need to have the abilty to write to chain - as this is handled by the Klaster nodes.

\n\n
// Build a multichain client by calling the buildMultichainReadonlyClient\n// and passing the buildRpcInfo objects into the array\nconst mcClient = buildMultichainReadonlyClient([\n  buildRpcInfo(optimism.id, "<op-rpc-url>"),\n  buildRpcInfo(base.id, "<base-rpc-url>"),\n]);
\n

Since this is a tutorial project, we can use the viem default RPCs.

\n\n
// This is a hacky way of doing this, just to get you quickly started\n// with the tutorial. Please don't initialize the client like this in\n// production projects.\nconst mcClient = buildMultichainReadonlyClient(\n  [optimism, base, polygon, arbitrum, scroll].map((x) => {\n    return {\n      chainId: x.id,\n      rpcUrl: x.rpcUrls.default.http[0],\n    };\n  })\n);
\n","isPage":false,"text":"\nIn order to achieve certain functionality for chain abstraction, such as getting a unified token balance across chains\nor encoding bridging actions - you will need to have a public RPC for every chain you wish to interact with. Do note\nthat this is only a public RPC, you don't need to have the abilty to write to chain - as this is handled by the Klaster nodes.\nThis tutorial project will be using Optimism, Base, Polygon, Arbitrum and Scroll as the underlying blockchains\n// Build a multichain client by calling the buildMultichainReadonlyClient\n// and passing the buildRpcInfo objects into the array\nconst mcClient = buildMultichainReadonlyClient([\n buildRpcInfo(optimism.id, "<op-rpc-url>"),\n buildRpcInfo(base.id, "<base-rpc-url>"),\n]);\nSince this is a tutorial project, we can use the viem default RPCs.\nThis is highly discouraged in a production project. Use private RPCs when deploying to production.\n// This is a hacky way of doing this, just to get you quickly started\n// with the tutorial. Please don't initialize the client like this in\n// production projects.\nconst mcClient = buildMultichainReadonlyClient(\n [optimism, base, polygon, arbitrum, scroll].map((x) => {\n return {\n chainId: x.id,\n rpcUrl: x.rpcUrls.default.http[0],\n };\n })\n);\n","title":"Initialize a multichain readonly RPC client","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"361":{"href":"/zero-to-hero-klaster-guide#map-token-deployments-across-multiple-blockchains","html":"\n

As well as working with the Multichain RPC provider, the Klaster SDK works best when provided with MultichainTokenMapping\nobjects. These objects represent mappings of tokens you consider equivalent across various blockchains. One example would\nbe USDC - which is widely deployed by Circle across multiple blockchains.

\n

You can use the Circle Token Deployments to see which address the canonical\nversion of which token is deployed to.

\n

However, nothing limits you to using only offical token deployments. If you consider the axlUSDC to be equivalent to cannonical\nUSDC - you can simply map them together and the Klaster SDK will treat them as if they're the same token. You can provide one\ntoken per chain.

\n\n
// Build a token mapping by calling the buildTokenMapping function and passing instances of\n// deployment object into the array. These represent the chainId → address mappings.\nconst mcUSDC = buildTokenMapping([\n  deployment(optimism.id, "0x<USDC-ON-OPTIMISM-ADDRESS>"),\n  deployment(base.id, "0x<USDC-ON-OPTIMISM-ADDRESS>"),\n]);
\n

The Klaster SDK exposes some multichain tokens by default. These are mcUSDC and mcUSDT. They are available to you\nas exported constants. They expose deployments on a lot of blockchains so it's important that you truncate them before\nusage only to blockchains which you use.

\n\n
// A lambda which intersects the chains available in the\n// token mapping with the ones available in the multichain client.\n// In general, you should not be using this in a production project.\n// Instead, you should create your own tokenmappings by the method shown\n// above.\nconst intersectTokenAndClients = (\n  token: MultichainTokenMapping,\n  mcClient: MultichainClient\n) => {\n  return token.filter((deployment) =>\n    mcClient.chainsRpcInfo\n      .map((info) => info.chainId)\n      .includes(deployment.chainId)\n  );\n};\n \n// Store the intersection of the Klaster provided token and the chains your project is using.\nconst mUSDC = intersectTokenAndClients(mcUSDC, mcClient);
\n","isPage":false,"text":"\nAs well as working with the Multichain RPC provider, the Klaster SDK works best when provided with MultichainTokenMapping\nobjects. These objects represent mappings of tokens you consider equivalent across various blockchains. One example would\nbe USDC - which is widely deployed by Circle across multiple blockchains.\nYou can use the Circle Token Deployments to see which address the canonical\nversion of which token is deployed to.\nHowever, nothing limits you to using only offical token deployments. If you consider the axlUSDC to be equivalent to cannonical\nUSDC - you can simply map them together and the Klaster SDK will treat them as if they're the same token. You can provide one\ntoken per chain.\nOne hard requirement for all tokens in a single mapping is that they all must have the same number of decimals.\n// Build a token mapping by calling the buildTokenMapping function and passing instances of\n// deployment object into the array. These represent the chainId → address mappings.\nconst mcUSDC = buildTokenMapping([\n deployment(optimism.id, "0x<USDC-ON-OPTIMISM-ADDRESS>"),\n deployment(base.id, "0x<USDC-ON-OPTIMISM-ADDRESS>"),\n]);\nThe Klaster SDK exposes some multichain tokens by default. These are mcUSDC and mcUSDT. They are available to you\nas exported constants. They expose deployments on a lot of blockchains so it's important that you truncate them before\nusage only to blockchains which you use.\nThe default Klaster exported tokens might not fit your project. Please double check the documentation to learn which tokens the Klaster SDK considers to be cannonical and idential to eachother.\n// A lambda which intersects the chains available in the\n// token mapping with the ones available in the multichain client.\n// In general, you should not be using this in a production project.\n// Instead, you should create your own tokenmappings by the method shown\n// above.\nconst intersectTokenAndClients = (\n token: MultichainTokenMapping,\n mcClient: MultichainClient\n) => {\n return token.filter((deployment) =>\n mcClient.chainsRpcInfo\n .map((info) => info.chainId)\n .includes(deployment.chainId)\n );\n};\n \n// Store the intersection of the Klaster provided token and the chains your project is using.\nconst mUSDC = intersectTokenAndClients(mcUSDC, mcClient);\n","title":"Map token deployments across multiple blockchains","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"362":{"href":"/zero-to-hero-klaster-guide#create-a-bridging-plugin","html":"\n

Klaster introduces a concept of Bridging Plugigs. Yoa can think of them as templates, which the Klaster SDK\nuses to encode and execute a bridging action whenever it needs to. Since Klaster is an agnostic protocol and SDK,\nevery function that might require bridging can accept the function of type BridgePlugin as input.

\n

For this tutorial we have prepared a LiFi bridging plugin example.

\n

But in general, what is a Klaster Bridging Plugin?

\n

It's a simple function which provides a data object containing things needed to encode a brdiging transaction such as\nsourceChainId, destinationChainId, sourceToken, destinationToken, amount, etc... and expects an object in return\nwhich tells the Klaster SDK i) which transactions need to be executed ii) how much will be received on destination.

\n

For this tutorial, we can create a LiFi bridging plugin, which will leverage LiFi Aggregation to get us the fastest route\navailable for every transfer. Since Klaster is primarily a user experience oriented framework, the speed of execution is\nparamout!

\n

First, install the LiFi SDK

\n
npm i @lifi/sdk
\n

Then write the plugin:

\n
import { getRoutes, RoutesRequest } from "@lifi/sdk";\nimport { Address, batchTx, BridgePlugin, rawTx } from "klaster-sdk";\nimport { Hex } from "viem";\n \nexport const liFiBrigePlugin: BridgePlugin = async (data) => {\n \n  const routesRequest: RoutesRequest = {\n    fromChainId: data.sourceChainId,\n    toChainId: data.destinationChainId,\n    fromTokenAddress: data.sourceToken,\n    toTokenAddress: data.destinationToken,\n    fromAmount: data.amount.toString(),\n    options: {\n      order: "FASTEST",\n    },\n  };\n \n  const result = await getRoutes(routesRequest);\n  const route = result.routes.at(0)\n \n  if (!route) {\n    throw Error('...');\n  }\n \n  const routeSteps = route.steps.map(step => {\n    if(!step.transactionRequest) { throw Error('...') }\n    const { to, gasLimit, data, value} = step.transactionRequest\n    if(!to || !gasLimit || !data || !value) { throw Error('...') } \n    return rawTx({\n      to: to as Address,\n      gasLimit: BigInt(gasLimit),\n      data: data as Hex,\n      value: BigInt(value)\n    })\n  })\n \n  return {\n    receivedOnDestination: BigInt(route.toAmountMin),\n    txBatch: batchTx(data.sourceChainId, routeSteps)\n  }\n};
\n

It's as simple as that! Now - you Klaster SDK has LiFi support 🥳

\n","isPage":false,"text":"\nKlaster introduces a concept of Bridging Plugigs. Yoa can think of them as templates, which the Klaster SDK\nuses to encode and execute a bridging action whenever it needs to. Since Klaster is an agnostic protocol and SDK,\nevery function that might require bridging can accept the function of type BridgePlugin as input.\nFor this tutorial we have prepared a LiFi bridging plugin example.\nBut in general, what is a Klaster Bridging Plugin?\nIt's a simple function which provides a data object containing things needed to encode a brdiging transaction such as\nsourceChainId, destinationChainId, sourceToken, destinationToken, amount, etc... and expects an object in return\nwhich tells the Klaster SDK i) which transactions need to be executed ii) how much will be received on destination.\nFor this tutorial, we can create a LiFi bridging plugin, which will leverage LiFi Aggregation to get us the fastest route\navailable for every transfer. Since Klaster is primarily a user experience oriented framework, the speed of execution is\nparamout!\nFirst, install the LiFi SDK\nnpm i @lifi/sdk\nThen write the plugin:\nimport { getRoutes, RoutesRequest } from "@lifi/sdk";\nimport { Address, batchTx, BridgePlugin, rawTx } from "klaster-sdk";\nimport { Hex } from "viem";\n \nexport const liFiBrigePlugin: BridgePlugin = async (data) => {\n \n const routesRequest: RoutesRequest = {\n fromChainId: data.sourceChainId,\n toChainId: data.destinationChainId,\n fromTokenAddress: data.sourceToken,\n toTokenAddress: data.destinationToken,\n fromAmount: data.amount.toString(),\n options: {\n order: "FASTEST",\n },\n };\n \n const result = await getRoutes(routesRequest);\n const route = result.routes.at(0)\n \n if (!route) {\n throw Error('...');\n }\n \n const routeSteps = route.steps.map(step => {\n if(!step.transactionRequest) { throw Error('...') }\n const { to, gasLimit, data, value} = step.transactionRequest\n if(!to || !gasLimit || !data || !value) { throw Error('...') } \n return rawTx({\n to: to as Address,\n gasLimit: BigInt(gasLimit),\n data: data as Hex,\n value: BigInt(value)\n })\n })\n \n return {\n receivedOnDestination: BigInt(route.toAmountMin),\n txBatch: batchTx(data.sourceChainId, routeSteps)\n }\n};\nIt's as simple as that! Now - you Klaster SDK has LiFi support 🥳\n","title":"Create a Bridging Plugin","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"363":{"href":"/zero-to-hero-klaster-guide#fetching-a-unified-balance","html":"\n

In order to achieve true chain abstraction, the user should be presented with a unified ERC20 balance across\nall of the chains that the app is using.

\n

For example, in the Klaster AbstraktAAVE Demo app, you can see the unified balance:\n\"Unified\"/

\n

and then the breakdown per chain:

\n\n

In order to achieve this, you can use the Multichain token and Multichain RPC objects from earlier:

\n
const uBalance = await mcClient.getUnifiedErc20Balance({\n  tokenMapping: mUSDC,\n  account: klaster.account,\n});\n \n// Total balance across all used chains, expressed in base units\nuBalance.balance;\n \n// Breakdown of balances across each separate blockchain\nuBalance.breakdown;\n \n// The decimals of the token. In order for tokenMapping to be created,\n// all instances must have the same number of decimals.\nuBalance.decimals;
\n","isPage":false,"text":"\nIn order to achieve true chain abstraction, the user should be presented with a unified ERC20 balance across\nall of the chains that the app is using.\nFor example, in the Klaster AbstraktAAVE Demo app, you can see the unified balance:\n\nand then the breakdown per chain:\n\nIn order to achieve this, you can use the Multichain token and Multichain RPC objects from earlier:\nconst uBalance = await mcClient.getUnifiedErc20Balance({\n tokenMapping: mUSDC,\n account: klaster.account,\n});\n \n// Total balance across all used chains, expressed in base units\nuBalance.balance;\n \n// Breakdown of balances across each separate blockchain\nuBalance.breakdown;\n \n// The decimals of the token. In order for tokenMapping to be created,\n// all instances must have the same number of decimals.\nuBalance.decimals;\n","title":"Fetching a Unified Balance","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"364":{"href":"/zero-to-hero-klaster-guide#encoding-the-bridging--execution-actions","html":"\n

Okay! Finally our entire setup is complete. This is most definitely one of the more complex cases which Klaster\ncovers - a fully chain abstracted app, so the amount of setup is a bit higher. For simpler cases, such as a unified\ndeposit address of one-click checkout flows, a lot of these steps can be omitted.

\n

So, for this demo, we'll say that we want to send the amount we receive from bridging on the destination chain to some other address. This in an intentionally simplistic case, and it could have been solved by just using LiFi bridge function, but for the purposes of this tutorial it just demonstrates how Klaster works.

\n
","isPage":false,"text":"\nOkay! Finally our entire setup is complete. This is most definitely one of the more complex cases which Klaster\ncovers - a fully chain abstracted app, so the amount of setup is a bit higher. For simpler cases, such as a unified\ndeposit address of one-click checkout flows, a lot of these steps can be omitted.\nSo, for this demo, we'll say that we want to send the amount we receive from bridging on the destination chain to some other address. This in an intentionally simplistic case, and it could have been solved by just using LiFi bridge function, but for the purposes of this tutorial it just demonstrates how Klaster works.\n","title":"Encoding the bridging + execution actions","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"365":{"href":"/zero-to-hero-klaster-guide#encoding-the-bridging-operations","html":"

In your own project, you'll be able to encode arbitrarily complex actions across any number of blockchains. For example, in\nthe AAVE case, after a token lands on the destination chain, the supply function is called on the AAVE Smart Contract

Anyways let's continue. The SDK is intelligent enough to calculate on its own the required steps to get some amount of\ntokens on some desired destination chain.

Let's assume a following situation. You have:

and you're trying to call some function on Base with 35 USDC while having zero USDC on Base. What the Klaster\nSDK will do is calculate a route for bridging your tokens:

e.g. take 20 USDC (total balance) from OP, 12 USDC (total balance) from Scroll and 3 USDC (+ additional for what was lost to\nbridge fees when bridging from chains where you took the total balance) from Polygon and bridge it all to Base. Once the funds\narrive to Base - call the desired function there!

For most cases, the SDK will be able to calculate te exact routes for bridging to get your desired outcome. If this is not\npossible, you can always encode them yourself.

The function that does the calculations is called encodeBridgingOps. Simply pass all of the required parameters and as\nan output you'll get a series of steps (EVM Transactions) to be executed on one or more blockchains to get your desired amount\nonto your desired destinationChain

const bridgingOps = await encodeBridgingOps({\n  tokenMapping: mUSDC,\n  account: klaster.account,\n  amount: uBalance.balance - parseUnits("1", uBalance.decimals), // Don't send entire balance\n  bridgePlugin: liFiBrigePlugin,\n  client: mcClient,\n  destinationChainId: base.id,\n  unifiedBalance: uBalance,\n});
","isPage":false,"text":"In your own project, you'll be able to encode arbitrarily complex actions across any number of blockchains. For example, in\nthe AAVE case, after a token lands on the destination chain, the supply function is called on the AAVE Smart ContractAnyways let's continue. The SDK is intelligent enough to calculate on its own the required steps to get some amount of\ntokens on some desired destination chain.Let's assume a following situation. You have:\n10 USDC on Polygon\n20 USDC on Optimism\n12 USDC on Scroll\nand you're trying to call some function on Base with 35 USDC while having zero USDC on Base. What the Klaster\nSDK will do is calculate a route for bridging your tokens:e.g. take 20 USDC (total balance) from OP, 12 USDC (total balance) from Scroll and 3 USDC (+ additional for what was lost to\nbridge fees when bridging from chains where you took the total balance) from Polygon and bridge it all to Base. Once the funds\narrive to Base - call the desired function there!For most cases, the SDK will be able to calculate te exact routes for bridging to get your desired outcome. If this is not\npossible, you can always encode them yourself.The function that does the calculations is called encodeBridgingOps. Simply pass all of the required parameters and as\nan output you'll get a series of steps (EVM Transactions) to be executed on one or more blockchains to get your desired amount\nonto your desired destinationChainconst bridgingOps = await encodeBridgingOps({\n tokenMapping: mUSDC,\n account: klaster.account,\n amount: uBalance.balance - parseUnits("1", uBalance.decimals), // Don't send entire balance\n bridgePlugin: liFiBrigePlugin,\n client: mcClient,\n destinationChainId: base.id,\n unifiedBalance: uBalance,\n});","title":"Encoding the bridging operations","titles":["Zero to Hero Guide: Building a Chain Abstracted Application","Encoding the bridging + execution actions"]},"366":{"href":"/zero-to-hero-klaster-guide#encoding-the-desired-action","html":"

Now we can encode the transfer call on the destination chain. This is done with the call to the Klaster SDK rawTx helper\nfunction:

const sendERC20Op = rawTx({\n  gasLimit: 100000n,\n  to: destChainTokenAddress,\n  data: encodeFunctionData({\n    abi: erc20Abi,\n    functionName: "transfer",\n    args: [recipient, bridgingOps.totalReceivedOnDestination],\n  }),\n});

Note one thing here, the usage of bridgingOps.totalReceivedOnDestination - this is a variable which has calculated\nhow much assets will be available on the destination chain after bridging has completed. If you had zero on the destination\nthen this will be the total amount available. If you had > 0 available then the total available will be

totalReceivedOnDestination + balanceOnDestination

","isPage":false,"text":"Now we can encode the transfer call on the destination chain. This is done with the call to the Klaster SDK rawTx helper\nfunction:const sendERC20Op = rawTx({\n gasLimit: 100000n,\n to: destChainTokenAddress,\n data: encodeFunctionData({\n abi: erc20Abi,\n functionName: "transfer",\n args: [recipient, bridgingOps.totalReceivedOnDestination],\n }),\n});Note one thing here, the usage of bridgingOps.totalReceivedOnDestination - this is a variable which has calculated\nhow much assets will be available on the destination chain after bridging has completed. If you had zero on the destination\nthen this will be the total amount available. If you had > 0 available then the total available will betotalReceivedOnDestination + balanceOnDestination","title":"Encoding the desired action","titles":["Zero to Hero Guide: Building a Chain Abstracted Application","Encoding the bridging + execution actions"]},"367":{"href":"/zero-to-hero-klaster-guide#creating-an-interchain-transaction","html":"

Now, we can use all of the transactions we have created to encode an interchain transaction or an iTx. An iTx is an\nobject containing one or more transactions across one or more blockchains. In our case, the iTx will contain

To create an iTx, we use the helper function buildItx.

const iTx = buildItx({\n  // BridgingOPs + Execution on the destination chain\n  // added as steps to the iTx\n  steps: bridgingOps.steps.concat(singleTx(destinationChainId, sendERC20Op)),\n  // Klaster works with cross-chain gas abstraction. This instructs the Klaster\n  // nodes to take USDC on Optimism as tx fee payment.\n  feeTx: klaster.encodePaymentFee(optimism.id, "USDC"),\n});
\n","isPage":false,"text":"Now, we can use all of the transactions we have created to encode an interchain transaction or an iTx. An iTx is an\nobject containing one or more transactions across one or more blockchains. In our case, the iTx will contain\nAll necessary approve + bridging transactions calculated by the encodeBridgingOps function - on the source chain(s)\nThe send transaction on the destination chain\nTo create an iTx, we use the helper function buildItx.const iTx = buildItx({\n // BridgingOPs + Execution on the destination chain\n // added as steps to the iTx\n steps: bridgingOps.steps.concat(singleTx(destinationChainId, sendERC20Op)),\n // Klaster works with cross-chain gas abstraction. This instructs the Klaster\n // nodes to take USDC on Optimism as tx fee payment.\n feeTx: klaster.encodePaymentFee(optimism.id, "USDC"),\n});\n","title":"Creating an Interchain Transaction","titles":["Zero to Hero Guide: Building a Chain Abstracted Application","Encoding the bridging + execution actions"]},"368":{"href":"/zero-to-hero-klaster-guide#executing-the-interchain-transaction","html":"\n

Now that we have everything we need encoded in the iTx object, we can send it to the Klaster network for execution.

\n
","isPage":false,"text":"\nNow that we have everything we need encoded in the iTx object, we can send it to the Klaster network for execution.\n","title":"Executing the Interchain Transaction","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"369":{"href":"/zero-to-hero-klaster-guide#getting-a-quote","html":"

Executing an Interchain transaction is a two-step process. The first part of the process is getting a quote from the\nKlaster Network. The quote will tell you how much the node wants to charge for the execution of the transaction in the\ntoken which you set in the feeTx field when building an iTx.

To get the quote, call:

const quote = await klaster.getQuote(iTx);\n \n// The amount of USD that the node is willing to execute the iTx for\nquote.tokenValue;
","isPage":false,"text":"Executing an Interchain transaction is a two-step process. The first part of the process is getting a quote from the\nKlaster Network. The quote will tell you how much the node wants to charge for the execution of the transaction in the\ntoken which you set in the feeTx field when building an iTx.To get the quote, call:const quote = await klaster.getQuote(iTx);\n \n// The amount of USD that the node is willing to execute the iTx for\nquote.tokenValue;","title":"Getting a quote","titles":["Zero to Hero Guide: Building a Chain Abstracted Application","Executing the Interchain Transaction"]},"370":{"href":"/zero-to-hero-klaster-guide#signing-the-quote","html":"

If you're satisfied with the quoted execution price, prompt the user to sign the iTx hash. You can get the hash from the\nquote object. By signing the iTx hash you're giving the Klaster Nodes approval to execute the transactions within the\niTx. This is cryptographically verified by smart contracts on every chain where the data is being executed - so the nodes\nare unable to execute anything without the explicit approval from the user.

const signed = await signer.signMessage({\n  message: {\n    raw: quote.itxHash,\n  },\n  account: signerAccount,\n});
","isPage":false,"text":"If you're satisfied with the quoted execution price, prompt the user to sign the iTx hash. You can get the hash from the\nquote object. By signing the iTx hash you're giving the Klaster Nodes approval to execute the transactions within the\niTx. This is cryptographically verified by smart contracts on every chain where the data is being executed - so the nodes\nare unable to execute anything without the explicit approval from the user.If you're using viem - make sure to use the message → raw to sign. If you pass the message directly into the message object,\nyou will get an error that you're using the wrong signature.const signed = await signer.signMessage({\n message: {\n raw: quote.itxHash,\n },\n account: signerAccount,\n});","title":"Signing the quote","titles":["Zero to Hero Guide: Building a Chain Abstracted Application","Executing the Interchain Transaction"]},"371":{"href":"/zero-to-hero-klaster-guide#sending-the-itx-for-execution","html":"

After the user has signed the iTx hash, pass the QuoteResponse together with the signed hash to the execute function.

const result = await klaster.execute(quote, signed)
","isPage":false,"text":"After the user has signed the iTx hash, pass the QuoteResponse together with the signed hash to the execute function.const result = await klaster.execute(quote, signed)","title":"Sending the iTx for execution","titles":["Zero to Hero Guide: Building a Chain Abstracted Application","Executing the Interchain Transaction"]},"372":{"href":"/zero-to-hero-klaster-guide#tracking-the-execution","html":"

After the iTx has been received by the Klaster Network, you will receive a result from the execute function. In that result,\nyou will have the iTx hash. You can go to the Klaster Explorer to check the status of the hash:

https://explorer.klaster.io/details/{iTxHash}

\n","isPage":false,"text":"After the iTx has been received by the Klaster Network, you will receive a result from the execute function. In that result,\nyou will have the iTx hash. You can go to the Klaster Explorer to check the status of the hash:https://explorer.klaster.io/details/{iTxHash}\n","title":"Tracking the execution","titles":["Zero to Hero Guide: Building a Chain Abstracted Application","Executing the Interchain Transaction"]},"373":{"href":"/zero-to-hero-klaster-guide#conclusion","html":"\n

Congrats - you have sucessfully executed your first Interchain Transaction and prepared your project for chain abstraction.

","isPage":false,"text":"\nCongrats - you have sucessfully executed your first Interchain Transaction and prepared your project for chain abstraction.","title":"Conclusion","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"374":{"href":"/accounts/biconomy#initializing-a-biconomy-account","html":"\n

To initialize a Biconomy account, you use the following function

\n
const klaster = await initKlaster({\n  accountInitData: loadBicoV2Account({\n    owner: '0xEOA_OWNER',\n  }),\n  nodeUrl: 'https://node-url',\n});
","isPage":true,"text":"\nTo initialize a Biconomy account, you use the following function\nconst klaster = await initKlaster({\n accountInitData: loadBicoV2Account({\n owner: '0xEOA_OWNER',\n }),\n nodeUrl: 'https://node-url',\n});","title":"Initializing a Biconomy account","titles":[null]},"375":{"href":"/accounts/safe#initializing-a-safe-account","html":"\n

To initialize the Klaster SDK with a Safe account you can use the following function:

\n
const klaster = await initKlaster({\n  accountInitData: loadSafeV141Account({\n    signers: ["0xSIGNER"],\n    threshold: 1n,\n  }),\n  nodeUrl: "https://<node-url>",\n});
\n","isPage":true,"text":"\nTo initialize the Klaster SDK with a Safe account you can use the following function:\nconst klaster = await initKlaster({\n accountInitData: loadSafeV141Account({\n signers: ["0xSIGNER"],\n threshold: 1n,\n }),\n nodeUrl: "https://<node-url>",\n});\nThe signers information is used to derive the account address. If the signers change, you should keep using the initial\nsigners information which was used to create the Safe account.","title":"Initializing a Safe Account","titles":[null]},"376":{"href":"/concepts/bridge-plugins#bridging-plugins","html":"\n

The Klaster SDK enables chain abstracted user experiences by performing the bridging of assets in the background. In order to be\nable to perform bridging actions, the Klaster SDK needs to know how to encode them.

\n

The Klaster Bridging Plugins rely on the fact that most bridges are triggered by a simple call to a smart contract on some\nchain - and as such, can be ecnoded as a series of transactions (e.g. Bridge + Approve). The bridging plugin then\nreturns a series of calls to the blockchain (to be encoded into an InterchainTransaction) and how much the user will\nend up with at the destination chain (after all the bridging and gas fees are paid - this is usually availble information\nbefore bridging.)

\n

In order to do so, you pass it an instance of a BridgePlugin. A BridgePlugin is a simple function of type:

\n
type BridgePlugin = (BridgePluginParams) => BridgePluginResult\n \n// The BridgePluginParams expose all of the information\n// required to encode a bridging action using some existing\n// bridging provider\ntype BridgePluginParams = {\n  sourceChainId: number,\n  destinationChainId: number,\n  account: MutlichainAccount,\n  sourceToken: Address,\n  destinationToken: Address,\n  amount: bigint\n}\n \n// BridgePluginResult tells the Klaster SDK \n// - how much will be received on the destination chain post bridign\n// - which transactions need to be executed to trigger the bridge\ntype BridgePluginResult = {\n  receivedOnDesitnation: bigint,\n  steps: TxBatch[]\n}
\n

An example of a BridgePlugin for Across

\n
export const acrossBridgePlugin: BridgePlugin = async (data) => {\n  // Call Across API to get the bridging fee data, as well as all the other required\n  // inforation about the bridging procedure\n  const feesResponse = await getAcrossSuggestedFees(data);\n \n  // Calculate the amount which you will receive on the destination chain from the\n  // response given by the Across API\n  const outputAmount = data.amount - BigInt(feesResponse.totalRelayFee.total);\n \n  // Encode a transcation approving the Across pool contract to get the\n  // required amount of ERC20 tokens from your accoount.\n  const acrossApproveTx = encodeApproveTx({\n    tokenAddress: data.sourceToken,\n    amount: outputAmount,\n    recipient: feesResponse.spokePoolAddress,\n  });\n \n  // Encode a transaction to call the Across Pool\n  const acrossCallTx = rawTx({\n    to: feesResponse.spokePoolAddress,\n    data: encodeAcrossCallData(data, feesResponse),\n    gasLimit: BigInt(250000),\n  });\n \n  return {\n    // The total amount which the user will receive on the destination chain. This is\n    // used by the SDK to calculate how much funds it can count on after bridging.\n    receivedOnDestination: outputAmount,\n    // The sequence of transactions which need to be executed in order to start the brdging\n    // procedure.\n    txBatch: batchTx(data.sourceChainId, [acrossApproveTx, acrossCallTx]),\n  };\n};\n 
","isPage":true,"text":"\nThe Klaster SDK enables chain abstracted user experiences by performing the bridging of assets in the background. In order to be\nable to perform bridging actions, the Klaster SDK needs to know how to encode them.\nThe Klaster Bridging Plugins rely on the fact that most bridges are triggered by a simple call to a smart contract on some\nchain - and as such, can be ecnoded as a series of transactions (e.g. Bridge + Approve). The bridging plugin then\nreturns a series of calls to the blockchain (to be encoded into an InterchainTransaction) and how much the user will\nend up with at the destination chain (after all the bridging and gas fees are paid - this is usually availble information\nbefore bridging.)\nIn order to do so, you pass it an instance of a BridgePlugin. A BridgePlugin is a simple function of type:\ntype BridgePlugin = (BridgePluginParams) => BridgePluginResult\n \n// The BridgePluginParams expose all of the information\n// required to encode a bridging action using some existing\n// bridging provider\ntype BridgePluginParams = {\n sourceChainId: number,\n destinationChainId: number,\n account: MutlichainAccount,\n sourceToken: Address,\n destinationToken: Address,\n amount: bigint\n}\n \n// BridgePluginResult tells the Klaster SDK \n// - how much will be received on the destination chain post bridign\n// - which transactions need to be executed to trigger the bridge\ntype BridgePluginResult = {\n receivedOnDesitnation: bigint,\n steps: TxBatch[]\n}\nAn example of a BridgePlugin for Across\nexport const acrossBridgePlugin: BridgePlugin = async (data) => {\n // Call Across API to get the bridging fee data, as well as all the other required\n // inforation about the bridging procedure\n const feesResponse = await getAcrossSuggestedFees(data);\n \n // Calculate the amount which you will receive on the destination chain from the\n // response given by the Across API\n const outputAmount = data.amount - BigInt(feesResponse.totalRelayFee.total);\n \n // Encode a transcation approving the Across pool contract to get the\n // required amount of ERC20 tokens from your accoount.\n const acrossApproveTx = encodeApproveTx({\n tokenAddress: data.sourceToken,\n amount: outputAmount,\n recipient: feesResponse.spokePoolAddress,\n });\n \n // Encode a transaction to call the Across Pool\n const acrossCallTx = rawTx({\n to: feesResponse.spokePoolAddress,\n data: encodeAcrossCallData(data, feesResponse),\n gasLimit: BigInt(250000),\n });\n \n return {\n // The total amount which the user will receive on the destination chain. This is\n // used by the SDK to calculate how much funds it can count on after bridging.\n receivedOnDestination: outputAmount,\n // The sequence of transactions which need to be executed in order to start the brdging\n // procedure.\n txBatch: batchTx(data.sourceChainId, [acrossApproveTx, acrossCallTx]),\n };\n};\n ","title":"Bridging Plugins","titles":[null]},"377":{"href":"/concepts/interchain-transaction#interchain-transaction","html":"\n

The InterchainTransaction or iTx is the beating heart of the Klaster protocol. It's an object containing two or more\ntransactions to be executed on one or more blockchain networks - encoded in a merkle tree.

\n","isPage":true,"text":"\nThe InterchainTransaction or iTx is the beating heart of the Klaster protocol. It's an object containing two or more\ntransactions to be executed on one or more blockchain networks - encoded in a merkle tree.\n","title":"Interchain Transaction","titles":[null]},"378":{"href":"/concepts/interchain-transaction#details","html":"\n\n

\"iTx\"/

","isPage":false,"text":"\n\n\nThe leafs of the tree are the transactions contained in the interchain transaction. They define all of the actions which can be\nexecuted by the iTx.\n\n\nThe root hash of the merkle tree is called the Interchain Transcation Hash\n\n\nEvery iTx is uniquely defined by it's iTx hash\n\n\nIn order to execute the iTx, the user signs the iTx hash with their private key and sends the signed hash, togehter with\nthe list of the leaf transactions - to a Klaster Node.\n\n\nThe first transaction in the iTx is always the transaction fee payment transaction.\n\n\n","title":"Details","titles":[null,"Interchain Transaction",null]},"379":{"href":"/concepts/multichain-account#multichain-smart-contract-account","html":"\n

The Klaster account system is built on top of ERC4337 Account Abstraction. Account wise, the main difference between\nKlaster and other solutions is that Klaster tightly couples deployed Smart Contract Account instances across multiple\nblockchains.

\n

Simply put, this means that these accounts, deployed on multiple blockchain networks - have the ability to act as a single\naccount.

\n

Klaster uses the CREATE2 opcode when deploying accounts. However, some blockchains - notably the zkSync ecosystem - don't\nderive the accounts the same way that Ethereum does.

\n

That's why the Klaster SDK uses an internal object called the MutltichainAccount, which holds all of the address deployments\nfor all of the blockchains.

\n

Beyond holding the address deployments, the MultichainAccount object holds the initData - which was the data used to derive\nthe account.

\n","isPage":true,"text":"\nThe Klaster account system is built on top of ERC4337 Account Abstraction. Account wise, the main difference between\nKlaster and other solutions is that Klaster tightly couples deployed Smart Contract Account instances across multiple\nblockchains.\nSimply put, this means that these accounts, deployed on multiple blockchain networks - have the ability to act as a single\naccount.\nKlaster uses the CREATE2 opcode when deploying accounts. However, some blockchains - notably the zkSync ecosystem - don't\nderive the accounts the same way that Ethereum does.\nThat's why the Klaster SDK uses an internal object called the MutltichainAccount, which holds all of the address deployments\nfor all of the blockchains.\nBeyond holding the address deployments, the MultichainAccount object holds the initData - which was the data used to derive\nthe account.\n","title":"Multichain Smart Contract Account","titles":[null]},"380":{"href":"/concepts/multichain-account#deriving-accounts","html":"\n

Several key pieces of information determine which account address will be derived when loading a smart contract account:

\n
    \n
  1. Account vendor (e.g. Biconomy, Safe, ZeroDev, ...)
  2. \n
  3. Factory data (derived from account init parameters, specific for each vendor)
  4. \n
  5. Account blockchain (e.g. ETH, Base, OP, Polygon, AVAX all derive the same, while e.g. zkSync and Abstract derive differently)
  6. \n
\n

The Klaster Node exposes this as a utility endpoint https://<node-url>/v2/address/{VENDOR_ID}/0xFACTORY_DATA

\n

The vendor id is a Klaster defined string, definining every supported account vendor (e.g. SAFE_V141 or BICO_V2), while\nfactory data is encoded for every vendor, according to their standard.

\n

e.g. for Safe, the FactoryData is derived from address[] signers, uint256 threshold, bytes32 salt, while for Biconomy -\nit's derived from address owner, bytes32 salt

","isPage":false,"text":"\nSeveral key pieces of information determine which account address will be derived when loading a smart contract account:\n\nAccount vendor (e.g. Biconomy, Safe, ZeroDev, ...)\nFactory data (derived from account init parameters, specific for each vendor)\nAccount blockchain (e.g. ETH, Base, OP, Polygon, AVAX all derive the same, while e.g. zkSync and Abstract derive differently)\n\nThe Klaster Node exposes this as a utility endpoint https://<node-url>/v2/address/{VENDOR_ID}/0xFACTORY_DATA\nThe vendor id is a Klaster defined string, definining every supported account vendor (e.g. SAFE_V141 or BICO_V2), while\nfactory data is encoded for every vendor, according to their standard.\ne.g. for Safe, the FactoryData is derived from address[] signers, uint256 threshold, bytes32 salt, while for Biconomy -\nit's derived from address owner, bytes32 salt","title":"Deriving accounts","titles":[null,"Multichain Smart Contract Account"]},"381":{"href":"/concepts/multichain-public-client#multichain-public-client","html":"\n

In order to achieve certain functionalities, such as fetching a unified multichain balance or encoding bridging strategies - the\nKlaster SDK must have the ability to read from the blockchains with which your application is interacting with.

\n

To achieve this, the Klaster SDK counts on the MultichainClient object. This object is a simple mapping of rpcUrl to\nchainId. As of version 0.5.2 - the MultichainClient exposes a utility function to read the unified balance of an\nERC20 token (provided by a TokenMapping object).

\n

A multichain public client can be easily built by leveraging the buildMultichainReadonlyClient function.

\n
const mcClient = buildMultichainReadonlyClient([\n  buildRpcInfo(optimism.id, 'https://optimism-rpc'),\n  buildRpcInfo(base.id, 'https://base-rpc'),\n  //... add the rest of the chains\n])
","isPage":true,"text":"\nIn order to achieve certain functionalities, such as fetching a unified multichain balance or encoding bridging strategies - the\nKlaster SDK must have the ability to read from the blockchains with which your application is interacting with.\nTo achieve this, the Klaster SDK counts on the MultichainClient object. This object is a simple mapping of rpcUrl to\nchainId. As of version 0.5.2 - the MultichainClient exposes a utility function to read the unified balance of an\nERC20 token (provided by a TokenMapping object).\nA multichain public client can be easily built by leveraging the buildMultichainReadonlyClient function.\nconst mcClient = buildMultichainReadonlyClient([\n buildRpcInfo(optimism.id, 'https://optimism-rpc'),\n buildRpcInfo(base.id, 'https://base-rpc'),\n //... add the rest of the chains\n])","title":"Multichain Public Client","titles":[null]},"382":{"href":"/concepts/multichain-token-mapping#multichain-token-mapping","html":"\n

Klaster is a multichain first framework, and as such - all objects within it are made to work in a multichain environment. One\nof the core aspects of working with blockchain system is interacting with tokens. In the EVM ecosystem, these are primarily\nERC20 or ERC721 tokens (with certain subtypes which also comply to these two interfaces).

\n

Since the Klaster SDK wishes to achieve things like unified balances, which can be spent from any chain to any chain - we must\nprovide it with a way to map like tokens to eachother.

\n

This is achieved through the use of a simple MultichainTokenMapping object, which simply maps the addresses of a desired token\nacross multiple chains. The way you build a multichain token mapping is the following:

\n
const mcUSDC = buildTokenMapping([\n  deployment(optimism.id, "0x<USDC-ON-OPTIMISM-ADDRESS>"),\n  deployment(base.id, "0x<USDC-ON-OPTIMISM-ADDRESS>"),\n  deployment(arbitrum.id, "0x<USDC-ON-ARBITRUM-ADDRESS>"),\n  //... add rest of the chains\n]);
\n

Then, in a function such as getUnifiedBalance or encodeBridgingData - you simply pass the mcUSDC object and the SDK knows\nhow to handle the token on mutliple blockchains.

\n","isPage":true,"text":"\nKlaster is a multichain first framework, and as such - all objects within it are made to work in a multichain environment. One\nof the core aspects of working with blockchain system is interacting with tokens. In the EVM ecosystem, these are primarily\nERC20 or ERC721 tokens (with certain subtypes which also comply to these two interfaces).\nSince the Klaster SDK wishes to achieve things like unified balances, which can be spent from any chain to any chain - we must\nprovide it with a way to map like tokens to eachother.\nThis is achieved through the use of a simple MultichainTokenMapping object, which simply maps the addresses of a desired token\nacross multiple chains. The way you build a multichain token mapping is the following:\nconst mcUSDC = buildTokenMapping([\n deployment(optimism.id, "0x<USDC-ON-OPTIMISM-ADDRESS>"),\n deployment(base.id, "0x<USDC-ON-OPTIMISM-ADDRESS>"),\n deployment(arbitrum.id, "0x<USDC-ON-ARBITRUM-ADDRESS>"),\n //... add rest of the chains\n]);\nThen, in a function such as getUnifiedBalance or encodeBridgingData - you simply pass the mcUSDC object and the SDK knows\nhow to handle the token on mutliple blockchains.\n","title":"Multichain Token Mapping","titles":[null]},"383":{"href":"/concepts/multichain-token-mapping#notes","html":"\n

Some of the things to note with the MultichainTokenMapping object:

\n","isPage":false,"text":"\nSome of the things to note with the MultichainTokenMapping object:\n\nOnly one token deployment is supported per chain\nAll deployments must have the same number of decimals\n","title":"Notes","titles":[null,"Multichain Token Mapping"]},"384":{"href":"/concepts/unified-balance#unified-balance","html":"\n

A UnifiedBalance object contains the balance of some ERC20 token across multiple blockchains. It can be fetched by calling\nthe getUnifiedErc20Balance function on the MultichainClient object.

\n
type UnifiedBalance = {\n  balance: bigint // total balance across all blockchains\n  decimals: number // the number of decimals of the token for which the unified balance is fetched\n  breakdown: { // breakdown of balances across all queried blockchains\n    balance: bigint,\n    chainId: number\n  }[]\n}
","isPage":true,"text":"\nA UnifiedBalance object contains the balance of some ERC20 token across multiple blockchains. It can be fetched by calling\nthe getUnifiedErc20Balance function on the MultichainClient object.\ntype UnifiedBalance = {\n balance: bigint // total balance across all blockchains\n decimals: number // the number of decimals of the token for which the unified balance is fetched\n breakdown: { // breakdown of balances across all queried blockchains\n balance: bigint,\n chainId: number\n }[]\n}","title":"Unified Balance","titles":[null]},"385":{"href":"/quickstart/gas-abstraction#gas-abstraction-quickstart","html":"\n

Int h

","isPage":true,"text":"\nInt h","title":"Gas abstraction Quickstart","titles":[]}},"dirtCount":0,"index":[["+",{"0":{"364":1},"1":{"365":1,"366":1,"367":1},"2":{"365":1,"366":1,"367":2,"376":1}}],["🥳",{"2":{"362":1}}],["→",{"2":{"361":1,"370":1}}],["quickstart",{"0":{"385":1}}],["quickly",{"2":{"360":1}}],["queried",{"2":{"384":1}}],["quot",{"2":{"81":2,"120":2,"125":4,"129":2,"130":2,"189":12,"276":32,"283":8,"308":4,"311":2,"316":2,"348":2,"358":8,"360":4,"361":4,"362":8,"365":2,"366":2,"367":2,"375":4,"382":6}}],["quoting",{"2":{"23":1,"28":1,"49":1}}],["quoted",{"2":{"225":1,"240":1,"370":1}}],["quoteresponse",{"0":{"238":1},"1":{"239":1,"240":1,"241":1,"242":1,"243":1,"244":1,"245":1,"246":1,"247":1,"248":1,"249":1},"2":{"77":1,"82":3,"83":1,"93":1,"95":2,"238":1,"371":1}}],["quotes",{"2":{"7":1}}],["quote",{"0":{"369":1,"370":1},"2":{"7":2,"43":3,"47":1,"50":1,"76":1,"77":1,"93":3,"98":1,"99":4,"107":1,"110":1,"238":2,"244":1,"369":5,"370":2,"371":1}}],["zerodev",{"2":{"380":1}}],["zero",{"0":{"356":1},"1":{"357":1,"358":1,"359":1,"360":1,"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1},"2":{"356":1,"365":1,"366":1}}],["zksync",{"2":{"234":1,"379":1,"380":1}}],["x",{"2":{"360":3}}],["x19ethereum",{"2":{"348":1}}],["x27",{"2":{"21":2,"24":12,"26":2,"29":8,"44":2,"48":4,"49":1,"55":4,"63":4,"71":1,"72":8,"81":1,"82":4,"88":1,"89":8,"99":8,"108":2,"109":1,"161":1,"169":1,"181":1,"207":4,"234":1,"236":1,"258":1,"282":1,"283":14,"285":1,"286":1,"287":2,"288":4,"294":16,"297":1,"308":8,"324":1,"325":6,"334":14,"339":6,"347":1,"350":1,"351":8,"356":1,"360":2,"361":2,"362":8,"364":1,"365":6,"370":4,"374":4,"377":1,"378":1,"379":2,"380":1,"381":4}}],["$",{"2":{"334":2}}],["js",{"2":{"328":1,"352":1,"356":2}}],["just",{"2":{"308":1,"360":1,"364":2}}],["62",{"2":{"341":1}}],["6",{"2":{"288":1}}],["||",{"2":{"362":3}}],["|",{"2":{"189":2,"276":15,"320":1,"321":1}}],["86",{"2":{"353":1}}],["8",{"2":{"348":1}}],["88",{"2":{"277":1}}],["8453",{"2":{"283":3,"308":2}}],["84",{"2":{"176":1}}],["83",{"2":{"170":1}}],["82",{"2":{"166":1}}],["81",{"2":{"164":1}}],["80",{"2":{"25":1,"172":1}}],["5",{"2":{"381":1}}],["55000",{"2":{"287":1}}],["51",{"2":{"142":1}}],["5000",{"2":{"308":1}}],["50000n",{"2":{"24":1}}],["50",{"2":{"140":1}}],["52",{"2":{"136":1}}],["53",{"2":{"127":1,"319":1}}],["47",{"2":{"329":1}}],["435",{"2":{"309":1}}],["4337",{"2":{"8":1,"143":1,"147":1,"155":2,"197":1,"250":1}}],["4000",{"2":{"283":1}}],["49",{"2":{"138":1}}],["466",{"2":{"111":1}}],["3",{"2":{"365":1}}],["36",{"2":{"303":1}}],["34",{"2":{"275":1}}],["342",{"2":{"84":1}}],["33",{"2":{"121":1}}],["397",{"2":{"51":1}}],["35",{"2":{"30":1,"365":1}}],["h",{"2":{"385":1}}],["holding",{"2":{"379":1}}],["holds",{"2":{"379":2}}],["however",{"2":{"361":1,"379":1}}],["how",{"2":{"67":1,"362":1,"364":1,"366":1,"369":1,"376":4,"382":1}}],["http",{"2":{"358":2,"360":1}}],["https",{"2":{"83":1,"283":2,"334":2,"339":1,"354":1,"356":1,"372":1,"374":1,"375":1,"380":1,"381":2}}],["higher",{"2":{"364":1}}],["highly",{"2":{"360":1}}],["high",{"2":{"254":1}}],["heart",{"2":{"377":1}}],["hex",{"2":{"362":2}}],["hexadecimal",{"2":{"349":1}}],["hero",{"0":{"356":1},"1":{"357":1,"358":1,"359":1,"360":1,"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1},"2":{"356":1}}],["here",{"2":{"48":1,"108":2,"308":1,"356":1,"366":1}}],["hello",{"2":{"351":1}}],["helps",{"2":{"254":1}}],["helper",{"2":{"67":1,"297":1,"310":1,"315":1,"366":1,"367":1}}],["had",{"2":{"366":2}}],["having",{"2":{"365":1}}],["have",{"2":{"279":1,"282":1,"333":1,"360":2,"361":1,"362":1,"363":1,"364":1,"365":1,"367":1,"368":1,"372":1,"373":1,"379":1,"381":1,"383":1}}],["hard",{"2":{"361":1}}],["hacky",{"2":{"360":1}}],["handling",{"2":{"315":1}}],["handled",{"2":{"360":1}}],["handle",{"2":{"109":2,"382":1}}],["handles",{"2":{"43":1}}],["has",{"2":{"181":1,"183":1,"244":1,"248":1,"288":1,"362":1,"366":2,"371":1,"372":1}}],["hasn",{"2":{"161":1}}],["hash",{"2":{"3":2,"43":1,"44":3,"45":1,"48":2,"49":1,"76":2,"77":1,"78":1,"80":1,"81":2,"82":2,"108":2,"109":1,"181":2,"199":1,"221":1,"238":1,"242":1,"370":3,"371":2,"372":2,"378":5}}],["yoa",{"2":{"362":1}}],["yourself",{"2":{"356":1,"365":1}}],["yoursigner",{"2":{"108":1}}],["yourprovider",{"2":{"108":1}}],["your",{"2":{"48":1,"56":1,"64":1,"108":3,"109":1,"308":2,"334":2,"359":1,"361":3,"365":5,"373":2,"376":1,"381":1}}],["you",{"2":{"44":1,"49":1,"56":1,"64":1,"68":1,"81":2,"90":1,"109":1,"339":1,"356":3,"358":1,"359":3,"360":4,"361":11,"362":1,"363":2,"365":6,"366":2,"369":2,"370":7,"372":3,"373":1,"374":1,"375":2,"376":2,"382":2}}],["yet",{"2":{"161":1}}],["yield",{"2":{"9":1}}],["79",{"2":{"178":1}}],["75",{"2":{"168":1,"296":1}}],["7579",{"2":{"6":1}}],["77",{"2":{"158":1}}],["76",{"2":{"41":1,"162":1}}],["74",{"2":{"39":1,"174":1}}],["78",{"2":{"36":1,"160":1}}],["=",{"2":{"24":1,"29":1,"48":4,"72":1,"82":3,"89":1,"99":2,"108":3,"120":1,"125":1,"130":1,"283":3,"288":2,"294":2,"302":1,"308":5,"313":2,"318":1,"325":1,"334":2,"339":2,"351":3,"358":4,"359":2,"360":3,"361":6,"362":8,"363":1,"365":1,"366":1,"367":1,"369":1,"370":1,"371":1,"374":1,"375":1,"376":10,"381":1,"382":1,"384":1}}],["`unified",{"2":{"334":1}}],["`",{"2":{"22":1,"27":1,"40":1,"60":1,"104":1,"137":1,"151":1,"173":1,"223":1,"234":1,"242":1,"244":1,"256":1,"262":1,"286":2,"331":1,"334":1,"348":1}}],["`0x$",{"2":{"22":1,"27":1,"40":1,"60":1,"104":1,"137":1,"151":1,"173":1,"223":1,"234":1,"242":1,"244":1,"256":1,"262":1,"286":2,"331":1,"348":1}}],["ll",{"2":{"364":1,"365":2}}],["leveraging",{"2":{"381":1}}],["leverage",{"2":{"362":1}}],["let",{"2":{"365":2}}],["leaf",{"2":{"378":1}}],["leafs",{"2":{"378":1}}],["learn",{"2":{"361":1}}],["lead",{"2":{"21":1}}],["lands",{"2":{"365":1}}],["lambda",{"2":{"361":1}}],["latest",{"2":{"195":1,"209":1}}],["layer",{"0":{"4":1},"2":{"1":1}}],["loading",{"2":{"380":1}}],["loadsafev141account",{"2":{"375":1}}],["loadbicov2account",{"2":{"358":1,"359":1,"374":1}}],["lost",{"2":{"365":1}}],["lot",{"2":{"361":1,"364":1}}],["looks",{"2":{"356":1}}],["locked",{"2":{"321":1,"325":1}}],["lowerboundtime",{"0":{"205":1},"1":{"206":1},"2":{"205":1}}],["lowerboundtimestap",{"0":{"191":1},"1":{"192":1},"2":{"191":1}}],["log",{"2":{"48":1,"72":1,"82":1,"89":2,"99":1,"120":1,"125":1,"130":1,"283":2,"294":1,"308":1,"325":2,"334":1,"351":1}}],["logic",{"2":{"48":1,"108":2,"308":1}}],["lifibrigeplugin",{"2":{"362":1,"365":1}}],["lifi",{"2":{"362":7,"364":1}}],["liquid",{"2":{"355":5}}],["list",{"2":{"320":1,"378":1}}],["library",{"2":{"320":1}}],["libraries",{"2":{"81":1}}],["like",{"2":{"286":1,"290":1,"328":1,"352":1,"356":1,"360":1,"382":2}}],["link",{"2":{"276":1,"355":9}}],["limits",{"2":{"361":1}}],["limit",{"2":{"159":1,"177":1,"193":1,"287":1}}],["lt",{"2":{"43":1,"45":1,"67":1,"69":1,"76":1,"78":1,"85":1,"86":1,"93":1,"95":1,"103":1,"105":1,"279":1,"281":1,"304":1,"306":1,"320":1,"321":1,"330":1,"332":1,"347":1,"349":1,"360":2,"361":2,"375":1,"380":1,"382":3}}],["l3",{"2":{"11":1}}],["l2",{"2":{"11":1}}],["v141",{"2":{"380":1}}],["vendor",{"2":{"380":6}}],["verified",{"2":{"370":1}}],["verificationgaslimit",{"0":{"177":1},"1":{"178":1},"2":{"177":1}}],["verification",{"2":{"13":1,"171":1,"175":1,"177":1}}],["version",{"0":{"268":1},"1":{"269":1},"2":{"268":1,"361":1,"381":1}}],["versions",{"2":{"11":1}}],["v2",{"2":{"334":2,"380":2}}],["video",{"2":{"356":1}}],["viem",{"0":{"357":1},"2":{"320":1,"326":1,"356":2,"357":1,"358":4,"359":1,"360":1,"362":1,"370":1}}],["visit",{"2":{"57":1,"65":1}}],["void",{"2":{"52":1,"54":1,"59":1,"61":1}}],["variable",{"2":{"366":1}}],["various",{"2":{"10":1,"11":1,"276":1,"361":1}}],["validated",{"2":{"175":1}}],["valid",{"2":{"60":1,"76":1,"333":1}}],["values",{"2":{"90":1,"100":1,"112":2,"122":1,"292":1}}],["value",{"0":{"258":1},"1":{"259":1},"2":{"22":1,"24":2,"27":1,"29":1,"52":1,"53":1,"59":1,"99":1,"119":1,"122":1,"123":1,"124":1,"129":1,"139":1,"153":1,"236":1,"252":1,"258":2,"287":1,"308":1,"362":4}}],["0n",{"2":{"258":1,"287":1}}],["0xsigner",{"2":{"375":1}}],["0xeoa",{"2":{"374":1}}],["0xeb466342c4d449bc9f53a865d5cb90586f405215wrapped",{"2":{"355":1}}],["0xd83c88db3a6ca4a32fff1603b0f7ddce01f5f727bsc",{"2":{"355":1}}],["0xdac17f958d2ee523a2206206994597c13d831ec7optimism10eth0x0000000000000000000000000000000000000000wrapped",{"2":{"355":1}}],["0x4268b8f0b87b6eae5d897996e6b845ddbd99adf3usdc",{"2":{"355":1}}],["0x4200000000000000000000000000000000000006chainlink",{"2":{"355":2}}],["0x9702230a8ea53601f5cd2dc00fdbc13d4df4a8c7usdt",{"2":{"355":1}}],["0x94b008aa00579c1307b0ef2c499ad98a8ce58e58sepolia11155111eth0x0000000000000000000000000000000000000000chainlink",{"2":{"355":1}}],["0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095cusdc",{"2":{"355":1}}],["0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6eusdc",{"2":{"355":1}}],["0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7chainlink",{"2":{"355":2}}],["0xb1d4538b4571d411f07960ef2838ce337fe1e80eavalanche",{"2":{"355":1}}],["0xb0897686c545045afc77cf20ec7a532e3120e0f1usdc0x3c499c542cef5e3811e1192ce70d8cc03d5c3359usdc",{"2":{"355":1}}],["0xfactory",{"2":{"380":1}}],["0xf610a9dfb7c89644979b4a0f27063e9e7d7cda32bnb",{"2":{"355":1}}],["0xf55bec9cafdbe8730f096aa55dad6d22d44099dfwrapped",{"2":{"355":1}}],["0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9arbitrum",{"2":{"355":1}}],["0xf97f4df75117a78c1a5a0dbb814af92458539fb4usd",{"2":{"355":1}}],["0x548c6944cba02b9d1c0570102c89de64d258d3acusd",{"2":{"355":1}}],["0x5947bb275c521040051d82396192181b413227a3usd",{"2":{"355":1}}],["0x5979d7b546e38e414f7e9822514be443a4800529tether",{"2":{"355":1}}],["0x514910771af9ca656af840dff83e8264ecf986causd",{"2":{"355":1}}],["0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664tether",{"2":{"355":1}}],["0xaf88d065e77c8cc2239327c5edb3a432268e5831wrapped",{"2":{"355":1}}],["0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48wrapped",{"2":{"355":1}}],["0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",{"2":{"288":1,"294":2,"334":1}}],["0x88fb150bdc53a65fe94dea0c9ba0a6daf8c6e196usdc0x833589fcd6edb6e08f4c7c32d4f71b54bda02913usdc",{"2":{"355":1}}],["0x8ac76a51cc950d9822d68b83fe1ad97b32cd580dusdc",{"2":{"355":1}}],["0x82af49447d8a07e3bd95bd0d56f35241523fbab1chainlink",{"2":{"355":1}}],["0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",{"2":{"283":1,"308":1}}],["0xc1cba3fcea344f92d9239c08c0568f6f2f0ee452",{"2":{"355":1}}],["0xc7198437980c041c805a1edcba50c1ce5db95118scroll534352eth0x0000000000000000000000000000000000000000wrapped",{"2":{"355":1}}],["0xc2132d05d31c914a87c6611c10748aeb04b58e8farbitrum",{"2":{"355":1}}],["0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2chainlink",{"2":{"355":1}}],["0x3a58a54c066fdc0f2d55fc9c89f0415c92ebf3c4tether",{"2":{"355":1}}],["0x350a791bfc2c21f9ed5d10980dad2e2638ffa7f6usd",{"2":{"355":1}}],["0x1f32b1c2345538c0c6f582fcb022739c4a194ebbtether",{"2":{"355":1}}],["0x1234567890123456789012345678901234567890",{"2":{"308":1}}],["0x779877a7b0d9e8603169ddbd7836e478b4624789polygon137matic0x0000000000000000000000000000000000000000wrapped",{"2":{"355":1}}],["0x7f5c764cbc14f9669b88837ca1490cca17c31607wrapped",{"2":{"355":1}}],["0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0tether",{"2":{"355":1}}],["0x742d35cc6634c0532925a3b844bc454e4438f44e",{"2":{"63":1,"288":1,"339":1,"351":1}}],["0x06efdbff2a14a7c8e15944d1f4a48f9f95f663a4tether",{"2":{"355":1}}],["0x063b3184a74c510b5c6f5bbd122cc19689e0c706",{"2":{"334":1}}],["0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270chainlink",{"2":{"355":1}}],["0x0b2c639c533813f4aa9d7837caf62653d097ff85usd",{"2":{"355":1}}],["0x0b2c639c533813f4aa9d7837caf62653d097ff85",{"2":{"283":1,"294":2,"308":1,"334":1}}],["0x2791bca1f2de4661ed88a30c99a7a9449aa84174staked",{"2":{"355":1}}],["0x2791bca1f2de4661ed88a30c99a7a9449aa84174",{"2":{"294":2}}],["0x",{"2":{"24":5,"29":3,"44":1,"99":2,"108":1,"283":1,"294":1,"361":2,"382":3}}],["0",{"2":{"9":1,"118":1,"129":1,"130":1,"355":5,"360":1,"362":1,"366":1,"381":1}}],["go",{"2":{"372":1}}],["guide",{"0":{"356":1},"1":{"357":1,"358":1,"359":1,"360":1,"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1}}],["guaranteeing",{"2":{"219":1}}],["guarantees",{"2":{"4":1,"240":1}}],["giving",{"2":{"370":1}}],["given",{"2":{"119":1,"279":1,"330":1,"345":1,"376":1}}],["github",{"2":{"354":1}}],["general",{"2":{"361":1,"362":1}}],["generation",{"2":{"117":1}}],["generating",{"2":{"112":1}}],["generateprivatekey",{"2":{"358":2}}],["generated",{"2":{"126":1,"219":1,"234":1,"236":1,"240":1,"304":1}}],["generates",{"2":{"117":1,"128":1,"290":1}}],["generate",{"2":{"112":1,"304":1}}],["getacrosssuggestedfees",{"2":{"376":1}}],["getaddresses",{"2":{"359":1}}],["getunifiederc20balance",{"2":{"363":1,"384":1}}],["getunifiedbalance",{"0":{"330":1},"1":{"331":1,"332":1,"333":1,"334":1,"335":1},"2":{"290":1,"294":1,"295":1,"330":1,"334":2,"382":1}}],["getroutes",{"2":{"362":2}}],["get",{"2":{"99":1,"356":1,"360":1,"362":1,"365":4,"369":1,"370":2,"376":2}}],["getpaymenttoken",{"2":{"74":1}}],["getmultichainaccount",{"0":{"85":1},"1":{"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1},"2":{"74":1,"85":1,"89":1}}],["getquote",{"0":{"93":1},"1":{"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1},"2":{"50":1,"82":1,"83":1,"93":1,"99":1,"110":1,"369":1}}],["getting",{"0":{"369":1},"2":{"43":1,"360":1,"369":1}}],["gt",{"2":{"43":1,"45":1,"48":1,"67":1,"69":1,"76":1,"78":1,"85":1,"86":1,"93":1,"95":1,"103":1,"105":1,"108":2,"279":1,"281":1,"304":1,"306":1,"308":1,"320":1,"321":1,"330":1,"332":1,"347":1,"349":1,"360":3,"361":5,"362":2,"366":1,"375":1,"376":2,"380":1,"382":3}}],["g",{"2":{"11":1,"49":1,"68":1,"258":1,"286":1,"320":1,"334":2,"347":1,"358":1,"365":1,"376":1,"380":5}}],["gaslimit",{"0":{"254":1},"1":{"255":1},"2":{"24":2,"29":1,"99":1,"254":1,"287":1,"308":1,"362":4,"366":1,"376":1}}],["gas",{"0":{"8":1,"266":1,"355":1,"385":1},"1":{"267":1},"2":{"8":1,"16":1,"21":1,"133":1,"135":1,"141":1,"147":1,"159":1,"163":1,"165":1,"171":1,"177":1,"193":1,"254":2,"266":1,"287":1,"367":1,"376":1}}],["would",{"2":{"361":1}}],["works",{"2":{"356":2,"361":1,"364":1,"367":1}}],["work",{"2":{"328":2,"352":2,"382":1}}],["working",{"2":{"297":1,"310":1,"315":2,"361":1,"382":1}}],["wrong",{"2":{"370":1}}],["write",{"2":{"360":1,"362":1}}],["wrapped",{"2":{"355":2}}],["wbnb",{"2":{"276":1,"355":1}}],["wmatic",{"2":{"276":1,"355":1}}],["we",{"2":{"356":1,"359":1,"360":1,"362":2,"364":3,"366":1,"367":3,"368":3,"382":1}}],["web3",{"2":{"320":1,"328":1,"347":1,"352":1,"356":1,"359":1}}],["wei",{"2":{"286":1}}],["weth",{"2":{"276":1,"355":5}}],["well",{"2":{"31":1,"93":1,"361":1,"376":1}}],["wavax",{"2":{"276":1,"355":1}}],["way",{"2":{"234":1,"310":1,"315":1,"360":1,"379":1,"382":2}}],["was",{"2":{"189":1,"197":1,"365":1,"375":1,"379":1}}],["wants",{"2":{"145":1,"369":1}}],["want",{"2":{"122":1,"364":1}}],["waiting",{"2":{"189":1}}],["wait",{"2":{"109":1}}],["wallet",{"2":{"10":2,"22":1,"27":1,"59":2,"60":2,"69":1,"73":1,"77":1,"82":1,"91":1,"320":3,"321":2,"325":4,"327":1,"328":1,"348":1,"352":1,"358":1}}],["wallets",{"2":{"6":1,"12":1,"250":1}}],["wsteth",{"2":{"68":1,"276":1,"355":5}}],["why",{"2":{"379":1}}],["while",{"2":{"356":1,"365":1,"380":3}}],["which",{"2":{"22":1,"23":1,"27":1,"67":1,"68":1,"135":1,"137":1,"149":1,"151":1,"185":1,"191":1,"195":1,"203":1,"205":1,"209":1,"246":1,"290":1,"331":1,"358":2,"361":6,"362":5,"364":1,"366":1,"369":1,"375":1,"376":4,"378":1,"379":2,"380":1,"381":1,"382":3,"384":1}}],["what",{"2":{"356":1,"362":1,"365":2}}],["who",{"2":{"122":1}}],["where",{"2":{"22":1,"27":1,"69":1,"135":1,"149":1,"189":1,"234":1,"286":1,"291":1,"292":1,"365":1,"370":1}}],["whenever",{"2":{"362":1}}],["when",{"2":{"9":1,"16":1,"21":1,"26":1,"53":1,"126":1,"238":1,"285":1,"297":1,"310":1,"315":1,"356":1,"358":2,"360":1,"361":1,"365":1,"369":1,"379":1,"380":1}}],["wise",{"2":{"379":1}}],["wishes",{"2":{"382":1}}],["wish",{"2":{"44":1,"68":1,"360":1}}],["widely",{"2":{"361":1}}],["window",{"2":{"324":1,"358":1}}],["willing",{"2":{"163":1,"165":1,"369":1}}],["will",{"2":{"21":1,"22":1,"26":1,"27":1,"52":1,"56":1,"59":1,"64":1,"69":1,"109":1,"135":2,"141":1,"149":1,"173":1,"191":1,"195":1,"203":1,"207":2,"246":1,"285":1,"286":1,"308":1,"328":1,"348":1,"352":1,"356":3,"358":1,"359":1,"360":2,"361":1,"362":2,"365":2,"366":3,"367":1,"369":1,"370":1,"372":2,"376":4,"380":1}}],["without",{"2":{"328":1,"352":1,"370":1}}],["within",{"2":{"112":1,"201":1,"248":1,"370":1,"382":1}}],["with",{"2":{"1":1,"6":1,"10":1,"13":1,"22":1,"27":1,"31":2,"44":2,"52":1,"53":1,"59":1,"76":1,"85":1,"88":1,"109":2,"139":1,"141":1,"153":1,"236":1,"250":1,"258":1,"285":1,"297":2,"310":1,"315":2,"320":1,"321":1,"328":1,"336":2,"339":1,"347":2,"348":2,"352":1,"356":2,"359":2,"360":2,"361":3,"363":1,"365":1,"366":1,"367":1,"370":1,"371":1,"375":1,"376":1,"378":2,"381":2,"382":4,"383":1}}],["npm",{"2":{"357":1,"362":1}}],["n",{"2":{"348":1}}],["null",{"2":{"281":1,"307":1}}],["numbers",{"2":{"282":1,"333":1}}],["number",{"2":{"22":1,"27":1,"68":1,"104":1,"118":1,"135":1,"149":1,"203":1,"205":1,"209":1,"279":1,"286":1,"291":1,"298":1,"300":1,"332":1,"343":1,"361":1,"363":1,"365":1,"376":2,"383":1,"384":3}}],["namechain",{"2":{"355":1}}],["namedparameters",{"2":{"279":1,"280":1}}],["native",{"2":{"258":1}}],["non",{"2":{"358":1}}],["nonce",{"0":{"167":1},"1":{"168":1},"2":{"167":1}}],["now",{"2":{"288":1,"339":1,"362":1,"366":1,"367":1,"368":1}}],["no",{"2":{"169":1,"307":1,"321":1,"324":1,"325":1,"333":1}}],["notably",{"2":{"379":1}}],["nothing",{"2":{"361":1}}],["not",{"2":{"56":1,"64":1,"71":1,"283":1,"307":1,"328":1,"350":1,"352":1,"361":2,"365":1}}],["notes",{"0":{"383":1}}],["note",{"0":{"56":1,"64":1,"73":1,"90":1,"100":1,"328":1,"352":1},"2":{"360":1,"366":1,"383":1}}],["nodeurl",{"0":{"274":1},"2":{"274":1,"339":1,"359":1,"374":1,"375":1}}],["node",{"0":{"223":1,"244":1,"262":1},"1":{"224":1,"245":1,"263":1},"2":{"7":4,"13":1,"16":1,"23":1,"28":1,"88":1,"93":1,"98":1,"143":1,"179":1,"183":1,"189":1,"217":1,"219":1,"223":2,"238":2,"240":1,"244":2,"248":1,"262":1,"328":1,"339":1,"352":1,"359":1,"369":2,"374":1,"375":1,"378":1,"380":2}}],["nodes",{"0":{"7":1},"2":{"4":1,"7":1,"8":1,"9":1,"12":1,"360":1,"367":1,"370":2}}],["needs",{"2":{"362":1,"376":1}}],["need",{"2":{"90":1,"359":1,"360":2,"362":1,"368":1,"376":2}}],["needed",{"2":{"16":1,"362":1}}],["necessary",{"2":{"44":1,"77":1,"83":1,"133":1,"287":1,"304":1,"367":1}}],["new",{"0":{"18":1,"33":1,"114":1},"1":{"19":1,"34":1,"35":1,"36":1,"115":1},"2":{"18":1,"33":1,"53":1,"60":1,"114":1,"336":1,"338":1}}],["neutral",{"2":{"10":1}}],["network",{"2":{"4":1,"47":1,"76":1,"80":1,"133":1,"135":1,"149":2,"185":1,"203":1,"286":1,"288":1,"324":1,"343":1,"368":1,"369":1,"372":1}}],["networks",{"2":{"1":1,"4":1,"13":1,"85":1,"232":1,"234":1,"276":1,"287":1,"377":1,"379":1}}],["20",{"2":{"365":2}}],["2000n",{"2":{"24":1}}],["21000",{"2":{"283":1}}],["21000n",{"2":{"24":1,"29":1,"99":1}}],["213",{"2":{"210":1}}],["211",{"2":{"208":1}}],["214",{"2":{"206":1}}],["212",{"2":{"204":1}}],["24",{"2":{"154":1}}],["235",{"2":{"259":1}}],["234",{"2":{"257":1}}],["237",{"2":{"255":1}}],["236",{"2":{"253":1}}],["23",{"2":{"152":1}}],["272",{"2":{"267":1}}],["27",{"2":{"150":1}}],["266",{"2":{"269":1}}],["268",{"2":{"265":1}}],["267",{"2":{"263":1}}],["26",{"2":{"148":1}}],["254",{"2":{"284":1}}],["250000",{"2":{"376":1}}],["25000",{"2":{"283":1}}],["259",{"2":{"237":1}}],["258",{"2":{"235":1}}],["25",{"2":{"146":1}}],["282",{"2":{"102":1}}],["227",{"2":{"75":1}}],["2",{"0":{"4":1},"2":{"120":2,"355":5,"381":1}}],["rpcs",{"2":{"360":2}}],["rpc",{"0":{"360":1},"2":{"360":4,"361":1,"363":1,"381":2}}],["rpcurls",{"2":{"360":1}}],["rpcurl",{"2":{"283":2,"331":1,"334":2,"360":1,"381":1}}],["rabby",{"2":{"358":1}}],["rawtx",{"2":{"288":2,"362":2,"366":2,"376":1}}],["rawtransactions",{"2":{"297":1}}],["rawtransaction",{"0":{"250":1},"1":{"251":1,"252":1,"253":1,"254":1,"255":1,"256":1,"257":1,"258":1,"259":1},"2":{"22":1,"27":1,"207":1,"250":1,"285":2,"287":2,"298":2,"301":1,"306":1,"308":1,"315":3,"316":2,"317":2}}],["raw",{"2":{"207":1,"250":1,"370":2}}],["routesteps",{"2":{"362":2}}],["routes",{"2":{"362":1,"365":1}}],["routesrequest",{"2":{"362":4}}],["route",{"2":{"179":1,"217":1,"362":5,"365":1}}],["routing",{"2":{"8":1}}],["root",{"2":{"3":1,"378":1}}],["review",{"2":{"354":1}}],["revert",{"2":{"9":1}}],["rejects",{"2":{"350":1}}],["reason",{"2":{"340":1}}],["read",{"2":{"381":2}}],["readonly",{"0":{"360":1}}],["readable",{"2":{"310":1}}],["ready",{"2":{"287":1,"338":1}}],["receive",{"2":{"364":1,"372":1,"376":2}}],["receivedondesitnation",{"2":{"376":1}}],["receivedondestination",{"2":{"362":1,"376":1}}],["received",{"2":{"99":1,"362":1,"372":1,"376":1}}],["receiving",{"2":{"286":1}}],["recipient",{"2":{"256":1,"285":1,"286":1,"288":1,"366":1,"376":1}}],["rely",{"2":{"376":1}}],["relevant",{"2":{"189":1}}],["related",{"2":{"133":1}}],["reference",{"2":{"181":1,"359":1}}],["refunds",{"0":{"8":1},"2":{"8":1}}],["require",{"2":{"362":1}}],["requirement",{"2":{"361":1}}],["requires",{"0":{"326":1},"2":{"328":1,"347":1,"352":1}}],["required",{"2":{"93":1,"95":1,"201":1,"356":1,"365":2,"376":3}}],["requestaddresses",{"2":{"359":1}}],["request",{"2":{"350":1}}],["requested",{"2":{"281":1}}],["requests",{"2":{"7":1,"238":1}}],["retrieves",{"2":{"85":1,"320":1}}],["retrieving",{"2":{"71":1}}],["returned",{"2":{"77":1,"179":1,"183":1,"217":1,"238":1,"244":1}}],["return",{"2":{"44":1,"48":1,"49":1,"108":1,"308":1,"360":1,"361":1,"362":3,"376":1}}],["returns",{"0":{"19":1,"23":1,"28":1,"35":1,"45":1,"54":1,"61":1,"69":1,"78":1,"86":1,"95":1,"105":1,"115":1,"119":1,"124":1,"129":1,"281":1,"287":1,"292":1,"299":1,"306":1,"312":1,"317":1,"321":1,"332":1,"338":1,"344":1,"349":1},"1":{"300":1,"301":1},"2":{"310":1,"315":1,"320":1,"336":1,"376":1}}],["re",{"2":{"49":1,"81":1,"109":1,"356":1,"361":1,"365":1,"370":4}}],["remarks",{"0":{"49":1,"81":1,"109":1,"126":1}}],["rest",{"2":{"381":1,"382":1}}],["result",{"2":{"48":2,"52":1,"59":1,"108":1,"179":1,"334":3,"362":2,"371":1,"372":2}}],["resolved",{"2":{"345":1}}],["resolvetoken",{"0":{"342":1},"1":{"343":1,"344":1,"345":1,"346":1},"2":{"342":1}}],["resolver",{"2":{"277":1,"346":1}}],["resolve",{"2":{"74":1,"343":1}}],["resolves",{"2":{"45":1,"69":1,"78":1,"86":1,"95":1,"105":1,"281":1,"306":1,"321":1,"332":1,"342":1,"344":1,"349":1}}],["resolving",{"2":{"44":1}}],["responsible",{"2":{"223":1}}],["responsibilities",{"2":{"7":1}}],["response",{"2":{"76":2,"77":2,"105":1,"179":1,"217":1,"376":1}}],["responding",{"2":{"7":1}}],["reduced",{"2":{"12":1}}],["replay",{"2":{"167":1}}],["represent",{"2":{"361":2}}],["represents",{"2":{"133":1,"143":1,"145":1,"155":1,"179":1,"183":1,"201":1,"217":1,"232":1,"238":1,"248":1,"250":1,"276":1}}],["representing",{"2":{"23":1,"68":1,"129":1,"187":1,"230":1}}],["represented",{"2":{"3":1,"254":1,"258":1}}],["reputation",{"2":{"7":1}}],["uint256",{"2":{"380":1}}],["ubalance",{"2":{"363":4,"365":3}}],["url",{"2":{"359":1,"360":2,"374":1,"375":1,"380":1}}],["utf",{"2":{"348":1}}],["utility",{"2":{"31":1,"112":1,"380":1,"381":1}}],["utilizes",{"2":{"8":1}}],["utils",{"2":{"25":1,"30":1,"121":1,"127":1,"131":1,"277":1,"284":1,"289":2,"296":1,"303":1,"309":1,"314":1,"319":1,"329":2,"335":1,"346":1,"353":2}}],["up",{"2":{"376":1}}],["upperboundtime",{"0":{"209":1},"1":{"210":1},"2":{"209":1}}],["upperboundtimestamp",{"0":{"195":1},"1":{"196":1},"2":{"195":1}}],["updated",{"2":{"85":1}}],["updates",{"2":{"52":1,"59":1}}],["unable",{"2":{"370":1}}],["underlying",{"2":{"360":1}}],["understand",{"2":{"56":1,"64":1}}],["undefined",{"2":{"320":1,"321":2,"324":1}}],["unchanged",{"2":{"310":1,"312":1,"315":1,"317":1}}],["unifiedbalance",{"2":{"365":1,"384":2}}],["unifiedbalanceresult",{"2":{"330":1,"332":1}}],["unified",{"0":{"363":1,"384":1},"2":{"234":1,"284":1,"296":1,"309":1,"334":2,"335":1,"360":1,"363":2,"364":1,"381":2,"382":1,"384":1}}],["units",{"2":{"363":1}}],["unit",{"2":{"108":1,"286":1}}],["uniquely",{"2":{"378":1}}],["uniquesaltvalue123",{"2":{"55":1}}],["uniquesalt",{"2":{"24":1,"29":1}}],["unique",{"2":{"3":1,"22":1,"27":1,"53":2,"112":1,"126":1,"139":2,"153":2,"167":1,"181":1,"199":1,"221":1,"234":1,"236":2,"242":1}}],["unexpectedly",{"2":{"254":1}}],["unexpected",{"2":{"71":1}}],["usually",{"2":{"376":1}}],["us",{"2":{"362":1}}],["usage",{"2":{"361":1,"366":1}}],["usign",{"2":{"358":1}}],["using",{"2":{"49":1,"77":1,"81":2,"85":1,"109":1,"126":1,"279":1,"295":1,"320":1,"336":1,"347":1,"360":1,"361":3,"363":1,"364":1,"370":2,"375":1,"376":1}}],["usd0x55d398326f99059ff775485246999027b3197955base8453eth0x0000000000000000000000000000000000000000wrapped",{"2":{"355":1}}],["usd",{"2":{"276":1,"355":6,"369":1}}],["usdt",{"2":{"276":1,"355":6}}],["usdcmapping",{"2":{"294":3,"334":2}}],["usdc",{"2":{"68":1,"72":1,"276":1,"283":2,"288":3,"294":1,"308":2,"334":2,"355":6,"361":4,"365":8,"367":2,"382":3}}],["uses",{"2":{"73":1,"90":1,"100":1,"304":1,"347":1,"358":1,"362":1,"379":2}}],["used",{"2":{"12":1,"22":1,"27":1,"31":2,"50":2,"52":2,"53":1,"59":2,"60":1,"67":1,"68":1,"69":3,"74":2,"83":1,"85":1,"86":1,"89":1,"101":2,"110":3,"112":1,"139":1,"141":1,"147":1,"153":1,"181":1,"225":1,"236":1,"246":1,"254":1,"276":1,"285":1,"290":1,"294":1,"297":1,"356":1,"358":1,"363":1,"375":2,"376":1,"379":1}}],["use",{"0":{"11":1},"2":{"90":1,"122":2,"258":1,"281":1,"313":1,"338":1,"339":1,"356":1,"358":1,"359":2,"360":2,"361":2,"363":1,"367":2,"370":1,"374":1,"375":1,"382":1}}],["userophash",{"0":{"199":1},"1":{"200":1},"2":{"199":1}}],["useroperations",{"2":{"248":1}}],["useroperation",{"2":{"155":1,"175":1,"197":1,"201":1}}],["userop",{"0":{"197":1},"1":{"198":1},"2":{"8":1,"21":2,"23":1,"24":1,"26":2,"28":1,"29":1,"149":1,"185":1,"189":1,"191":1,"193":1,"195":1,"197":1,"199":1,"248":1}}],["userops",{"0":{"230":1,"248":1},"1":{"231":1,"249":1},"2":{"3":1,"9":1,"16":2,"230":1,"248":1}}],["users",{"2":{"1":1,"11":1,"12":1,"122":1}}],["user",{"2":{"1":1,"7":2,"16":1,"100":1,"133":1,"141":1,"143":2,"145":1,"155":1,"183":1,"230":1,"238":2,"250":1,"324":1,"347":1,"348":1,"350":1,"362":1,"363":1,"370":2,"371":1,"376":3,"378":1}}],["mcusdt",{"2":{"361":1}}],["mcusdc",{"2":{"361":3,"382":2}}],["mcclient",{"2":{"360":2,"361":3,"363":1,"365":1,"381":1}}],["might",{"2":{"359":1,"361":1,"362":1}}],["minimal",{"2":{"201":1}}],["mysuperuniquevalue",{"2":{"125":2}}],["most",{"2":{"364":1,"365":1,"376":1}}],["mostly",{"2":{"234":1}}],["model",{"2":{"179":1,"183":1,"201":1,"217":1,"232":1,"238":1}}],["module",{"0":{"6":1},"2":{"6":1}}],["more",{"2":{"49":1,"57":1,"65":1,"310":1,"315":1,"364":1,"365":1,"367":2,"377":2}}],["mutliple",{"2":{"382":1}}],["mutlichainaccount",{"2":{"376":1}}],["mutltichainaccount",{"2":{"379":1}}],["much",{"2":{"362":1,"366":1,"369":1,"376":3}}],["musdc",{"2":{"361":1,"363":1,"365":1}}],["must",{"2":{"49":1,"81":1,"359":1,"361":1,"363":1,"381":1,"382":1,"383":1}}],["multi",{"2":{"101":1}}],["multichainclient",{"2":{"361":1,"381":2,"384":1}}],["multichaintokenmapping",{"2":{"361":2,"382":1,"383":1}}],["multichainaddress",{"2":{"308":3}}],["multichainaccount",{"0":{"232":1},"1":{"233":1,"234":1,"235":1,"236":1,"237":1},"2":{"85":1,"86":2,"232":1,"379":1}}],["multichain",{"0":{"8":1,"360":1,"379":1,"381":1,"382":1},"1":{"380":1,"383":1},"2":{"13":1,"52":2,"59":2,"67":1,"69":1,"71":1,"74":1,"85":2,"86":1,"89":1,"103":1,"137":1,"139":1,"143":1,"151":1,"153":1,"189":1,"232":1,"234":1,"360":1,"361":3,"363":2,"381":2,"382":3}}],["multiple",{"0":{"361":1},"2":{"1":1,"3":1,"4":1,"8":1,"16":1,"21":2,"85":1,"103":1,"117":1,"181":1,"207":1,"232":1,"238":1,"279":1,"290":1,"294":1,"304":2,"330":1,"359":1,"361":1,"379":2,"382":1,"384":1}}],["made",{"2":{"382":1}}],["maps",{"2":{"382":1}}],["map",{"0":{"361":1},"2":{"360":1,"361":2,"362":1,"382":1}}],["mappings",{"2":{"361":2}}],["mapping",{"0":{"382":1},"1":{"383":1},"2":{"290":1,"294":3,"295":1,"331":2,"333":1,"334":2,"361":3,"381":1,"382":1}}],["major",{"2":{"356":1}}],["maxgaslimit",{"0":{"193":1},"1":{"194":1},"2":{"193":1}}],["maxpriorityfeepergas",{"0":{"165":1},"1":{"166":1},"2":{"165":1}}],["maxfeepergas",{"0":{"163":1},"1":{"164":1},"2":{"163":1}}],["maximum",{"2":{"147":1,"163":1,"165":1,"193":1,"254":1}}],["managed",{"2":{"126":1,"167":1}}],["mainnet",{"2":{"108":1,"234":1,"283":2,"288":1,"294":1,"308":1,"334":2}}],["main",{"2":{"103":1,"157":1,"159":1,"356":1,"379":1}}],["maintain",{"2":{"12":1,"126":1}}],["make",{"2":{"73":1,"173":1,"370":1}}],["making",{"2":{"49":1}}],["matic",{"2":{"68":1,"276":1,"355":2}}],["may",{"2":{"47":1,"62":1,"71":1,"80":1,"81":1,"88":1,"98":1,"107":1,"189":1}}],["masteraddress",{"0":{"40":1,"273":1},"1":{"41":1},"2":{"40":1,"59":1,"100":1,"273":1,"339":1}}],["master",{"2":{"22":1,"27":1,"59":2,"60":1,"64":1,"69":1,"73":1,"91":1,"354":1}}],["masterwallet",{"0":{"137":1,"151":1},"1":{"138":1,"152":1},"2":{"21":1,"22":2,"26":2,"27":2,"69":1,"85":2,"90":1,"137":1,"139":1,"151":1,"153":1}}],["means",{"2":{"379":1}}],["messages",{"2":{"358":1}}],["message",{"2":{"308":1,"334":1,"347":2,"348":4,"351":3,"370":4}}],["met",{"2":{"189":1}}],["method",{"2":{"21":1,"26":1,"49":1,"77":1,"81":2,"109":1,"117":1,"122":1,"347":1,"361":1}}],["methods",{"0":{"20":1,"42":1,"116":1},"1":{"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"108":1,"109":1,"110":1,"111":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1},"2":{"16":1,"112":1}}],["metamask",{"2":{"320":1,"328":1,"347":1,"352":1,"358":1}}],["meta",{"0":{"8":1},"2":{"8":1}}],["merkle",{"2":{"3":2,"81":1,"377":1,"378":1}}],["pieces",{"2":{"380":1}}],["plugigs",{"2":{"362":1}}],["plugins",{"0":{"376":1},"2":{"376":1}}],["plugin",{"0":{"362":1},"2":{"362":4,"376":1}}],["please",{"2":{"360":1,"361":1}}],["placeholder",{"2":{"308":1}}],["pdf",{"2":{"354":2}}],["put",{"2":{"379":1}}],["purposes",{"2":{"364":1}}],["purpose",{"2":{"310":1,"315":1}}],["public",{"0":{"381":1},"2":{"13":1,"360":2,"381":1}}],["peg",{"2":{"355":1}}],["pending",{"2":{"189":2}}],["pertaining",{"2":{"356":1}}],["personal",{"2":{"347":1}}],["personalsign",{"2":{"49":1,"77":1,"81":1,"82":1}}],["permission",{"2":{"324":1}}],["per",{"2":{"163":1,"165":1,"361":1,"363":1,"383":1}}],["performing",{"2":{"376":1}}],["performed",{"2":{"187":1,"201":1}}],["perform",{"2":{"145":1,"376":1}}],["performs",{"2":{"103":1}}],["pass",{"2":{"365":1,"370":1,"371":1,"376":1,"382":1}}],["passing",{"2":{"360":1,"361":1}}],["passed",{"2":{"157":1}}],["pashov",{"2":{"354":2}}],["parseunits",{"2":{"365":1}}],["particular",{"2":{"248":1}}],["particularly",{"2":{"189":1}}],["part",{"2":{"147":1,"189":1,"230":1,"248":1,"250":1,"369":1}}],["paramout",{"2":{"362":1}}],["params",{"2":{"103":1,"104":9,"285":1,"286":5,"330":1,"331":4}}],["parameter",{"2":{"52":1,"59":1}}],["parameters",{"0":{"22":1,"27":1,"34":1,"44":1,"53":1,"60":1,"68":1,"77":1,"94":1,"104":1,"118":1,"123":1,"280":1,"286":1,"291":1,"298":1,"305":1,"311":1,"316":1,"331":1,"337":1,"343":1,"348":1},"2":{"85":1,"104":1,"183":1,"236":1,"286":1,"331":1,"365":1,"380":1}}],["pay",{"2":{"141":1,"163":1,"165":1}}],["paymentdata",{"2":{"72":2}}],["payments",{"2":{"67":1,"68":1,"133":1,"276":1}}],["paymenttokensymbol",{"0":{"276":1},"1":{"277":1},"2":{"68":1,"276":1,"343":1}}],["paymenttoken",{"2":{"67":1,"68":1}}],["paymentinfo",{"0":{"215":1,"225":1,"246":1},"1":{"216":1,"226":1,"227":1,"228":1,"229":1,"247":1},"2":{"48":1,"99":1,"215":1,"225":1,"246":1}}],["payment",{"2":{"8":1,"44":1,"48":1,"67":2,"68":1,"69":2,"71":1,"72":1,"93":1,"94":1,"95":1,"133":1,"135":2,"225":1,"246":2,"276":1,"342":1,"343":1,"367":1,"378":1}}],["paymasteranddata",{"0":{"169":1},"1":{"170":1},"2":{"169":1}}],["paymasters",{"2":{"8":1}}],["paymaster",{"0":{"8":1},"2":{"169":3}}],["paid",{"2":{"67":1,"376":1}}],["price",{"2":{"370":1}}],["primarily",{"2":{"362":1,"382":1}}],["primary",{"2":{"320":1,"321":1}}],["prior",{"2":{"189":1}}],["priority",{"2":{"163":1,"165":1}}],["privatekey",{"2":{"358":2}}],["privatekeytoaccount",{"2":{"358":2}}],["private",{"2":{"44":1,"358":1,"360":1,"378":1}}],["presented",{"2":{"363":1}}],["prepared",{"2":{"362":1,"373":1}}],["prepares",{"2":{"21":1,"26":1,"67":1}}],["predefined",{"2":{"287":1}}],["pre",{"2":{"171":1}}],["preverificationgas",{"0":{"171":1},"1":{"172":1},"2":{"171":1}}],["prevent",{"2":{"167":1,"254":1}}],["previously",{"2":{"56":1,"64":1}}],["prefixed",{"2":{"44":1,"348":1}}],["prompt",{"2":{"370":1}}],["promise",{"2":{"43":1,"44":1,"45":2,"67":1,"69":2,"76":1,"78":2,"85":1,"86":2,"93":1,"95":2,"103":1,"105":2,"279":1,"281":2,"304":1,"306":2,"320":1,"321":2,"330":1,"332":2,"344":1,"347":1,"349":2}}],["production",{"2":{"360":3,"361":1}}],["produces",{"2":{"53":1}}],["projects",{"2":{"360":1}}],["project",{"2":{"360":3,"361":3,"365":1,"373":1}}],["procedure",{"2":{"376":2}}],["proceeding",{"2":{"109":1}}],["processing",{"2":{"133":1}}],["processes",{"2":{"93":1}}],["processed",{"2":{"16":1,"69":1,"135":1,"183":1}}],["process",{"2":{"7":1,"43":1,"67":1,"71":1,"236":1,"350":1,"369":2}}],["properly",{"2":{"49":1}}],["properties",{"0":{"37":1,"134":1,"144":1,"156":1,"180":1,"184":1,"202":1,"212":1,"218":1,"233":1,"239":1,"251":1,"261":1},"1":{"38":1,"39":1,"40":1,"41":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"181":1,"182":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1,"199":1,"200":1,"203":1,"204":1,"205":1,"206":1,"207":1,"208":1,"209":1,"210":1,"213":1,"214":1,"215":1,"216":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1,"227":1,"228":1,"229":1,"230":1,"231":1,"234":1,"235":1,"236":1,"237":1,"240":1,"241":1,"242":1,"243":1,"244":1,"245":1,"246":1,"247":1,"248":1,"249":1,"252":1,"253":1,"254":1,"255":1,"256":1,"257":1,"258":1,"259":1,"262":1,"263":1,"264":1,"265":1,"266":1,"267":1,"268":1,"269":1},"2":{"232":1}}],["provider",{"2":{"109":1,"320":2,"324":1,"328":1,"347":2,"350":1,"352":1,"359":4,"361":1,"376":1}}],["providers",{"2":{"10":1,"356":1,"359":2}}],["provided",{"2":{"26":1,"62":1,"124":1,"293":1,"304":1,"336":2,"340":1,"361":2,"381":1}}],["provide",{"2":{"7":1,"297":1,"310":1,"315":1,"359":1,"361":1,"382":1}}],["provides",{"2":{"4":1,"16":1,"112":1,"122":1,"183":1,"217":1,"238":1,"362":1}}],["protocol",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1},"2":{"1":1,"31":2,"67":1,"362":1,"377":1}}],["pool",{"2":{"376":2}}],["post",{"2":{"376":1}}],["possible",{"2":{"283":1,"365":1}}],["possibly",{"2":{"3":1}}],["point",{"2":{"336":1}}],["polygon",{"2":{"294":1,"358":1,"360":2,"365":2,"380":1}}],["potential",{"2":{"13":1}}],["phases",{"2":{"47":1,"107":1}}],["phase",{"2":{"13":1}}],["1n",{"2":{"375":1}}],["12",{"2":{"365":2}}],["127",{"2":{"289":1}}],["15000",{"2":{"308":1}}],["154",{"2":{"182":1}}],["141",{"2":{"249":1}}],["140",{"2":{"247":1}}],["130",{"2":{"335":1}}],["139",{"2":{"245":1}}],["137",{"2":{"243":1,"294":2}}],["138",{"2":{"241":1}}],["136",{"2":{"58":1}}],["188",{"2":{"231":1}}],["184",{"2":{"229":1}}],["182",{"2":{"224":1}}],["181",{"2":{"222":1}}],["183",{"2":{"220":1}}],["19",{"2":{"314":1}}],["194",{"2":{"216":1}}],["193",{"2":{"214":1}}],["191",{"2":{"83":2}}],["111",{"2":{"196":1}}],["113",{"2":{"194":1}}],["110",{"2":{"192":1}}],["114",{"2":{"190":1,"346":1}}],["115",{"2":{"188":1}}],["112",{"2":{"186":1}}],["17",{"2":{"131":1}}],["176",{"2":{"92":1}}],["10",{"2":{"283":3,"294":2,"308":2,"334":2,"365":1}}],["109",{"2":{"200":1}}],["108",{"2":{"198":1}}],["100000n",{"2":{"366":1}}],["1000000",{"2":{"108":1,"288":1}}],["1000n",{"2":{"24":1,"29":1,"99":1}}],["107",{"2":{"66":1}}],["1",{"0":{"3":1},"2":{"24":1,"29":1,"99":1,"108":1,"288":2,"294":2,"302":1,"308":1,"334":2,"365":1}}],["knows",{"2":{"382":1}}],["know",{"2":{"376":1}}],["keep",{"2":{"375":1}}],["keys",{"2":{"292":1}}],["key",{"0":{"2":1},"1":{"3":1,"4":1},"2":{"44":1,"334":2,"358":1,"378":1,"380":1}}],["klasternodehost",{"2":{"358":1,"359":1}}],["klastersdk",{"0":{"31":1,"33":1},"1":{"32":1,"33":1,"34":2,"35":2,"36":2,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"108":1,"109":1,"110":1,"111":1},"2":{"31":1,"33":2,"35":1,"48":1,"55":2,"63":2,"72":2,"82":2,"89":2,"99":1,"108":1,"112":1,"336":2,"338":2,"339":2}}],["klaster",{"0":{"0":1,"7":1,"14":1,"354":1,"357":1,"359":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"108":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1,"181":1,"182":1,"183":1,"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1,"199":1,"200":1,"201":1,"202":1,"203":1,"204":1,"205":1,"206":1,"207":1,"208":1,"209":1,"210":1,"211":1,"212":1,"213":1,"214":1,"215":1,"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1,"227":1,"228":1,"229":1,"230":1,"231":1,"232":1,"233":1,"234":1,"235":1,"236":1,"237":1,"238":1,"239":1,"240":1,"241":1,"242":1,"243":1,"244":1,"245":1,"246":1,"247":1,"248":1,"249":1,"250":1,"251":1,"252":1,"253":1,"254":1,"255":1,"256":1,"257":1,"258":1,"259":1,"260":1,"261":1,"262":1,"263":1,"264":1,"265":1,"266":1,"267":1,"268":1,"269":1,"270":1,"271":1,"272":1,"273":1,"274":1,"275":1,"276":1,"277":1,"278":1,"279":1,"280":1,"281":1,"282":1,"283":1,"284":1,"285":1,"286":1,"287":1,"288":1,"289":1,"290":1,"291":1,"292":1,"293":1,"294":1,"295":1,"296":1,"297":1,"298":1,"299":1,"300":1,"301":1,"302":1,"303":1,"304":1,"305":1,"306":1,"307":1,"308":1,"309":1,"310":1,"311":1,"312":1,"313":1,"314":1,"315":1,"316":1,"317":1,"318":1,"319":1,"320":1,"321":1,"322":1,"323":1,"324":1,"325":1,"326":1,"327":1,"328":1,"329":1,"330":1,"331":1,"332":1,"333":1,"334":1,"335":1,"336":1,"337":1,"338":1,"339":1,"340":1,"341":1,"342":1,"343":1,"344":1,"345":1,"346":1,"347":1,"348":1,"349":1,"350":1,"351":1,"352":1,"353":1},"2":{"1":1,"4":1,"16":2,"23":1,"28":1,"31":1,"55":1,"63":1,"67":1,"72":1,"76":1,"89":1,"93":1,"109":2,"110":1,"112":1,"133":2,"137":1,"139":1,"143":2,"151":1,"153":1,"179":1,"181":1,"183":2,"189":2,"201":2,"217":1,"219":1,"221":1,"223":1,"232":1,"238":1,"240":1,"242":1,"244":1,"271":1,"290":1,"294":1,"297":2,"310":2,"315":2,"334":1,"336":2,"337":1,"339":3,"354":1,"356":3,"357":1,"358":1,"359":4,"360":1,"361":6,"362":8,"363":2,"364":2,"365":2,"366":1,"367":3,"368":1,"369":2,"370":1,"371":1,"372":3,"374":1,"375":2,"376":4,"377":1,"378":1,"379":5,"380":2,"381":2,"382":2}}],["duplicate",{"2":{"293":1}}],["during",{"2":{"47":1,"71":1,"85":1,"107":1,"157":1,"175":1,"189":1,"350":1}}],["double",{"2":{"361":1}}],["doing",{"2":{"360":1}}],["do",{"2":{"360":1,"365":1,"376":1}}],["done",{"2":{"366":1}}],["don",{"2":{"258":1,"360":2,"365":1,"379":1}}],["documentation",{"2":{"109":2,"110":1,"295":1,"327":1,"359":1,"361":1}}],["doesn",{"2":{"234":1}}],["does",{"2":{"56":1,"64":1,"365":1,"379":1}}],["data",{"0":{"252":1},"1":{"253":1},"2":{"24":2,"29":1,"67":1,"72":1,"83":1,"99":1,"133":1,"145":1,"157":1,"169":1,"252":2,"287":2,"304":3,"305":1,"306":1,"308":3,"362":12,"366":1,"370":1,"376":8,"379":1,"380":3}}],["dapp",{"2":{"7":1,"10":1}}],["dapps",{"2":{"1":1,"11":2}}],["difference",{"2":{"379":1}}],["differently",{"2":{"380":1}}],["different",{"2":{"1":1,"52":1,"59":1,"81":1,"90":1,"112":1,"230":1,"276":1,"282":2,"287":1,"333":2}}],["directly",{"2":{"370":1}}],["discouraged",{"2":{"360":1}}],["diminishing",{"2":{"9":1}}],["demonstrates",{"2":{"364":1}}],["demo",{"2":{"356":1,"363":1,"364":1}}],["denies",{"2":{"324":1}}],["decimals",{"2":{"279":1,"282":2,"288":1,"332":2,"333":1,"334":2,"361":1,"363":3,"365":1,"383":1,"384":2}}],["declaration",{"0":{"226":1,"272":1},"1":{"273":1,"274":1}}],["decentralization",{"2":{"13":1}}],["destchaintokenaddress",{"2":{"366":1}}],["destinationchainconst",{"2":{"365":1}}],["destinationchainid",{"2":{"308":2,"362":2,"365":1,"367":1,"376":1}}],["destinationtoken",{"2":{"362":2,"376":1}}],["destination",{"2":{"189":1,"304":1,"362":1,"364":1,"365":2,"366":3,"367":2,"376":4}}],["designed",{"2":{"328":1,"352":1}}],["desired",{"0":{"366":1},"2":{"103":1,"365":5,"382":1}}],["described",{"2":{"201":1}}],["deposit",{"2":{"364":1}}],["deployment",{"2":{"361":5,"382":3,"383":1}}],["deployments",{"0":{"361":1},"2":{"361":3,"379":2,"383":1}}],["deploying",{"2":{"360":1,"379":1}}],["deployed",{"2":{"161":2,"291":1,"361":2,"379":2}}],["depending",{"2":{"359":1}}],["depend",{"2":{"189":1}}],["dependent",{"2":{"3":1}}],["definining",{"2":{"380":1}}],["definitely",{"2":{"364":1}}],["define",{"2":{"378":1}}],["defines",{"2":{"133":1,"143":1,"155":1,"201":1,"232":1,"250":1}}],["defined",{"0":{"25":1,"30":1,"36":1,"39":1,"41":1,"51":1,"58":1,"66":1,"75":1,"84":1,"92":1,"102":1,"111":1,"121":1,"127":1,"131":1,"136":1,"138":1,"140":1,"142":1,"146":1,"148":1,"150":1,"152":1,"154":1,"158":1,"160":1,"162":1,"164":1,"166":1,"168":1,"170":1,"172":1,"174":1,"176":1,"178":1,"182":1,"186":1,"188":1,"190":1,"192":1,"194":1,"196":1,"198":1,"200":1,"204":1,"206":1,"208":1,"210":1,"214":1,"216":1,"220":1,"222":1,"224":1,"229":1,"231":1,"235":1,"237":1,"241":1,"243":1,"245":1,"247":1,"249":1,"253":1,"255":1,"257":1,"259":1,"263":1,"265":1,"267":1,"269":1,"275":1,"277":1,"284":1,"289":1,"296":1,"303":1,"309":1,"314":1,"319":1,"329":1,"335":1,"341":1,"346":1,"353":1},"2":{"3":1,"378":1,"380":1}}],["default",{"2":{"81":1,"128":1,"359":1,"360":2,"361":2}}],["derivations",{"2":{"56":1,"64":1}}],["derivation",{"2":{"53":1,"60":1,"86":1,"88":1}}],["deriving",{"0":{"380":1},"2":{"52":2,"59":2,"69":1,"112":1}}],["derive",{"2":{"22":1,"27":1,"52":1,"59":1,"90":1,"375":1,"379":2,"380":2}}],["derived",{"2":{"22":1,"26":1,"27":1,"56":1,"64":1,"85":3,"86":1,"89":1,"137":1,"151":1,"380":4}}],["detected",{"2":{"324":1}}],["deterministic",{"2":{"117":1}}],["deterministically",{"2":{"52":1,"59":1,"85":1,"236":1}}],["determines",{"2":{"135":1,"149":1}}],["determine",{"2":{"9":1,"380":1}}],["detailed",{"2":{"110":1,"183":1,"217":1,"238":1}}],["details",{"0":{"378":1},"2":{"44":1,"95":1,"109":1,"217":1,"230":1,"372":1}}],["development",{"2":{"356":1}}],["developments",{"0":{"13":1}}],["developers",{"2":{"10":1}}],["field",{"2":{"369":1}}],["finally",{"2":{"364":1}}],["finace",{"2":{"355":1}}],["filter",{"2":{"361":1}}],["fit",{"2":{"361":1}}],["first",{"2":{"128":1,"129":1,"320":1,"362":1,"369":1,"373":1,"378":1,"382":1}}],["firstaccountsalt",{"2":{"130":2}}],["firstaccount",{"0":{"128":1},"1":{"129":1,"130":1,"131":1},"2":{"128":1,"130":1}}],["fluent",{"2":{"310":1,"315":1}}],["flexibility",{"2":{"122":1}}],["flow",{"2":{"43":1}}],["flows",{"2":{"11":1,"356":1,"364":1}}],["following",{"2":{"333":1,"359":1,"365":1,"374":1,"375":1,"382":1}}],["followed",{"2":{"169":1}}],["found",{"2":{"71":1,"283":1,"307":1,"325":1,"333":1}}],["format",{"2":{"143":1,"155":1,"349":1}}],["for",{"0":{"371":1},"2":{"6":2,"7":1,"8":2,"10":1,"12":2,"13":1,"16":3,"21":1,"22":1,"23":1,"26":1,"28":1,"31":2,"44":1,"49":1,"52":2,"53":1,"57":1,"59":2,"60":1,"65":1,"67":1,"68":1,"69":2,"77":1,"83":1,"85":1,"86":1,"93":2,"100":1,"101":2,"104":2,"109":2,"110":2,"112":3,"117":3,"122":2,"128":1,"133":2,"135":1,"139":1,"141":1,"143":2,"147":2,"153":1,"155":1,"159":1,"161":1,"171":1,"177":1,"181":2,"189":2,"193":1,"199":1,"201":2,"221":1,"223":1,"225":2,"234":1,"238":1,"242":1,"246":1,"250":1,"252":2,"254":1,"256":2,"258":1,"271":1,"276":1,"279":1,"286":2,"287":3,"290":1,"294":1,"295":2,"297":1,"298":1,"304":3,"305":1,"306":1,"307":1,"308":1,"310":2,"315":2,"330":1,"331":2,"332":1,"334":1,"336":1,"337":1,"338":1,"340":1,"345":1,"359":1,"360":2,"361":1,"362":3,"363":2,"364":3,"365":5,"368":1,"369":2,"373":1,"376":1,"379":1,"380":4,"384":1}}],["feasible",{"2":{"307":1}}],["feetx",{"2":{"367":1,"369":1}}],["fee",{"2":{"67":1,"72":1,"163":2,"165":1,"367":1,"376":1,"378":1}}],["feesresponse",{"2":{"376":5}}],["fees",{"2":{"7":1,"67":1,"133":1,"135":1,"141":1,"365":1,"376":1}}],["fetched",{"2":{"384":2}}],["fetches",{"2":{"43":1,"85":1,"93":1,"320":1,"330":1}}],["fetchinjectedaddress",{"0":{"320":1},"1":{"321":1,"322":1,"323":1,"324":1,"325":1,"326":1,"327":1,"328":1,"329":1},"2":{"320":1,"323":1,"325":1}}],["fetching",{"0":{"363":1},"2":{"43":1,"47":1,"98":1,"107":1,"282":1,"325":1,"334":1,"381":1}}],["fetch",{"2":{"50":1,"74":1,"89":1,"110":1,"331":1,"334":1,"359":2}}],["factorydata",{"2":{"380":1}}],["factory",{"2":{"380":2}}],["fact",{"2":{"376":1}}],["facilitating",{"2":{"1":1}}],["fastest",{"2":{"362":2}}],["fails",{"2":{"80":1,"88":1,"340":1}}],["failed",{"2":{"48":1,"72":1,"82":1,"89":1,"99":1,"189":3}}],["failures",{"2":{"47":1}}],["failing",{"2":{"12":1}}],["fund",{"2":{"285":1}}],["funds",{"2":{"12":1,"365":1,"376":1}}],["functionalities",{"2":{"381":1}}],["functionality",{"2":{"360":1}}],["functionname",{"2":{"366":1}}],["functions",{"0":{"278":1},"1":{"279":1,"280":1,"281":1,"282":1,"283":1,"284":1,"285":1,"286":1,"287":1,"288":1,"289":1,"290":1,"291":1,"292":1,"293":1,"294":1,"295":1,"296":1,"297":1,"298":1,"299":1,"300":1,"301":1,"302":1,"303":1,"304":1,"305":1,"306":1,"307":1,"308":1,"309":1,"310":1,"311":1,"312":1,"313":1,"314":1,"315":1,"316":1,"317":1,"318":1,"319":1,"320":1,"321":1,"322":1,"323":1,"324":1,"325":1,"326":1,"327":1,"328":1,"329":1,"330":1,"331":1,"332":1,"333":1,"334":1,"335":1,"336":1,"337":1,"338":1,"339":1,"340":1,"341":1,"342":1,"343":1,"344":1,"345":1,"346":1,"347":1,"348":1,"349":1,"350":1,"351":1,"352":1,"353":1},"2":{"31":1,"112":1,"250":1,"290":1,"294":1}}],["function",{"0":{"323":1},"2":{"21":1,"26":1,"43":1,"44":2,"49":2,"52":1,"59":1,"67":2,"73":2,"76":1,"85":1,"90":2,"93":1,"100":1,"103":1,"109":3,"145":1,"207":2,"252":1,"285":1,"287":2,"290":1,"297":1,"304":2,"310":1,"315":1,"320":1,"328":1,"331":1,"336":1,"347":1,"352":1,"361":1,"362":3,"364":1,"365":4,"366":1,"367":2,"371":1,"372":1,"374":1,"375":1,"376":1,"381":2,"382":1,"384":1}}],["future",{"0":{"13":1},"2":{"56":1,"64":1}}],["full",{"2":{"12":1,"93":1,"94":1,"95":1,"155":1,"197":1}}],["fully",{"2":{"7":1,"201":1,"364":1}}],["fromamount",{"2":{"362":1}}],["fromtokenaddress",{"2":{"362":1}}],["fromchainid",{"2":{"362":1}}],["from",{"2":{"11":1,"22":1,"26":1,"27":1,"67":1,"74":1,"77":1,"85":1,"93":1,"98":1,"100":1,"118":1,"137":1,"151":1,"281":1,"285":2,"290":1,"294":1,"304":2,"320":1,"334":1,"339":1,"358":4,"359":1,"362":3,"363":1,"364":1,"365":4,"369":1,"370":2,"372":1,"376":2,"380":3,"381":1,"382":1}}],["framework",{"2":{"1":1,"362":1,"382":1}}],["bico",{"2":{"380":1}}],["biconomy",{"0":{"374":1},"2":{"359":2,"374":1,"380":2}}],["bit",{"2":{"364":1}}],["binance",{"2":{"355":1}}],["bigint",{"2":{"104":1,"108":1,"254":2,"258":2,"283":3,"286":1,"288":1,"308":2,"332":1,"362":3,"376":4,"384":2}}],["blob",{"2":{"354":1}}],["blockchains",{"0":{"361":1},"2":{"103":1,"234":1,"330":1,"360":1,"361":4,"365":2,"367":1,"379":3,"381":1,"382":1,"384":3}}],["blockchain",{"2":{"1":1,"4":1,"22":1,"27":1,"85":1,"109":1,"135":2,"145":1,"147":1,"149":1,"185":1,"191":1,"195":1,"203":1,"232":1,"234":1,"248":1,"276":1,"286":1,"298":1,"343":1,"363":1,"376":1,"377":1,"379":1,"380":1,"382":1}}],["brdging",{"2":{"376":1}}],["brdiging",{"2":{"362":1}}],["bridign",{"2":{"376":1}}],["bridgepluginresult",{"2":{"376":3}}],["bridgepluginparams",{"2":{"376":3}}],["bridgeplugin",{"2":{"362":3,"365":1,"376":5}}],["bridged",{"2":{"355":4}}],["bridge",{"2":{"308":2,"364":1,"365":2,"376":2}}],["bridges",{"2":{"10":1,"12":1,"376":1}}],["bridgingops",{"2":{"365":1,"366":2,"367":2}}],["bridgingdata",{"2":{"308":2}}],["bridging",{"0":{"362":1,"364":1,"365":1,"376":1},"1":{"365":1,"366":1,"367":1},"2":{"189":1,"304":3,"305":1,"306":1,"308":1,"360":1,"362":6,"364":1,"365":3,"366":1,"367":1,"376":11,"381":1}}],["breakdown",{"2":{"363":3,"384":2}}],["browsers",{"2":{"328":1,"352":1}}],["browser",{"2":{"328":2,"347":2,"352":2,"358":2}}],["broadcasted",{"2":{"287":1}}],["bsc",{"2":{"276":1}}],["bnb",{"2":{"276":1,"355":1}}],["background",{"2":{"376":1}}],["base",{"2":{"283":2,"308":1,"358":1,"360":4,"361":1,"363":1,"365":5,"380":1,"381":2,"382":1}}],["based",{"2":{"7":1,"76":1,"342":1}}],["balanceondestination",{"2":{"366":1}}],["balances",{"2":{"282":1,"330":1,"331":1,"363":1,"382":1,"384":1}}],["balance",{"0":{"363":1,"384":1},"2":{"281":1,"284":1,"294":1,"296":1,"309":1,"332":1,"334":3,"335":1,"360":1,"363":4,"365":5,"381":2,"384":5}}],["batchtx",{"2":{"362":2,"376":1}}],["batchexecute",{"2":{"207":1,"250":1}}],["batch",{"2":{"16":2,"21":1,"22":1,"23":1}}],["built",{"2":{"379":1,"381":1}}],["builditx",{"2":{"367":2}}],["building",{"0":{"356":1},"1":{"357":1,"358":1,"359":1,"360":1,"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1},"2":{"10":1,"286":1,"369":1}}],["buildrpcinfo",{"2":{"358":1,"360":3,"381":2}}],["buildmultichainreadonlyclient",{"2":{"358":1,"360":3,"381":2}}],["build",{"2":{"356":1,"360":1,"361":1,"382":1}}],["builds",{"2":{"279":1,"285":1}}],["buildtokenmapping",{"2":{"361":2,"382":1}}],["buildtokenstrategyoptions",{"2":{"280":1}}],["buildtokenstrategy",{"0":{"279":1},"1":{"280":1,"281":1,"282":1,"283":1,"284":1},"2":{"279":1,"283":1,"304":1}}],["buildtransfererc20fromeoatx",{"0":{"285":1},"1":{"286":1,"287":1,"288":1,"289":1},"2":{"110":1,"285":1,"288":1}}],["but",{"2":{"362":1,"364":1}}],["bundler",{"2":{"171":1}}],["bundle",{"2":{"7":2}}],["bundles",{"0":{"3":1},"2":{"1":1,"6":1,"7":1,"12":1}}],["beyond",{"2":{"379":1}}],["beating",{"2":{"377":1}}],["betotalreceivedondestination",{"2":{"366":1}}],["between",{"2":{"1":1,"12":1,"16":1,"379":1}}],["behave",{"2":{"234":1}}],["been",{"2":{"161":1,"181":1,"183":1,"364":1,"372":1}}],["becomes",{"2":{"76":1}}],["before",{"2":{"73":1,"90":1,"109":1,"189":1,"348":1,"361":1,"376":1}}],["being",{"2":{"68":1,"234":1,"370":1}}],["be",{"2":{"12":1,"16":1,"21":1,"22":2,"23":1,"27":2,"28":1,"48":1,"53":2,"60":2,"67":1,"69":2,"81":1,"85":1,"109":1,"126":1,"135":1,"141":1,"145":1,"147":1,"149":2,"157":1,"175":1,"181":1,"189":1,"191":1,"195":1,"201":1,"203":1,"205":1,"207":3,"209":1,"238":1,"246":1,"250":1,"252":1,"254":1,"256":1,"258":1,"276":1,"286":1,"287":1,"288":1,"294":1,"308":1,"311":1,"316":1,"345":1,"348":3,"356":1,"358":1,"360":1,"361":4,"362":2,"363":2,"364":1,"365":3,"366":2,"376":6,"377":1,"378":1,"380":1,"381":1,"382":1,"384":1}}],["best",{"2":{"7":1,"356":1,"361":1}}],["bytes32",{"2":{"380":2}}],["by",{"2":{"3":1,"9":1,"16":1,"43":1,"77":1,"143":1,"167":1,"169":1,"179":1,"183":2,"195":1,"209":1,"217":1,"219":1,"238":1,"240":1,"250":1,"276":1,"304":1,"308":1,"360":2,"361":4,"364":1,"367":1,"370":2,"372":1,"376":4,"378":2,"381":2,"384":1}}],["ii",{"2":{"362":1}}],["io",{"2":{"283":1,"356":1,"372":1}}],["i",{"2":{"117":1,"118":1,"324":1,"357":1,"362":2}}],["import",{"2":{"294":1,"334":1,"339":1,"358":4,"362":3}}],["important",{"2":{"81":1,"361":1}}],["implications",{"2":{"56":1,"64":1}}],["implementing",{"2":{"109":1,"110":1}}],["implement",{"2":{"48":1,"108":2,"308":1}}],["implementation",{"2":{"13":1,"308":2,"356":1}}],["implements",{"2":{"8":1}}],["irreversible",{"2":{"76":1}}],["if",{"2":{"62":1,"71":1,"80":3,"81":1,"88":2,"90":1,"97":1,"98":1,"161":2,"169":1,"207":2,"281":1,"282":1,"283":1,"287":1,"288":1,"293":1,"307":2,"321":3,"324":1,"325":1,"333":2,"340":2,"345":1,"350":3,"356":1,"361":2,"362":3,"365":1,"366":2,"370":3,"375":1}}],["idsupported",{"2":{"355":1}}],["ids",{"2":{"290":1,"292":1,"293":1,"331":1}}],["idential",{"2":{"361":1}}],["identity",{"2":{"234":1}}],["identifier",{"2":{"167":1,"181":1,"185":1,"199":1,"203":1,"221":1,"242":1}}],["id",{"2":{"22":1,"27":1,"69":1,"72":1,"135":1,"149":1,"286":1,"291":1,"297":1,"298":1,"299":1,"342":1,"343":1,"345":1,"360":3,"361":2,"365":1,"367":1,"380":2,"381":2,"382":3}}],["inforation",{"2":{"376":1}}],["information",{"2":{"31":1,"44":1,"48":1,"57":1,"65":1,"67":1,"77":1,"93":2,"94":1,"95":1,"110":1,"133":1,"183":1,"217":1,"225":1,"238":1,"246":1,"344":1,"359":1,"375":2,"376":2,"380":1}}],["info",{"2":{"361":2}}],["injected",{"2":{"320":2,"324":1,"328":1,"347":2,"348":1,"350":1,"352":1,"358":1,"359":1}}],["insufficient",{"2":{"281":1}}],["instructs",{"2":{"367":1}}],["instructions",{"2":{"104":3}}],["install",{"0":{"357":1},"2":{"362":1}}],["instances",{"2":{"361":1,"363":1,"379":1}}],["instance",{"2":{"31":1,"52":1,"55":1,"59":1,"63":1,"72":1,"89":1,"100":1,"336":1,"338":1,"376":1}}],["instead",{"2":{"313":1,"361":1}}],["init",{"2":{"380":1}}],["initdata",{"2":{"379":1}}],["initklaster",{"0":{"336":1},"1":{"337":1,"338":1,"339":1,"340":1,"341":1},"2":{"336":1,"339":2,"358":1,"359":1,"374":1,"375":1}}],["initial",{"2":{"375":1}}],["initialize",{"0":{"359":1,"360":1},"2":{"340":1,"359":1,"360":1,"374":1,"375":1}}],["initializes",{"2":{"336":1}}],["initialized",{"2":{"55":1,"63":1,"72":1,"89":1}}],["initializing",{"0":{"374":1,"375":1},"2":{"271":1,"359":1}}],["initialization",{"2":{"85":1,"161":1}}],["initiating",{"2":{"179":1}}],["initcode",{"0":{"161":1},"1":{"162":1},"2":{"161":1}}],["input",{"2":{"143":1,"252":1,"293":1,"310":1,"315":1,"362":1}}],["invalid",{"2":{"62":1,"71":1,"80":1,"81":1,"282":1,"340":1}}],["indicating",{"2":{"307":1}}],["individually",{"2":{"21":1}}],["index",{"2":{"36":1,"39":1,"41":1,"51":1,"58":1,"66":1,"75":1,"84":1,"92":1,"102":1,"111":1,"117":1,"118":1,"119":1,"275":1,"341":1}}],["includes",{"2":{"287":1,"361":1}}],["include",{"2":{"44":1,"47":1}}],["including",{"2":{"13":1,"73":1,"163":1,"225":1,"238":1,"246":1}}],["incentivized",{"2":{"9":1}}],["in",{"0":{"25":1,"30":1,"36":1,"39":1,"41":1,"51":1,"58":1,"66":1,"75":1,"84":1,"92":1,"102":1,"111":1,"121":1,"127":1,"131":1,"136":1,"138":1,"140":1,"142":1,"146":1,"148":1,"150":1,"152":1,"154":1,"158":1,"160":1,"162":1,"164":1,"166":1,"168":1,"170":1,"172":1,"174":1,"176":1,"178":1,"182":1,"186":1,"188":1,"190":1,"192":1,"194":1,"196":1,"198":1,"200":1,"204":1,"206":1,"208":1,"210":1,"214":1,"216":1,"220":1,"222":1,"224":1,"229":1,"231":1,"235":1,"237":1,"241":1,"243":1,"245":1,"247":1,"249":1,"253":1,"255":1,"257":1,"259":1,"263":1,"265":1,"267":1,"269":1,"275":1,"277":1,"284":1,"289":1,"296":1,"303":1,"309":1,"314":1,"319":1,"329":1,"335":1,"341":1,"346":1,"353":1},"2":{"8":1,"16":1,"22":1,"27":1,"52":2,"56":1,"59":2,"64":1,"69":1,"97":1,"108":1,"109":1,"112":1,"133":1,"139":1,"153":1,"155":2,"234":1,"236":1,"250":1,"286":1,"290":1,"293":1,"294":1,"297":2,"306":1,"307":1,"308":1,"310":1,"315":1,"328":2,"333":2,"347":1,"348":1,"349":1,"352":2,"356":3,"358":2,"359":1,"360":3,"361":5,"362":2,"363":5,"364":1,"365":2,"367":1,"368":1,"369":2,"372":1,"376":4,"377":1,"378":3,"381":1,"382":3}}],["int",{"2":{"385":1}}],["introduction",{"2":{"356":1}}],["introduces",{"2":{"1":1,"362":1}}],["into",{"2":{"16":1,"21":1,"26":1,"297":1,"360":1,"361":1,"370":1,"376":1}}],["intelligent",{"2":{"365":1}}],["intelligently",{"2":{"16":1}}],["intentionally",{"2":{"364":1}}],["intent",{"2":{"13":1}}],["integration",{"0":{"10":1},"2":{"13":1}}],["internal",{"2":{"379":1}}],["internally",{"2":{"50":2,"74":2,"110":3}}],["intersection",{"2":{"361":1}}],["intersecttokenandclients",{"2":{"361":2}}],["intersects",{"2":{"361":1}}],["interested",{"2":{"356":1}}],["interacting",{"2":{"381":1,"382":1}}],["interactions",{"2":{"252":1,"256":1}}],["interaction",{"2":{"1":1}}],["interact",{"2":{"339":1,"360":1}}],["interface",{"2":{"133":1,"143":1,"155":1,"179":1,"183":1,"201":1,"217":1,"232":1,"238":1,"250":1}}],["interfaces",{"0":{"132":1},"1":{"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1,"181":1,"182":1,"183":1,"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1,"199":1,"200":1,"201":1,"202":1,"203":1,"204":1,"205":1,"206":1,"207":1,"208":1,"209":1,"210":1,"211":1,"212":1,"213":1,"214":1,"215":1,"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1,"227":1,"228":1,"229":1,"230":1,"231":1,"232":1,"233":1,"234":1,"235":1,"236":1,"237":1,"238":1,"239":1,"240":1,"241":1,"242":1,"243":1,"244":1,"245":1,"246":1,"247":1,"248":1,"249":1,"250":1,"251":1,"252":1,"253":1,"254":1,"255":1,"256":1,"257":1,"258":1,"259":1,"260":1,"261":1,"262":1,"263":1,"264":1,"265":1,"266":1,"267":1,"268":1,"269":1},"2":{"382":1}}],["interchaintransaction",{"0":{"211":1},"1":{"212":1,"213":1,"214":1,"215":1,"216":1},"2":{"44":1,"93":1,"94":1,"104":1,"310":3,"311":2,"312":2,"313":1,"376":1,"377":1}}],["interchain",{"0":{"3":1,"367":1,"368":1,"377":1},"1":{"369":1,"370":1,"371":1,"372":1,"378":1},"2":{"43":1,"44":1,"76":1,"93":1,"94":1,"103":1,"104":1,"108":1,"179":1,"181":2,"201":2,"217":1,"219":1,"221":2,"223":1,"230":1,"238":1,"240":1,"242":2,"244":1,"248":2,"367":1,"369":1,"373":1,"378":2}}],["its",{"2":{"310":2,"315":2,"342":1,"365":1}}],["itself",{"2":{"167":1,"244":1}}],["itxstatusresponse",{"0":{"217":1},"1":{"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1,"227":1,"228":1,"229":1,"230":1,"231":1},"2":{"217":1}}],["itxuserop",{"0":{"201":1},"1":{"202":1,"203":1,"204":1,"205":1,"206":1,"207":1,"208":1,"209":1,"210":1},"2":{"201":1,"213":1}}],["itxhash",{"0":{"181":1,"221":1,"242":1},"1":{"182":1,"222":1,"243":1},"2":{"48":1,"82":1,"181":1,"221":1,"242":1,"370":1,"372":1}}],["itx",{"0":{"3":1,"6":1,"9":1,"371":1},"2":{"3":1,"4":1,"6":1,"7":7,"12":1,"43":4,"44":3,"45":1,"48":3,"49":1,"76":2,"77":1,"78":1,"82":1,"93":3,"94":1,"95":1,"97":1,"99":2,"103":1,"104":1,"105":1,"108":1,"109":2,"110":2,"181":1,"221":1,"303":1,"310":1,"311":1,"313":2,"314":1,"319":1,"367":6,"368":1,"369":3,"370":3,"371":1,"372":2,"377":1,"378":6}}],["it",{"2":{"1":1,"16":1,"31":1,"43":1,"49":1,"56":1,"64":1,"67":1,"161":1,"285":1,"290":1,"297":1,"304":1,"320":1,"328":1,"336":1,"347":1,"352":1,"356":1,"359":1,"361":1,"362":3,"364":2,"365":1,"368":1,"376":2,"377":1,"378":1,"380":1,"382":2,"384":1}}],["issue",{"2":{"71":1,"88":1,"282":1,"324":1,"350":1}}],["issues",{"2":{"47":1,"80":1,"98":1}}],["is",{"2":{"1":1,"22":1,"27":1,"52":1,"55":1,"59":1,"62":1,"63":1,"67":1,"71":1,"72":1,"80":1,"85":2,"89":1,"97":1,"103":1,"137":1,"147":1,"149":1,"151":1,"161":1,"163":1,"165":1,"185":1,"189":3,"223":1,"234":1,"236":1,"281":1,"290":1,"291":1,"307":2,"308":1,"310":1,"315":1,"321":1,"324":2,"325":1,"328":1,"340":1,"349":1,"350":1,"352":1,"360":5,"361":4,"362":4,"363":1,"364":3,"365":5,"366":2,"367":1,"369":3,"370":2,"375":1,"376":3,"377":1,"378":3,"379":2,"380":3,"381":2,"382":4,"383":1,"384":1}}],["shown",{"2":{"361":1}}],["should",{"2":{"44":2,"53":1,"60":1,"67":1,"94":1,"109":2,"126":1,"209":1,"291":1,"348":1,"361":2,"363":1,"375":1}}],["syntactic",{"2":{"297":1,"310":1,"315":1}}],["system",{"2":{"276":1,"379":1,"382":1}}],["symbols",{"2":{"276":1}}],["symbol",{"2":{"68":1,"276":1,"342":2,"343":2}}],["scroll",{"2":{"358":1,"360":2,"365":2}}],["scenarios",{"2":{"112":1}}],["scheme",{"2":{"81":1}}],["smallest",{"2":{"108":1,"286":1}}],["smart",{"0":{"6":1,"379":1},"1":{"380":1},"2":{"6":2,"16":1,"21":2,"22":2,"26":2,"27":2,"52":3,"53":1,"59":3,"85":1,"86":1,"103":2,"104":1,"112":1,"137":1,"139":1,"143":1,"151":1,"153":1,"173":1,"207":2,"232":2,"234":1,"250":1,"285":2,"355":1,"359":1,"365":1,"370":1,"376":1,"379":1,"380":1}}],["s",{"2":{"71":1,"88":1,"169":1,"181":1,"203":1,"205":1,"209":1,"236":1,"282":1,"285":1,"286":1,"297":1,"324":1,"347":1,"350":1,"361":1,"362":2,"365":2,"367":1,"377":1,"378":1,"379":1,"380":1}}],["spokepooladdress",{"2":{"376":2}}],["sponsoring",{"2":{"169":1}}],["spent",{"2":{"382":1}}],["speed",{"2":{"362":1}}],["spec",{"2":{"189":1}}],["specification",{"2":{"147":1,"290":1}}],["specifically",{"2":{"143":1}}],["specific",{"2":{"109":1,"117":1,"135":1,"248":1,"304":1,"308":1,"380":1}}],["specified",{"2":{"67":1,"71":1,"109":1,"155":1,"207":1,"285":1,"291":1}}],["specify",{"2":{"67":1}}],["spanning",{"2":{"3":1}}],["safe",{"0":{"375":1},"2":{"375":2,"380":3}}],["satisfied",{"2":{"370":1}}],["satisfy",{"2":{"279":1,"281":1}}],["say",{"2":{"364":1}}],["same",{"2":{"139":1,"153":1,"234":1,"279":1,"312":1,"317":1,"361":2,"363":1,"379":1,"380":1,"383":1}}],["savings",{"2":{"21":1}}],["salts",{"2":{"112":1,"117":1,"126":2}}],["saltutil",{"0":{"112":1,"114":1},"1":{"113":1,"114":1,"115":2,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1},"2":{"114":2,"115":1,"120":1,"125":1,"130":1}}],["salt",{"0":{"139":1,"153":1,"236":1},"1":{"140":1,"154":1,"237":1},"2":{"21":1,"22":1,"26":2,"27":1,"52":4,"53":2,"56":2,"59":1,"69":2,"85":2,"86":2,"89":2,"90":1,"91":1,"112":2,"117":1,"119":1,"121":1,"122":3,"123":2,"124":1,"127":1,"128":1,"129":1,"131":1,"139":1,"153":1,"236":2,"380":2}}],["solutions",{"2":{"379":1}}],["solved",{"2":{"364":1}}],["solver",{"2":{"13":1}}],["so",{"2":{"361":1,"364":2,"370":1,"376":1}}],["sourcetoken",{"2":{"362":2,"376":2}}],["sourcechainid",{"2":{"308":1,"362":3,"376":2}}],["source",{"2":{"304":1,"367":1}}],["some",{"2":{"81":1,"234":1,"361":1,"364":1,"365":3,"376":2,"379":1,"383":1,"384":1}}],["socialfi",{"2":{"11":1}}],["slashing",{"2":{"13":1}}],["slashed",{"2":{"12":1}}],["store",{"2":{"361":1}}],["style",{"2":{"297":1,"310":1,"315":1}}],["stmatic",{"2":{"276":1,"355":1}}],["step",{"2":{"177":1,"362":3,"369":1}}],["steps",{"2":{"43":1,"49":1,"356":1,"362":1,"364":1,"365":2,"367":3,"376":1}}],["strategies",{"2":{"381":1}}],["strategyitem",{"2":{"281":1}}],["strategy",{"2":{"279":1,"283":4,"304":2,"306":1,"307":3,"308":3}}],["straightforward",{"2":{"49":1}}],["structure",{"2":{"67":1,"133":1,"143":1,"155":1,"201":1,"250":1}}],["streamlines",{"2":{"43":1}}],["streamlined",{"2":{"11":1}}],["string",{"2":{"22":2,"27":2,"38":1,"40":1,"44":2,"53":2,"60":1,"68":1,"77":1,"104":1,"117":1,"119":1,"122":1,"123":1,"124":1,"128":1,"129":1,"137":1,"139":1,"141":1,"145":1,"147":1,"151":1,"153":1,"157":1,"159":1,"161":2,"163":1,"165":1,"167":1,"169":2,"171":1,"173":1,"175":1,"177":1,"181":1,"185":1,"187":1,"191":1,"193":1,"195":1,"199":1,"219":1,"221":1,"223":1,"227":1,"228":1,"234":1,"236":1,"240":1,"242":1,"244":1,"252":2,"256":1,"262":1,"268":1,"274":1,"286":2,"291":1,"331":1,"347":1,"348":2,"349":2,"380":1}}],["start",{"2":{"376":1}}],["started",{"2":{"360":1}}],["starting",{"2":{"118":1}}],["staked",{"2":{"355":5}}],["staking",{"2":{"13":1}}],["standard",{"2":{"83":1,"85":1,"155":2,"250":1,"380":1}}],["standardized",{"2":{"6":1}}],["status",{"2":{"181":1,"183":1,"189":2,"217":1,"230":1,"372":1}}],["state",{"2":{"73":1}}],["static",{"2":{"21":1,"26":1,"117":1,"122":1,"128":1}}],["sdk",{"0":{"14":1,"359":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"108":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1,"181":1,"182":1,"183":1,"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1,"199":1,"200":1,"201":1,"202":1,"203":1,"204":1,"205":1,"206":1,"207":1,"208":1,"209":1,"210":1,"211":1,"212":1,"213":1,"214":1,"215":1,"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1,"227":1,"228":1,"229":1,"230":1,"231":1,"232":1,"233":1,"234":1,"235":1,"236":1,"237":1,"238":1,"239":1,"240":1,"241":1,"242":1,"243":1,"244":1,"245":1,"246":1,"247":1,"248":1,"249":1,"250":1,"251":1,"252":1,"253":1,"254":1,"255":1,"256":1,"257":1,"258":1,"259":1,"260":1,"261":1,"262":1,"263":1,"264":1,"265":1,"266":1,"267":1,"268":1,"269":1,"270":1,"271":1,"272":1,"273":1,"274":1,"275":1,"276":1,"277":1,"278":1,"279":1,"280":1,"281":1,"282":1,"283":1,"284":1,"285":1,"286":1,"287":1,"288":1,"289":1,"290":1,"291":1,"292":1,"293":1,"294":1,"295":1,"296":1,"297":1,"298":1,"299":1,"300":1,"301":1,"302":1,"303":1,"304":1,"305":1,"306":1,"307":1,"308":1,"309":1,"310":1,"311":1,"312":1,"313":1,"314":1,"315":1,"316":1,"317":1,"318":1,"319":1,"320":1,"321":1,"322":1,"323":1,"324":1,"325":1,"326":1,"327":1,"328":1,"329":1,"330":1,"331":1,"332":1,"333":1,"334":1,"335":1,"336":1,"337":1,"338":1,"339":1,"340":1,"341":1,"342":1,"343":1,"344":1,"345":1,"346":1,"347":1,"348":1,"349":1,"350":1,"351":1,"352":1,"353":1},"2":{"10":1,"31":1,"52":1,"55":1,"59":1,"63":1,"67":1,"69":1,"72":1,"73":1,"85":1,"89":1,"100":1,"271":1,"290":1,"294":2,"297":2,"310":2,"315":2,"334":1,"336":2,"337":1,"339":1,"340":1,"356":2,"357":1,"358":1,"359":2,"361":4,"362":8,"365":3,"366":1,"375":1,"376":4,"379":1,"381":2,"382":2}}],["supply",{"2":{"365":1}}],["support",{"2":{"362":1}}],["supportedpaymenttokeninfo",{"0":{"260":1},"1":{"261":1,"262":1,"263":1,"264":1,"265":1,"266":1,"267":1,"268":1,"269":1}}],["supported",{"0":{"264":1,"266":1,"355":1},"1":{"265":1,"267":1},"2":{"234":1,"236":1,"264":1,"266":1,"276":1,"359":1,"380":1,"383":1}}],["subtypes",{"2":{"382":1}}],["submitted",{"2":{"181":1}}],["subsequently",{"2":{"85":1}}],["subsequent",{"2":{"52":1,"59":1}}],["sure",{"2":{"73":1,"370":1}}],["sucessfully",{"2":{"373":1}}],["such",{"2":{"44":1,"236":1,"356":1,"360":1,"362":1,"364":1,"376":1,"381":1,"382":2}}],["successful",{"2":{"82":1}}],["successfully",{"2":{"48":1,"189":1}}],["success",{"2":{"9":1,"189":2}}],["summary",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1}}],["several",{"2":{"380":1}}],["sequence",{"2":{"376":1}}],["sepolia421614eth0x0000000000000000000000000000000000000000chainlink",{"2":{"355":1}}],["separate",{"2":{"49":1,"363":1}}],["securely",{"2":{"126":1}}],["security",{"0":{"12":1,"354":1},"2":{"12":2,"126":1,"354":1}}],["sends",{"2":{"378":1}}],["send",{"2":{"169":1,"364":1,"365":1,"367":1,"368":1}}],["senderc20op",{"2":{"366":1,"367":1}}],["sender",{"0":{"173":1},"1":{"174":1},"2":{"157":1,"163":1,"165":1,"173":1}}],["sending",{"0":{"371":1},"2":{"109":1,"285":1}}],["sendtransaction",{"2":{"108":1}}],["sent",{"2":{"23":1,"28":1,"149":1,"258":1,"288":1}}],["setup",{"2":{"364":2}}],["set",{"2":{"73":1,"85":1,"287":1,"369":1}}],["see",{"0":{"50":1,"57":1,"65":1,"74":1,"83":1,"91":1,"101":1,"110":1,"295":1,"327":1},"2":{"295":1,"361":1,"363":1}}],["serving",{"2":{"199":1}}],["service",{"2":{"16":2,"25":1,"30":1,"88":1,"98":1,"121":1,"127":1,"131":1,"277":1,"284":1,"289":1,"296":1,"303":1,"309":1,"314":1,"319":1,"329":1,"335":1,"346":1,"353":1}}],["serves",{"2":{"181":1,"221":1,"242":1,"336":1}}],["series",{"2":{"3":1,"365":1,"376":2}}],["selected",{"2":{"7":1}}],["selects",{"2":{"7":1}}],["selection",{"2":{"7":1}}],["seamless",{"2":{"1":1,"234":1}}],["situation",{"2":{"365":1}}],["since",{"2":{"360":1,"362":2,"382":1}}],["singletx",{"2":{"367":1}}],["single",{"2":{"1":1,"6":1,"11":1,"16":2,"21":1,"26":1,"101":1,"201":1,"207":1,"250":1,"304":1,"306":1,"361":1,"379":1}}],["simplistic",{"2":{"364":1}}],["simplifies",{"2":{"67":1}}],["simply",{"2":{"361":1,"365":1,"379":1,"382":2}}],["simpler",{"2":{"364":1}}],["simple",{"2":{"252":1,"256":1,"362":2,"376":2,"381":1,"382":1}}],["simulations",{"2":{"9":1}}],["simulation",{"2":{"9":1}}],["signers",{"2":{"375":4,"380":1}}],["signeraccount",{"2":{"358":1,"370":1}}],["signer",{"0":{"358":1},"2":{"358":4,"359":2,"370":1}}],["signedhash",{"2":{"48":1,"76":1,"77":1,"82":2}}],["signed",{"2":{"7":1,"44":1,"49":1,"76":2,"77":1,"80":1,"81":1,"83":1,"287":1,"288":1,"348":2,"370":1,"371":3,"378":1}}],["signwithinjectedwallet",{"0":{"347":1},"1":{"348":1,"349":1,"350":1,"351":1,"352":1,"353":1},"2":{"347":1,"351":1}}],["signmessage",{"2":{"108":1,"370":1}}],["sign",{"2":{"44":1,"347":1,"348":1,"358":2,"370":2}}],["signitxhashaction",{"2":{"104":1,"108":1,"109":1,"110":1}}],["signing",{"0":{"370":1},"2":{"43":1,"47":2,"48":1,"49":1,"81":2,"107":1,"108":1,"109":2,"348":1,"350":1,"351":1,"370":1}}],["significant",{"2":{"21":1}}],["signhash",{"2":{"43":1,"44":1,"48":2,"49":1}}],["signs",{"2":{"7":1,"347":1,"378":1}}],["signature",{"0":{"175":1},"1":{"176":1},"2":{"1":1,"6":1,"175":2,"347":1,"349":2,"350":1,"351":3,"370":1}}],["circle",{"2":{"361":2}}],["certain",{"2":{"360":1,"381":1,"382":1}}],["c",{"2":{"355":1}}],["click",{"2":{"364":1}}],["client",{"0":{"360":1,"381":1},"2":{"320":1,"327":1,"360":2,"361":1,"365":1,"381":1}}],["class",{"2":{"112":2,"336":1}}],["classes",{"0":{"15":1},"1":{"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"108":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1}}],["currency",{"2":{"258":1}}],["current",{"2":{"67":1,"73":1,"74":1,"85":1,"86":1,"90":1,"100":1,"189":1}}],["customsalt",{"2":{"125":2}}],["custom",{"2":{"122":1,"123":1,"124":1,"126":2,"358":2}}],["customaccount",{"0":{"122":1},"1":{"123":1,"124":1,"125":1,"126":1,"127":1},"2":{"122":1,"125":1}}],["customization",{"2":{"13":1}}],["cream",{"2":{"355":1}}],["creation",{"2":{"236":1}}],["creating",{"0":{"367":1},"2":{"67":1,"297":1,"310":2}}],["createwalletclient",{"2":{"358":3}}],["created",{"2":{"295":1,"363":1,"367":1}}],["createtokenmapping",{"0":{"290":1},"1":{"291":1,"292":1,"293":1,"294":1,"295":1,"296":1},"2":{"290":1,"294":2,"334":2}}],["create2",{"2":{"234":1,"379":1}}],["create",{"0":{"358":1,"362":1},"2":{"67":1,"294":1,"334":1,"347":1,"358":2,"361":1,"362":1,"367":1,"375":1}}],["creates",{"2":{"31":1,"290":1,"320":1,"336":1}}],["crusdc",{"2":{"276":1,"355":1}}],["crucial",{"2":{"112":1}}],["cryptographically",{"2":{"370":1}}],["cryptographic",{"2":{"219":1,"240":1}}],["cross",{"2":{"1":1,"234":1,"367":1}}],["case",{"2":{"364":1,"365":1,"367":1}}],["cases",{"0":{"11":1},"2":{"333":1,"364":2,"365":1}}],["calculations",{"2":{"365":1}}],["calculated",{"2":{"366":1,"367":1}}],["calculate",{"2":{"139":1,"153":1,"365":3,"376":2}}],["calls",{"2":{"376":1}}],["callgaslimit",{"0":{"147":1,"159":1},"1":{"148":1,"160":1},"2":{"147":1,"159":1}}],["calldata",{"0":{"145":1,"157":1},"1":{"146":1,"158":1},"2":{"145":1,"147":1,"157":1,"171":1,"187":1}}],["called",{"2":{"76":1,"207":2,"365":2,"378":1,"379":1}}],["calling",{"2":{"73":1,"77":1,"90":1,"360":1,"361":1,"384":1}}],["call",{"2":{"21":1,"26":1,"145":1,"157":1,"159":1,"252":1,"287":1,"359":1,"365":2,"366":2,"369":1,"376":3}}],["catch",{"2":{"48":1,"72":1,"82":1,"89":1,"99":1,"308":1,"325":1,"334":1,"351":1}}],["cannonical",{"2":{"361":2}}],["cannot",{"2":{"345":1}}],["canonical",{"2":{"361":1}}],["can",{"2":{"12":1,"16":1,"21":1,"23":1,"28":1,"85":1,"147":1,"181":1,"201":1,"205":1,"232":1,"252":1,"254":1,"256":1,"276":1,"288":1,"294":1,"339":1,"356":1,"358":1,"359":1,"360":1,"361":3,"362":3,"363":2,"364":1,"365":1,"366":1,"367":1,"368":1,"370":1,"372":1,"375":1,"376":2,"378":1,"381":1,"382":1,"384":1}}],["check",{"2":{"356":1,"359":1,"361":1,"372":1}}],["checkout",{"2":{"11":1,"364":1}}],["charge",{"2":{"369":1}}],["changing",{"2":{"52":1,"56":2,"59":1,"64":2}}],["change",{"2":{"91":2,"375":1}}],["changemasteraddress",{"0":{"59":1},"1":{"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1},"2":{"59":1,"63":1,"90":1,"91":1}}],["changes",{"2":{"52":1,"59":1}}],["changeaccountsalt",{"0":{"52":1},"1":{"53":1,"54":1,"55":1,"56":1,"57":1,"58":1},"2":{"52":1,"55":1,"90":1,"91":1}}],["chain56bnb0x0000000000000000000000000000000000000000wrapped",{"2":{"355":1}}],["chain43114avax0x0000000000000000000000000000000000000000wrapped",{"2":{"355":1}}],["chainconfig",{"2":{"331":1}}],["chainconfigs",{"2":{"283":2,"294":1,"331":1,"334":1}}],["chaintokenpair",{"2":{"74":1}}],["chainid",{"0":{"135":1,"149":1,"185":1,"203":1,"300":1},"1":{"136":1,"150":1,"186":1,"204":1},"2":{"21":1,"22":1,"26":1,"27":1,"67":1,"68":2,"69":1,"99":1,"104":1,"108":1,"135":1,"149":1,"185":1,"203":1,"281":1,"283":4,"286":1,"288":1,"297":1,"298":1,"300":1,"308":2,"331":1,"334":2,"342":1,"343":1,"360":1,"361":3,"381":1,"384":1}}],["chainsrpcinfo",{"2":{"361":1}}],["chains",{"0":{"264":1},"1":{"265":1},"2":{"1":1,"3":1,"8":1,"11":1,"12":1,"181":1,"230":1,"236":1,"238":1,"248":1,"264":1,"279":1,"281":1,"282":1,"283":1,"290":1,"294":1,"304":2,"332":1,"333":1,"358":1,"360":1,"361":2,"363":2,"365":1,"381":1,"382":2}}],["chain",{"0":{"356":1},"1":{"357":1,"358":1,"359":1,"360":1,"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1},"2":{"1":2,"8":1,"10":1,"11":2,"68":1,"69":1,"189":1,"201":1,"207":1,"234":1,"246":1,"281":1,"290":1,"291":3,"292":1,"293":1,"294":3,"297":1,"299":1,"304":2,"306":1,"307":1,"308":1,"331":1,"334":2,"342":1,"345":1,"355":1,"356":4,"360":3,"361":1,"363":2,"364":2,"365":2,"366":2,"367":4,"370":1,"373":1,"376":6,"382":2,"383":1}}],["chooses",{"2":{"16":1}}],["couples",{"2":{"379":1}}],["counts",{"2":{"381":1}}],["count",{"2":{"376":1}}],["could",{"2":{"47":1,"364":1}}],["covers",{"2":{"364":1}}],["coin",{"2":{"355":6}}],["coding",{"2":{"297":1,"310":1,"315":1}}],["code",{"2":{"161":1}}],["collisions",{"2":{"126":1}}],["correspond",{"2":{"276":1}}],["corresponding",{"2":{"119":1}}],["correctly",{"2":{"73":1}}],["correct",{"2":{"49":1,"81":1,"109":1}}],["core",{"0":{"5":1},"1":{"6":1,"7":1,"8":1,"9":1},"2":{"382":1}}],["costs",{"2":{"133":1,"254":1}}],["cost",{"2":{"7":1,"135":1,"141":1}}],["congrats",{"2":{"373":1}}],["conclusion",{"0":{"373":1}}],["concat",{"2":{"367":1}}],["concept",{"2":{"362":1}}],["concepts",{"0":{"2":1},"1":{"3":1,"4":1},"2":{"356":1}}],["conjuction",{"2":{"356":1}}],["conjunction",{"2":{"22":1,"27":1,"139":1,"153":1}}],["converted",{"2":{"348":1}}],["convenient",{"2":{"49":1}}],["connecting",{"2":{"324":1}}],["connected",{"2":{"52":1,"325":1}}],["conditions",{"2":{"189":2}}],["confirmed",{"2":{"103":1}}],["configured",{"2":{"336":1}}],["configuration",{"2":{"67":1,"271":1,"336":1,"337":1,"340":1}}],["config",{"0":{"271":1},"1":{"272":1,"273":1,"274":1,"275":1},"2":{"33":1,"34":2,"271":1,"336":1,"337":2,"339":4}}],["continue",{"2":{"365":1}}],["contained",{"2":{"378":1}}],["contain",{"2":{"94":1,"291":1,"367":1}}],["contains",{"2":{"77":1,"86":1,"93":1,"207":2,"225":1,"246":1,"384":1}}],["containing",{"2":{"44":1,"45":1,"69":1,"78":1,"95":1,"104":1,"281":1,"299":1,"306":1,"331":1,"332":1,"362":1,"367":1,"377":1}}],["context",{"2":{"56":1,"64":1}}],["controls",{"2":{"348":1}}],["control",{"2":{"12":1}}],["contracts",{"2":{"370":1}}],["contractanyways",{"2":{"365":1}}],["contract",{"0":{"379":1},"1":{"380":1},"2":{"6":1,"16":1,"21":2,"22":2,"26":2,"27":2,"52":2,"59":2,"85":1,"86":1,"103":2,"112":1,"173":1,"207":2,"232":2,"234":1,"250":1,"252":1,"256":2,"285":2,"286":1,"287":1,"291":1,"359":1,"376":2,"379":1,"380":1}}],["considers",{"2":{"361":1}}],["consider",{"2":{"361":2}}],["considerations",{"0":{"12":1}}],["consistent",{"2":{"234":2,"297":1,"310":1,"315":1}}],["consult",{"2":{"109":1}}],["console",{"2":{"48":2,"72":2,"82":2,"89":3,"99":2,"120":1,"125":1,"130":1,"283":2,"294":1,"308":2,"325":3,"334":2,"351":2}}],["constants",{"2":{"361":1}}],["constructs",{"2":{"285":1}}],["construct",{"2":{"110":1}}],["constructors",{"0":{"17":1,"32":1,"113":1},"1":{"18":1,"19":1,"33":1,"34":1,"35":1,"36":1,"114":1,"115":1}}],["const",{"2":{"24":1,"29":1,"48":3,"72":1,"82":3,"89":1,"99":2,"108":1,"120":1,"125":1,"130":1,"283":3,"288":2,"294":2,"302":1,"308":4,"313":2,"318":1,"325":1,"334":2,"339":2,"351":3,"358":4,"359":2,"360":2,"361":3,"362":6,"363":1,"366":1,"367":1,"369":1,"370":1,"371":1,"374":1,"375":1,"376":5,"381":1,"382":1}}],["com",{"2":{"334":2,"339":1,"354":1}}],["combines",{"2":{"67":1,"297":1}}],["combined",{"2":{"53":1,"236":1}}],["combination",{"2":{"52":1,"59":1}}],["combining",{"2":{"43":1}}],["commonly",{"2":{"285":1}}],["communicating",{"2":{"88":1}}],["communicate",{"2":{"31":2}}],["committed",{"2":{"12":1,"244":1,"248":1}}],["committing",{"2":{"7":1}}],["commits",{"2":{"7":1}}],["commitment",{"0":{"4":1,"219":1,"240":1},"1":{"220":1,"241":1},"2":{"1":1,"219":2,"238":1,"240":3}}],["compensate",{"2":{"171":1}}],["comply",{"2":{"382":1}}],["completed",{"2":{"366":1}}],["complete",{"2":{"67":1,"364":1}}],["complex",{"2":{"1":1,"364":1,"365":1}}],["compliant",{"2":{"52":1,"59":1,"85":1,"143":1,"250":1}}],["compared",{"2":{"21":1}}],["compatible",{"2":{"6":1,"10":1}}],["components",{"0":{"5":1},"1":{"6":1,"7":1,"8":1,"9":1}}],["omitted",{"2":{"364":1}}],["okay",{"2":{"364":1}}],["our",{"2":{"356":1,"364":1,"367":1}}],["out",{"2":{"356":1}}],["outputamount",{"2":{"376":3}}],["output",{"2":{"283":1,"294":1,"308":1,"365":1}}],["outputs",{"2":{"120":1,"125":1,"130":1}}],["outcome",{"2":{"181":1,"365":1}}],["occur",{"2":{"135":1,"246":1}}],["occurs",{"2":{"71":1}}],["owner",{"2":{"236":1,"359":1,"374":2,"380":1}}],["owned",{"2":{"52":1,"137":1,"151":1,"285":1}}],["own",{"2":{"122":1,"361":1,"365":2}}],["obtain",{"2":{"83":1,"93":1}}],["objects",{"2":{"230":1,"281":1,"290":1,"291":1,"297":1,"298":1,"306":1,"308":1,"310":2,"315":2,"331":1,"360":1,"361":2,"363":1,"382":1}}],["object",{"0":{"358":1},"2":{"23":1,"28":1,"44":1,"45":1,"67":2,"69":1,"77":1,"78":1,"86":2,"93":1,"94":2,"95":1,"99":1,"104":1,"108":1,"155":1,"197":1,"225":1,"264":1,"266":1,"271":1,"285":1,"287":2,"290":1,"292":1,"297":2,"299":2,"304":1,"306":1,"311":1,"312":1,"316":1,"317":1,"331":1,"332":1,"358":1,"361":1,"362":2,"367":1,"368":1,"370":2,"377":1,"379":2,"381":3,"382":2,"383":1,"384":2}}],["other",{"2":{"71":1,"234":1,"236":1,"290":1,"294":1,"350":1,"364":1,"376":1,"379":1}}],["op",{"2":{"360":1,"365":1,"380":1}}],["opt",{"2":{"334":1}}],["options",{"2":{"271":1,"304":1,"305":2,"336":1,"337":1,"362":1}}],["optional",{"2":{"205":2,"209":2}}],["optimism",{"2":{"72":1,"283":2,"294":1,"308":1,"358":1,"360":3,"361":3,"365":1,"367":2,"381":2,"382":3}}],["optimistic",{"0":{"9":1}}],["optimize",{"2":{"16":1}}],["optimal",{"2":{"9":1}}],["opcode",{"2":{"234":1,"379":1}}],["opcodes",{"2":{"9":1}}],["operate",{"2":{"232":1}}],["operation",{"2":{"141":1,"143":1,"145":1,"149":1,"155":1,"183":1,"187":1,"189":2,"199":1,"230":1,"242":1,"250":1}}],["operations",{"0":{"365":1},"2":{"16":1,"52":1,"56":1,"59":1,"64":1,"100":1,"103":1,"133":1,"143":1,"234":1,"238":1}}],["oriented",{"2":{"362":1}}],["org",{"2":{"83":1,"283":1}}],["or",{"2":{"47":2,"56":1,"64":1,"71":1,"80":1,"85":1,"88":1,"90":1,"98":2,"107":1,"181":1,"256":1,"282":1,"287":1,"307":1,"321":1,"325":1,"328":1,"340":1,"350":1,"352":1,"360":1,"365":1,"367":3,"377":3,"380":1,"381":1,"382":2}}],["order",{"2":{"9":1,"360":1,"362":1,"363":3,"376":3,"378":1,"381":1}}],["orchestrates",{"2":{"4":1}}],["over",{"2":{"175":1}}],["overpaid",{"2":{"8":1}}],["overview",{"0":{"1":1}}],["onto",{"2":{"365":1}}],["only",{"2":{"360":1,"361":2,"383":1}}],["once",{"2":{"76":1,"365":1}}],["ongoing",{"2":{"56":1,"64":1}}],["onboarding",{"2":{"11":1}}],["ones",{"2":{"361":1}}],["one42161eth0x0000000000000000000000000000000000000000wrapped",{"2":{"355":1}}],["one",{"2":{"8":1,"308":1,"361":3,"364":2,"365":1,"366":1,"367":2,"377":1,"382":1,"383":1}}],["on",{"2":{"7":1,"21":2,"26":2,"57":1,"65":1,"67":1,"68":1,"76":2,"109":1,"110":1,"133":1,"135":1,"145":1,"147":1,"185":1,"189":2,"191":1,"195":1,"201":1,"203":1,"207":3,"234":1,"246":1,"248":1,"283":2,"288":1,"291":1,"308":2,"342":1,"356":1,"359":1,"361":3,"362":1,"364":1,"365":10,"366":3,"367":4,"370":1,"376":6,"377":1,"379":2,"381":1,"382":4,"384":1}}],["offical",{"2":{"361":1}}],["offers",{"2":{"31":1}}],["of",{"2":{"1":1,"3":2,"4":1,"10":1,"11":1,"12":2,"16":1,"22":3,"27":2,"31":1,"43":2,"45":1,"48":1,"49":1,"52":1,"55":1,"56":2,"59":1,"63":1,"64":2,"67":1,"68":2,"69":2,"72":1,"73":1,"76":1,"78":1,"89":1,"90":1,"94":1,"100":1,"105":1,"109":2,"117":1,"118":1,"122":1,"129":1,"135":1,"137":1,"141":1,"147":3,"149":1,"151":1,"155":1,"169":1,"171":1,"173":1,"179":3,"181":1,"183":1,"185":1,"187":1,"189":2,"193":1,"199":1,"203":1,"207":1,"217":2,"219":1,"221":1,"223":1,"230":3,"232":1,"234":1,"240":1,"242":1,"244":1,"248":2,"250":2,"252":1,"254":1,"256":1,"258":1,"276":1,"279":1,"281":1,"282":1,"285":1,"286":4,"287":1,"290":3,"291":2,"297":1,"298":2,"306":1,"308":1,"310":1,"313":1,"315":1,"320":1,"331":1,"332":1,"333":1,"336":1,"338":1,"343":2,"356":3,"360":1,"361":6,"362":4,"363":4,"364":5,"365":4,"366":1,"367":1,"369":3,"372":1,"376":9,"377":1,"378":4,"379":3,"380":1,"381":4,"382":5,"383":2,"384":4}}],["ecnoded",{"2":{"376":1}}],["ecosystem",{"2":{"16":1,"112":1,"234":2,"339":1,"379":1,"382":1}}],["evm",{"2":{"365":1,"382":1}}],["everything",{"2":{"368":1}}],["every",{"2":{"360":1,"362":2,"370":1,"378":1,"380":2}}],["etc",{"2":{"362":1}}],["ethers",{"2":{"356":1}}],["ether",{"2":{"355":10}}],["ethereum",{"2":{"60":1,"83":1,"108":1,"155":1,"234":1,"288":1,"294":1,"308":1,"320":2,"321":1,"324":3,"328":2,"347":3,"348":1,"350":1,"351":1,"352":2,"356":1,"358":1,"379":1}}],["eth",{"2":{"68":1,"258":1,"276":1,"286":1,"334":1,"380":1}}],["equivalent",{"2":{"361":2}}],["else",{"2":{"283":1,"325":1}}],["either",{"2":{"281":1}}],["eip",{"2":{"83":2}}],["eips",{"2":{"83":2}}],["essential",{"2":{"232":1}}],["estimating",{"2":{"7":1}}],["earlier",{"2":{"363":1}}],["earliest",{"2":{"191":1,"205":1}}],["easily",{"2":{"381":1}}],["easier",{"2":{"11":1}}],["easy",{"2":{"290":1}}],["eachother",{"2":{"361":1,"382":1}}],["each",{"2":{"230":1,"248":1,"281":1,"291":1,"304":1,"306":1,"308":1,"331":1,"363":1,"380":1}}],["empty",{"2":{"97":1,"161":1,"169":1,"252":1}}],["eoa",{"2":{"52":1,"53":1,"137":1,"139":1,"151":1,"153":1,"256":1,"285":2}}],["error",{"2":{"48":3,"62":1,"71":2,"72":3,"80":1,"81":1,"82":3,"88":1,"89":3,"97":1,"99":3,"282":1,"293":1,"307":1,"308":4,"324":1,"325":4,"333":1,"334":4,"340":1,"350":1,"351":4,"362":3,"370":1}}],["errors",{"2":{"47":2,"49":1,"98":1,"107":1}}],["erc721",{"2":{"382":1}}],["erc20abi",{"2":{"366":1}}],["erc20",{"2":{"103":2,"104":1,"108":1,"141":1,"285":2,"286":1,"287":3,"363":1,"376":1,"381":1,"382":1,"384":1}}],["erc4337userop",{"0":{"155":1},"1":{"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1},"2":{"155":1,"197":1,"248":1}}],["erc4337",{"2":{"52":2,"57":1,"59":2,"65":1,"85":2,"359":1,"379":1}}],["erc",{"2":{"6":1,"8":1,"143":1,"147":1,"155":2,"197":1,"250":1}}],["efficiency",{"2":{"16":1}}],["efficient",{"2":{"10":1}}],["e",{"2":{"11":1,"49":1,"68":1,"258":1,"286":1,"320":1,"324":1,"347":1,"358":1,"365":1,"376":1,"380":5}}],["exact",{"2":{"365":1}}],["example",{"0":{"24":1,"29":1,"48":1,"55":1,"63":1,"72":1,"82":1,"89":1,"99":1,"108":1,"120":1,"125":1,"130":1,"283":1,"288":1,"294":1,"302":1,"308":1,"313":1,"318":1,"325":1,"334":1,"339":1,"351":1},"2":{"339":1,"361":1,"362":1,"363":1,"365":1,"376":1}}],["exists",{"2":{"307":1}}],["existing",{"2":{"6":1,"11":1,"376":1}}],["exceptions",{"2":{"234":1}}],["explicit",{"2":{"370":1}}],["explore",{"2":{"356":1}}],["explorer",{"2":{"217":1,"372":2}}],["expressed",{"2":{"363":1}}],["experiences",{"2":{"376":1}}],["experience",{"2":{"362":1}}],["expects",{"2":{"362":1}}],["expected",{"2":{"143":1,"250":1}}],["export",{"2":{"362":1,"376":1}}],["exported",{"2":{"361":2}}],["expose",{"2":{"361":1,"376":1}}],["exposes",{"2":{"361":1,"380":1,"381":1}}],["extra",{"2":{"169":1}}],["externally",{"2":{"52":1,"137":1,"151":1,"285":1}}],["executetxaction",{"2":{"104":1,"108":1,"109":1,"110":1}}],["executeitx",{"2":{"104":3,"108":1}}],["executeresponse",{"0":{"179":1},"1":{"180":1,"181":1,"182":1},"2":{"43":1,"45":2,"76":1,"78":2,"82":2,"103":1,"105":1,"179":1}}],["executebatch",{"2":{"21":1}}],["executedaction",{"0":{"183":1},"1":{"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1,"199":1,"200":1},"2":{"183":1,"230":2}}],["executed",{"2":{"21":2,"22":1,"26":1,"27":1,"45":1,"48":2,"78":1,"145":1,"149":1,"183":1,"185":1,"187":1,"189":1,"191":1,"195":1,"197":1,"203":1,"205":1,"207":1,"209":1,"230":1,"238":1,"250":1,"285":1,"286":1,"362":1,"365":1,"370":1,"373":1,"376":2,"377":1,"378":1}}],["execute",{"0":{"76":1},"1":{"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1},"2":{"12":1,"26":1,"44":1,"50":2,"68":1,"76":1,"82":1,"110":2,"179":1,"207":1,"250":1,"362":1,"369":1,"370":2,"371":2,"372":1,"378":1}}],["executes",{"2":{"7":1,"9":1,"43":1,"76":1,"103":2}}],["executing",{"0":{"368":1},"1":{"369":1,"370":1,"371":1,"372":1},"2":{"7":1,"8":1,"21":1,"43":2,"49":1,"93":1,"104":1,"223":1,"244":1,"248":1,"254":1,"369":1}}],["executiondata",{"0":{"187":1},"1":{"188":1},"2":{"187":1}}],["executionstatus",{"0":{"189":1},"1":{"190":1},"2":{"189":1}}],["executions",{"2":{"49":1}}],["execution",{"0":{"9":1,"364":1,"371":1,"372":1},"1":{"365":1,"366":1,"367":1},"2":{"1":1,"4":2,"7":3,"9":1,"16":1,"21":1,"22":1,"23":2,"26":1,"28":1,"43":1,"47":2,"49":1,"76":2,"77":1,"80":1,"82":2,"104":1,"105":1,"107":1,"108":1,"109":1,"147":1,"157":1,"159":1,"171":1,"179":1,"181":1,"183":1,"189":4,"193":1,"217":1,"219":1,"225":1,"240":1,"362":1,"367":1,"368":1,"369":1,"370":1}}],["end",{"2":{"376":1}}],["endpoint",{"2":{"77":1,"380":1}}],["enabled",{"2":{"328":1,"347":1,"352":1}}],["enables",{"2":{"1":1,"6":1,"10":1,"376":1}}],["environment",{"2":{"328":2,"352":2,"358":2,"382":1}}],["enough",{"2":{"283":1,"365":1}}],["encapsulates",{"2":{"179":1}}],["encounter",{"2":{"81":1}}],["encodeacrosscalldata",{"2":{"376":1}}],["encodeaction",{"0":{"297":1},"1":{"298":1,"299":1,"300":1,"301":1,"302":1,"303":1},"2":{"297":1,"302":1}}],["encodeapprovetx",{"2":{"376":1}}],["encodepaymentfee",{"2":{"367":1}}],["encodefunctiondata",{"2":{"366":1}}],["encodetx",{"0":{"315":1},"1":{"316":1,"317":1,"318":1,"319":1},"2":{"315":1,"318":1}}],["encodetxfee",{"0":{"67":1},"1":{"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1},"2":{"67":1,"72":1}}],["encodeitx",{"0":{"310":1},"1":{"311":1,"312":1,"313":1,"314":1},"2":{"310":1,"313":1}}],["encodebridgingdata",{"2":{"382":1}}],["encodebridgingdatafromstrategyoptions",{"2":{"305":1}}],["encodebridgingdatafromstrategy",{"0":{"304":1},"1":{"305":1,"306":1,"307":1,"308":1,"309":1},"2":{"304":1,"308":1}}],["encodebridgingops",{"2":{"365":2,"367":1}}],["encodebatchcall",{"0":{"21":1},"1":{"22":1,"23":1,"24":1,"25":1},"2":{"21":1,"24":1,"101":1}}],["encodeuseropcall",{"0":{"26":1},"1":{"27":1,"28":1,"29":1,"30":1},"2":{"26":1,"29":1,"101":1}}],["encoded",{"2":{"22":1,"27":1,"145":1,"252":1,"287":1,"306":1,"308":1,"311":1,"316":1,"368":1,"376":1,"377":1,"380":1}}],["encodesinglebridgedata",{"2":{"304":1,"308":2}}],["encodes",{"2":{"21":1,"26":1,"304":2}}],["encode",{"2":{"16":1,"72":1,"362":2,"365":2,"366":1,"367":1,"376":4}}],["encoding",{"0":{"364":1,"365":1,"366":1},"1":{"365":1,"366":1,"367":1},"2":{"16":2,"25":1,"30":1,"31":1,"98":1,"100":1,"101":2,"305":1,"308":3,"360":1,"381":1}}],["encodingservice",{"0":{"16":1,"18":1},"1":{"17":1,"18":1,"19":2,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1},"2":{"18":2,"19":1,"24":1,"29":1,"98":1,"101":2}}],["ensures",{"2":{"139":1,"153":1,"236":1,"279":1}}],["ensure",{"2":{"16":1,"49":1,"56":1,"64":1,"81":1,"109":1,"126":1}}],["entry",{"2":{"336":1}}],["entrypoint",{"2":{"8":1}}],["entire",{"2":{"6":1,"175":1,"242":1,"364":1,"365":1}}],["tutorial",{"2":{"356":1,"359":1,"360":3,"362":2,"364":1}}],["tell",{"2":{"369":1}}],["tells",{"2":{"362":1,"376":1}}],["te",{"2":{"365":1}}],["templates",{"2":{"362":1}}],["team",{"2":{"354":1}}],["technical",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1}}],["tightly",{"2":{"379":1}}],["timestamp",{"2":{"191":1,"195":1,"205":1,"209":1}}],["tips",{"2":{"9":1}}],["typically",{"2":{"167":1,"252":1,"285":1,"304":1}}],["type",{"0":{"226":1,"270":1,"272":1},"1":{"271":1,"272":1,"273":2,"274":2,"275":1,"276":1,"277":1},"2":{"321":1,"362":1,"376":4,"384":1}}],["types",{"2":{"31":1,"136":1,"138":1,"140":1,"142":1,"146":1,"148":1,"150":1,"152":1,"154":1,"158":1,"160":1,"162":1,"164":1,"166":1,"168":1,"170":1,"172":1,"174":1,"176":1,"178":1,"182":1,"186":1,"188":1,"190":1,"192":1,"194":1,"196":1,"198":1,"200":1,"204":1,"206":1,"208":1,"210":1,"214":1,"216":1,"220":1,"222":1,"224":1,"229":1,"231":1,"235":1,"237":1,"241":1,"243":1,"245":1,"247":1,"249":1,"253":1,"255":1,"257":1,"259":1,"263":1,"265":1,"267":1,"269":1}}],["typed",{"2":{"31":1}}],["t",{"2":{"161":1,"234":1,"258":1,"360":2,"365":1,"379":1}}],["target",{"2":{"147":1,"191":1,"195":1}}],["tailored",{"2":{"143":1}}],["takes",{"2":{"304":1}}],["take",{"2":{"44":1,"365":1,"367":1}}],["two",{"2":{"103":1,"369":1,"377":1,"382":1}}],["txbatch",{"2":{"362":1,"376":2}}],["txparams",{"2":{"288":2}}],["tx",{"2":{"26":1,"27":1,"108":2,"315":1,"316":1,"318":1,"367":1}}],["txs",{"0":{"207":1,"301":1},"1":{"208":1},"2":{"21":1,"22":1,"99":1,"207":1,"297":1,"298":1,"301":1}}],["ts",{"2":{"25":1,"30":1,"36":1,"39":1,"41":1,"51":1,"58":1,"66":1,"75":1,"84":1,"92":1,"102":1,"111":1,"121":1,"127":1,"131":1,"136":1,"138":1,"140":1,"142":1,"146":1,"148":1,"150":1,"152":1,"154":1,"158":1,"160":1,"162":1,"164":1,"166":1,"168":1,"170":1,"172":1,"174":1,"176":1,"178":1,"182":1,"186":1,"188":1,"190":1,"192":1,"194":1,"196":1,"198":1,"200":1,"204":1,"206":1,"208":1,"210":1,"214":1,"216":1,"220":1,"222":1,"224":1,"229":1,"231":1,"235":1,"237":1,"241":1,"243":1,"245":1,"247":1,"249":1,"253":1,"255":1,"257":1,"259":1,"263":1,"265":1,"267":1,"269":1,"275":1,"277":1,"284":1,"289":1,"296":1,"303":1,"309":1,"314":1,"319":1,"329":1,"335":1,"341":1,"346":1,"353":1}}],["top",{"2":{"379":1}}],["togehter",{"2":{"378":1}}],["together",{"2":{"361":1,"371":1}}],["took",{"2":{"365":1}}],["toamountmin",{"2":{"362":1}}],["tostring",{"2":{"362":1}}],["totokenaddress",{"2":{"362":1}}],["totalrelayfee",{"2":{"376":1}}],["totalreceivedondestination",{"2":{"366":2}}],["total",{"2":{"163":1,"281":1,"332":1,"363":1,"365":3,"366":2,"376":2,"384":1}}],["tochainid",{"2":{"362":1}}],["tokenaddress",{"2":{"308":1,"376":1}}],["tokenamount",{"0":{"227":1},"2":{"227":1}}],["tokeninfo",{"2":{"290":1,"291":3,"342":1,"344":1}}],["tokenmappings",{"2":{"361":1}}],["tokenmapping",{"2":{"283":2,"290":2,"292":1,"308":2,"331":1,"363":2,"365":1,"381":1}}],["tokenvalue",{"0":{"228":1},"2":{"228":1,"369":1}}],["tokentotransfer",{"2":{"104":1,"108":1}}],["tokenstoken",{"2":{"355":1}}],["tokenstrategy",{"2":{"279":1,"281":1}}],["tokens",{"0":{"266":1,"355":1},"1":{"267":1},"2":{"31":1,"103":2,"104":1,"266":1,"276":1,"279":2,"282":1,"283":1,"285":3,"286":3,"287":1,"290":1,"291":1,"304":1,"333":2,"361":5,"365":2,"376":1,"382":3}}],["token",{"0":{"141":1,"361":1,"382":1},"1":{"142":1,"383":1},"2":{"8":1,"67":1,"68":1,"69":2,"71":1,"74":1,"107":1,"108":1,"141":2,"189":1,"225":1,"246":1,"276":1,"277":1,"282":1,"286":3,"287":1,"288":1,"290":2,"291":2,"292":1,"304":2,"307":1,"330":1,"331":2,"332":1,"334":1,"342":1,"343":1,"344":1,"345":1,"346":1,"355":9,"360":1,"361":10,"363":2,"365":1,"369":1,"381":1,"382":3,"383":1,"384":2}}],["to",{"0":{"256":1,"356":1},"1":{"257":1,"357":1,"358":1,"359":1,"360":1,"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1},"2":{"7":3,"11":1,"12":2,"16":2,"21":3,"22":2,"23":1,"24":2,"27":2,"28":1,"29":1,"31":2,"44":3,"45":1,"48":1,"49":1,"50":2,"52":1,"53":1,"59":1,"60":1,"67":2,"68":1,"69":2,"72":1,"74":2,"78":1,"81":1,"83":1,"86":1,"89":1,"90":1,"91":2,"93":1,"95":1,"99":2,"103":2,"104":1,"105":1,"109":2,"110":3,"112":1,"119":1,"122":1,"126":2,"133":1,"139":1,"141":1,"145":2,"149":2,"153":1,"157":2,"163":1,"165":1,"167":1,"169":2,"171":1,"175":1,"181":1,"189":1,"207":1,"234":1,"238":1,"244":1,"246":1,"248":1,"250":1,"256":1,"258":1,"276":1,"279":1,"281":3,"285":4,"286":1,"287":3,"288":1,"290":1,"297":1,"304":2,"306":1,"308":1,"310":1,"311":1,"315":1,"316":1,"321":1,"324":2,"328":1,"331":2,"332":1,"339":1,"340":1,"343":1,"344":1,"347":1,"348":3,"349":1,"352":1,"356":4,"358":2,"359":2,"360":8,"361":10,"362":9,"363":3,"364":2,"365":11,"366":2,"367":4,"368":1,"369":3,"370":5,"371":1,"372":2,"374":1,"375":3,"376":18,"377":1,"378":2,"379":2,"380":1,"381":5,"382":7,"383":1}}],["trigger",{"2":{"376":1}}],["triggered",{"2":{"376":1}}],["triggers",{"2":{"76":1}}],["true",{"2":{"363":1}}],["truncate",{"2":{"361":1}}],["treat",{"2":{"361":1}}],["tree",{"2":{"3":1,"377":1,"378":2}}],["tracking",{"0":{"372":1}}],["track",{"2":{"181":1}}],["transcation",{"2":{"376":1,"378":1}}],["transport",{"2":{"358":2}}],["transferring",{"2":{"104":1}}],["transfertosmartaccount",{"2":{"104":5,"108":1}}],["transfer",{"2":{"103":1,"104":1,"107":1,"109":2,"110":1,"258":1,"285":2,"286":1,"287":1,"362":1,"366":2}}],["transferandexecute",{"0":{"103":1},"1":{"104":1,"105":1,"106":1,"107":1,"108":1,"109":1,"110":1,"111":1},"2":{"103":1,"108":1}}],["transfers",{"2":{"12":1,"103":2,"252":1,"256":1,"287":1}}],["transactionrequest",{"2":{"362":2}}],["transactions",{"2":{"3":1,"8":2,"16":2,"21":3,"22":2,"31":1,"44":1,"56":1,"64":1,"207":2,"258":1,"299":1,"358":1,"362":1,"365":1,"367":3,"370":1,"376":3,"377":1,"378":2}}],["transaction",{"0":{"3":1,"4":1,"367":1,"368":1,"377":1},"1":{"369":1,"370":1,"371":1,"372":1,"378":1},"2":{"1":2,"26":1,"27":2,"43":2,"44":1,"45":1,"50":1,"67":2,"72":1,"76":1,"78":1,"93":2,"94":1,"101":2,"103":1,"104":1,"108":2,"109":2,"110":1,"133":1,"135":2,"141":1,"169":1,"173":1,"179":1,"181":3,"201":2,"203":1,"205":1,"207":1,"209":1,"217":1,"219":1,"221":2,"223":1,"225":1,"230":1,"238":2,"240":1,"242":1,"244":1,"246":1,"248":2,"250":2,"252":1,"254":1,"256":1,"258":1,"285":1,"286":2,"362":1,"367":2,"369":2,"373":1,"376":1,"378":4}}],["trying",{"2":{"365":1}}],["try",{"2":{"48":1,"72":1,"82":1,"89":1,"99":1,"308":1,"325":1,"334":1,"351":1}}],["threshold",{"2":{"375":1,"380":1}}],["throw",{"2":{"47":1,"62":1,"71":1,"80":1,"88":1,"98":1,"107":1,"362":3}}],["throws",{"0":{"47":1,"62":1,"71":1,"80":1,"88":1,"97":1,"98":1,"107":1,"282":1,"293":1,"307":1,"324":1,"333":1,"340":1,"345":1,"350":1},"2":{"97":1,"282":1,"293":1,"307":1,"324":1,"333":1,"340":1,"350":1}}],["through",{"2":{"9":1,"12":1,"382":1}}],["thing",{"2":{"366":1}}],["things",{"2":{"362":1,"382":1,"383":1}}],["think",{"2":{"362":1}}],["thirdaccountsalt",{"2":{"120":2}}],["this",{"2":{"16":1,"21":2,"26":1,"43":1,"44":2,"49":1,"52":2,"53":1,"56":1,"59":2,"60":1,"64":1,"67":1,"73":2,"76":1,"77":1,"85":1,"90":2,"93":1,"94":1,"100":1,"103":1,"109":2,"112":1,"117":1,"122":1,"133":1,"135":1,"139":1,"143":1,"145":1,"147":1,"149":1,"153":1,"155":1,"179":1,"181":1,"183":1,"189":1,"193":1,"201":1,"207":2,"217":1,"230":1,"232":1,"234":1,"238":1,"240":1,"242":1,"248":1,"250":1,"252":1,"254":2,"256":1,"285":1,"290":1,"294":1,"297":1,"298":1,"304":1,"308":1,"310":1,"315":1,"320":1,"328":1,"336":1,"347":1,"348":2,"352":1,"356":2,"359":1,"360":8,"361":1,"362":2,"363":1,"364":4,"365":1,"366":3,"367":1,"370":1,"376":2,"379":1,"380":1,"381":2,"382":1}}],["them",{"2":{"361":3,"362":1,"365":1,"376":1}}],["then",{"2":{"294":1,"320":1,"362":1,"363":1,"366":2,"376":1,"382":1}}],["they",{"2":{"126":1,"361":4,"378":1}}],["their",{"2":{"122":1,"324":1,"348":1,"378":1,"380":1}}],["there",{"2":{"71":1,"80":1,"88":1,"98":1,"169":1,"282":1,"324":1,"350":1,"365":1}}],["these",{"2":{"47":1,"73":1,"276":1,"361":3,"364":1,"379":1,"382":2}}],["the",{"0":{"364":1,"365":1,"366":1,"368":1,"370":1,"371":1,"372":1},"1":{"365":1,"366":1,"367":1,"369":1,"370":1,"371":1,"372":1},"2":{"1":1,"7":2,"12":1,"16":2,"21":2,"22":8,"23":2,"26":3,"27":9,"28":1,"31":4,"43":6,"44":5,"45":2,"47":1,"49":3,"50":2,"52":5,"53":2,"55":1,"56":3,"59":4,"60":1,"62":1,"63":1,"64":3,"67":5,"68":5,"69":9,"71":3,"72":1,"73":3,"74":3,"76":4,"77":5,"78":2,"80":2,"81":3,"83":1,"85":6,"86":3,"88":2,"89":1,"90":1,"91":2,"93":6,"94":1,"95":1,"97":2,"98":4,"100":2,"103":4,"104":3,"105":2,"107":1,"109":12,"110":4,"112":1,"118":2,"119":1,"122":1,"124":1,"128":1,"129":1,"133":4,"135":6,"137":3,"139":3,"141":4,"143":3,"145":4,"147":5,"149":4,"151":3,"153":3,"155":3,"157":3,"159":2,"161":3,"163":3,"165":2,"167":1,"169":4,"171":2,"173":3,"175":2,"177":2,"179":5,"181":4,"183":3,"185":3,"187":3,"189":7,"191":3,"193":2,"195":3,"197":1,"199":3,"201":2,"203":3,"205":2,"207":5,"209":2,"217":4,"219":4,"221":3,"223":3,"225":5,"230":1,"232":1,"234":6,"236":4,"238":5,"240":4,"242":3,"244":4,"246":5,"248":2,"250":3,"252":3,"254":1,"256":2,"258":2,"271":1,"276":2,"279":1,"281":2,"282":1,"285":3,"286":12,"287":5,"288":1,"291":5,"293":1,"295":2,"297":2,"298":2,"299":1,"304":3,"305":1,"306":2,"307":2,"308":1,"310":2,"311":1,"312":1,"315":2,"316":1,"317":1,"320":6,"321":3,"324":2,"331":4,"332":3,"333":2,"334":1,"336":6,"337":2,"338":1,"339":1,"340":2,"342":1,"343":4,"344":1,"345":2,"347":4,"348":4,"349":2,"350":4,"356":5,"358":1,"359":6,"360":9,"361":23,"362":7,"363":10,"364":5,"365":14,"366":9,"367":10,"368":2,"369":13,"370":17,"371":5,"372":7,"374":1,"375":7,"376":32,"377":3,"378":18,"379":16,"380":4,"381":10,"382":11,"383":3,"384":6}}],["that",{"2":{"1":1,"16":1,"21":1,"26":1,"28":1,"45":1,"53":1,"67":1,"69":1,"78":1,"85":1,"86":1,"95":1,"105":1,"141":1,"147":1,"173":1,"181":1,"197":1,"201":1,"223":1,"232":1,"236":1,"244":1,"248":1,"254":1,"258":1,"276":1,"281":2,"285":1,"306":1,"321":1,"332":1,"344":1,"348":1,"349":1,"360":1,"361":2,"362":2,"363":1,"364":1,"365":1,"368":1,"369":1,"370":1,"372":1,"376":1,"379":4}}],["aggregation",{"2":{"362":1}}],["aggregates",{"2":{"330":1}}],["agnostic",{"2":{"362":1}}],["axelar",{"2":{"355":2}}],["axlusdc",{"2":{"276":1,"355":2,"361":1}}],["audits",{"0":{"354":1},"2":{"354":1}}],["automatically",{"2":{"43":2}}],["autoexecute",{"0":{"43":1},"1":{"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1},"2":{"43":1,"48":2}}],["add",{"2":{"381":1,"382":1}}],["added",{"2":{"367":1}}],["additional",{"2":{"365":1}}],["addressethereum1eth0x0000000000000000000000000000000000000000wrapped",{"2":{"355":1}}],["addresses",{"2":{"139":1,"153":1,"282":1,"290":2,"292":1,"320":1,"321":1,"331":1,"382":1}}],["address",{"0":{"234":1},"1":{"235":1},"2":{"22":2,"27":2,"53":2,"59":3,"60":2,"62":1,"64":2,"69":2,"73":1,"74":1,"86":2,"89":1,"91":1,"108":1,"137":1,"139":2,"141":1,"151":1,"153":2,"169":1,"173":1,"223":1,"234":4,"236":2,"244":1,"256":2,"273":1,"285":1,"286":2,"287":1,"291":2,"294":4,"307":1,"320":3,"321":3,"325":6,"330":1,"331":2,"334":3,"347":1,"348":3,"351":2,"359":3,"361":4,"362":2,"364":2,"375":1,"376":2,"379":2,"380":4,"382":3}}],["adjust",{"2":{"287":1}}],["ability",{"2":{"379":1,"381":1}}],["abilty",{"2":{"360":1}}],["abi",{"2":{"366":1}}],["able",{"2":{"365":2,"376":1}}],["above",{"2":{"361":1}}],["about",{"2":{"183":1,"217":1,"225":1,"238":1,"246":1,"376":1}}],["abstraktaave",{"2":{"356":1,"363":1}}],["abstract",{"2":{"380":1}}],["abstracts",{"2":{"49":1}}],["abstracted",{"0":{"356":1},"1":{"357":1,"358":1,"359":1,"360":1,"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1},"2":{"10":1,"11":1,"356":4,"364":1,"376":1}}],["abstraction",{"0":{"385":1},"2":{"1":1,"57":2,"65":2,"85":1,"147":1,"155":1,"250":1,"360":1,"363":1,"367":1,"373":1,"379":1}}],["also",{"2":{"356":1,"382":1}}],["alchemy",{"2":{"334":2}}],["always",{"2":{"287":1,"365":1,"378":1}}],["aliases",{"0":{"270":1},"1":{"271":1,"272":1,"273":1,"274":1,"275":1,"276":1,"277":1}}],["already",{"2":{"161":1}}],["allowed",{"2":{"193":1}}],["allows",{"2":{"117":1,"122":1,"290":1}}],["allowing",{"2":{"21":1,"234":1,"310":1,"315":1}}],["all",{"2":{"31":1,"44":1,"52":1,"56":1,"59":1,"64":1,"234":1,"236":1,"248":2,"279":1,"281":1,"283":1,"332":1,"356":3,"361":2,"363":3,"365":2,"367":2,"376":3,"378":1,"379":2,"380":1,"382":1,"383":1,"384":2}}],["amount",{"2":{"108":1,"147":1,"171":1,"225":1,"254":1,"258":1,"279":1,"281":2,"283":2,"285":1,"286":2,"288":1,"308":3,"332":1,"334":1,"362":2,"364":2,"365":3,"366":1,"369":1,"376":6}}],["amounttotransfer",{"2":{"104":1,"108":1}}],["amp",{"2":{"7":1,"225":1,"234":1}}],["after",{"2":{"103":1,"183":1,"365":1,"366":1,"371":1,"372":1,"376":2}}],["affect",{"2":{"56":2,"64":2}}],["args",{"2":{"366":1}}],["arrive",{"2":{"365":1}}],["array",{"2":{"22":1,"48":1,"94":1,"97":1,"207":3,"230":1,"248":1,"281":1,"290":1,"291":1,"293":1,"297":1,"298":1,"306":1,"308":1,"331":1,"360":1,"361":1}}],["arbitrarily",{"2":{"365":1}}],["arbitrum",{"2":{"358":1,"360":2,"382":2}}],["are",{"2":{"73":1,"80":1,"98":1,"112":1,"126":1,"234":1,"282":1,"292":2,"293":1,"321":1,"333":1,"361":2,"370":1,"376":2,"378":1,"382":2}}],["away",{"2":{"49":1}}],["await",{"2":{"48":1,"72":1,"82":3,"89":1,"99":1,"108":3,"283":1,"294":1,"308":1,"325":1,"334":1,"351":1,"359":2,"362":1,"363":1,"365":1,"369":1,"370":1,"371":1,"374":1,"375":1,"376":1}}],["availble",{"2":{"376":1}}],["available",{"2":{"10":1,"283":1,"321":1,"350":1,"361":3,"362":1,"366":4}}],["avax",{"2":{"276":1,"355":1,"380":1}}],["avoid",{"2":{"49":1,"126":1}}],["another",{"2":{"285":1}}],["anything",{"2":{"370":1}}],["any",{"2":{"71":1,"234":1,"340":1,"350":1,"358":1,"365":1,"382":2}}],["an",{"0":{"367":1},"2":{"22":1,"31":1,"43":1,"45":1,"55":1,"62":1,"63":1,"67":2,"69":1,"71":2,"72":1,"76":1,"78":1,"80":1,"81":1,"88":2,"89":1,"93":1,"94":1,"97":1,"103":1,"117":1,"179":1,"183":1,"207":1,"217":1,"230":1,"238":1,"248":1,"252":1,"256":1,"281":2,"282":2,"285":1,"290":1,"291":1,"292":1,"293":1,"297":2,"298":1,"299":1,"306":1,"307":1,"308":1,"320":1,"324":2,"328":2,"331":3,"332":1,"333":1,"340":1,"347":1,"348":1,"350":1,"352":2,"362":2,"364":1,"365":1,"367":5,"369":2,"370":1,"376":3,"377":1,"379":1,"381":1}}],["and",{"0":{"8":1,"357":1},"2":{"1":1,"7":1,"8":1,"10":1,"13":2,"16":3,"23":1,"26":1,"28":1,"31":1,"43":3,"44":2,"49":1,"56":1,"57":1,"64":1,"65":1,"67":1,"76":1,"85":3,"90":1,"94":1,"95":1,"100":1,"103":1,"104":1,"110":1,"126":1,"133":1,"135":1,"141":1,"171":1,"181":2,"183":1,"189":1,"217":1,"225":1,"230":1,"234":1,"236":1,"238":1,"244":1,"246":1,"250":1,"281":1,"287":1,"288":1,"292":1,"299":1,"304":1,"310":1,"320":2,"328":1,"330":1,"331":1,"336":1,"342":1,"348":1,"352":1,"356":2,"360":2,"361":5,"362":3,"363":2,"364":1,"365":4,"373":1,"376":3,"378":1,"379":1,"380":1,"382":2}}],["api",{"2":{"133":1,"143":1,"179":1,"183":1,"217":1,"238":1,"334":2,"376":2}}],["apipaymentdata",{"0":{"133":1},"1":{"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1},"2":{"67":3,"69":2,"99":1,"133":1,"215":1,"225":1,"246":1}}],["apiuserop",{"0":{"143":1},"1":{"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1},"2":{"21":1,"23":1,"26":1,"28":1,"143":1}}],["app",{"2":{"356":1,"363":2,"364":1}}],["application",{"0":{"356":1},"1":{"357":1,"358":1,"359":1,"360":1,"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1},"2":{"56":1,"64":1,"356":2,"381":1}}],["applications",{"2":{"10":1}}],["apps",{"2":{"11":1,"356":1}}],["approving",{"2":{"376":1}}],["approve",{"2":{"367":1,"376":1}}],["approval",{"2":{"6":1,"370":2}}],["approach",{"2":{"10":1}}],["attacks",{"2":{"167":1}}],["attracting",{"2":{"11":1}}],["at",{"2":{"117":1,"191":1,"205":1,"356":1,"362":1,"376":1}}],["atomically",{"2":{"21":1}}],["atomic",{"2":{"16":1}}],["aave",{"2":{"11":1,"356":2,"365":2}}],["aa",{"2":{"10":1,"12":1}}],["achieved",{"2":{"382":1}}],["achieve",{"2":{"360":1,"363":2,"381":2,"382":1}}],["according",{"2":{"380":1}}],["accoount",{"2":{"376":1}}],["accountinitdata",{"2":{"359":1,"374":1,"375":1}}],["accountat",{"0":{"117":1},"1":{"118":1,"119":1,"120":1,"121":1},"2":{"117":1,"120":1}}],["account",{"0":{"374":1,"375":1,"379":1},"1":{"380":1},"2":{"6":1,"21":2,"22":2,"26":2,"27":2,"52":2,"53":2,"56":2,"57":2,"60":1,"64":1,"65":2,"67":1,"69":1,"71":1,"74":1,"85":4,"86":2,"88":1,"89":5,"90":1,"91":1,"103":2,"104":1,"112":1,"117":1,"118":1,"126":2,"128":1,"129":1,"137":2,"139":2,"147":1,"151":2,"153":2,"155":1,"161":2,"167":1,"173":1,"207":2,"232":2,"234":1,"236":2,"250":1,"285":3,"286":1,"347":1,"359":5,"363":2,"365":2,"370":1,"374":1,"375":3,"376":1,"379":6,"380":6}}],["accounts",{"0":{"6":1,"380":1},"2":{"6":1,"16":1,"31":1,"52":2,"56":1,"59":3,"64":1,"112":1,"117":1,"143":1,"285":1,"324":1,"358":1,"379":3}}],["access",{"2":{"324":1}}],["accept",{"2":{"362":1}}],["accepted",{"2":{"109":1}}],["accepting",{"2":{"8":1}}],["actual",{"2":{"109":1,"145":1,"187":1,"225":1}}],["action",{"0":{"366":1},"2":{"183":1,"187":1,"248":1,"297":1,"298":1,"302":1,"362":1,"376":1}}],["actions",{"0":{"213":1,"364":1},"1":{"214":1,"365":1,"366":1,"367":1},"2":{"44":1,"48":2,"94":1,"97":1,"98":1,"99":1,"101":2,"103":1,"189":1,"201":1,"213":1,"297":1,"360":1,"365":1,"376":1,"378":1}}],["active",{"2":{"86":1}}],["activeaccountsalt",{"0":{"38":1},"1":{"39":1},"2":{"38":1,"52":1,"100":1}}],["act",{"2":{"8":1,"379":1}}],["acrosscalltx",{"2":{"376":2}}],["acrossapprovetx",{"2":{"376":2}}],["acrossbridgeplugin",{"2":{"376":1}}],["across",{"0":{"361":1},"2":{"1":1,"3":1,"4":1,"8":1,"85":1,"103":1,"181":1,"230":1,"232":1,"234":1,"236":1,"238":1,"248":1,"276":1,"279":1,"281":1,"282":1,"283":1,"290":1,"294":1,"330":1,"332":1,"333":1,"360":1,"361":2,"363":3,"365":1,"367":1,"376":5,"379":1,"382":1,"384":3}}],["aspects",{"2":{"382":1}}],["ascending",{"2":{"283":1}}],["assume",{"2":{"365":1}}],["assuming",{"2":{"55":1,"63":1,"72":1,"89":1}}],["associated",{"2":{"141":1,"320":1,"321":1}}],["assets",{"2":{"366":1,"376":1}}],["asset",{"2":{"12":1}}],["asynchronous",{"2":{"67":1,"85":1,"93":1}}],["async",{"0":{"46":1,"70":1,"79":1,"87":1,"96":1,"106":1,"322":1},"2":{"48":1,"108":2,"308":1,"362":1,"376":1}}],["as",{"2":{"3":1,"8":1,"31":2,"44":1,"93":2,"109":1,"143":1,"155":1,"181":1,"199":1,"221":1,"230":1,"234":1,"236":1,"242":1,"248":1,"250":2,"254":1,"258":1,"332":1,"336":1,"356":1,"358":1,"359":1,"360":3,"361":4,"362":7,"364":1,"365":1,"367":2,"376":4,"379":1,"380":1,"381":2,"382":2}}],["a",{"0":{"356":1,"358":1,"360":1,"362":1,"363":1,"369":1,"374":1,"375":1},"1":{"357":1,"358":1,"359":1,"360":1,"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1},"2":{"1":3,"3":2,"16":1,"21":3,"22":1,"23":1,"26":4,"27":1,"28":1,"43":2,"44":4,"45":1,"49":1,"52":1,"53":2,"59":1,"60":1,"67":2,"68":1,"69":1,"76":2,"78":1,"81":1,"86":2,"90":1,"93":2,"95":2,"105":1,"117":2,"119":1,"122":1,"123":1,"128":1,"129":1,"139":1,"153":1,"155":1,"167":1,"181":1,"183":1,"199":1,"201":3,"207":1,"221":1,"230":1,"232":2,"236":1,"238":2,"242":1,"248":2,"250":3,"254":1,"256":1,"258":1,"276":1,"279":2,"281":2,"285":3,"287":2,"290":2,"294":1,"297":3,"304":3,"306":2,"307":2,"308":1,"310":3,"315":3,"320":1,"321":1,"328":3,"330":1,"331":1,"332":2,"334":1,"336":1,"338":1,"342":1,"344":1,"347":3,"349":1,"352":3,"356":4,"358":2,"360":7,"361":5,"362":9,"363":1,"364":4,"365":4,"366":1,"369":2,"372":1,"374":1,"375":1,"376":11,"377":1,"378":1,"379":1,"380":3,"381":5,"382":7,"384":1}}]],"serializationVersion":2} +{"documentCount":386,"nextId":386,"documentIds":{"0":"docs/pages/protocol.mdx#klaster-protocol-technical-summary","1":"docs/pages/protocol.mdx#overview","2":"docs/pages/protocol.mdx#key-concepts","3":"docs/pages/protocol.mdx#1-itx-interchain-transaction-bundles","4":"docs/pages/protocol.mdx#2-transaction-commitment-layer","5":"docs/pages/protocol.mdx#core-components","6":"docs/pages/protocol.mdx#smart-accounts---itx-module","7":"docs/pages/protocol.mdx#klaster-nodes","8":"docs/pages/protocol.mdx#meta-paymaster-and-multichain-gas-refunds","9":"docs/pages/protocol.mdx#optimistic-itx-execution","10":"docs/pages/protocol.mdx#integration","11":"docs/pages/protocol.mdx#use-cases","12":"docs/pages/protocol.mdx#security-considerations","13":"docs/pages/protocol.mdx#future-developments","14":"docs/pages/reference.md#klaster-sdk","15":"docs/pages/reference.md#classes","16":"docs/pages/reference.md#encodingservice","17":"docs/pages/reference.md#constructors","18":"docs/pages/reference.md#new-encodingservice","19":"docs/pages/reference.md#returns","20":"docs/pages/reference.md#methods","21":"docs/pages/reference.md#encodebatchcall","22":"docs/pages/reference.md#parameters","23":"docs/pages/reference.md#returns-1","24":"docs/pages/reference.md#example","25":"docs/pages/reference.md#defined-in","26":"docs/pages/reference.md#encodeuseropcall","27":"docs/pages/reference.md#parameters-1","28":"docs/pages/reference.md#returns-2","29":"docs/pages/reference.md#example-1","30":"docs/pages/reference.md#defined-in-1","31":"docs/pages/reference.md#klastersdk","32":"docs/pages/reference.md#constructors-1","33":"docs/pages/reference.md#new-klastersdk","34":"docs/pages/reference.md#parameters-2","35":"docs/pages/reference.md#returns-3","36":"docs/pages/reference.md#defined-in-2","37":"docs/pages/reference.md#properties","38":"docs/pages/reference.md#activeaccountsalt","39":"docs/pages/reference.md#defined-in-3","40":"docs/pages/reference.md#masteraddress","41":"docs/pages/reference.md#defined-in-4","42":"docs/pages/reference.md#methods-1","43":"docs/pages/reference.md#autoexecute","44":"docs/pages/reference.md#parameters-3","45":"docs/pages/reference.md#returns-4","46":"docs/pages/reference.md#async","47":"docs/pages/reference.md#throws","48":"docs/pages/reference.md#example-2","49":"docs/pages/reference.md#remarks","50":"docs/pages/reference.md#see","51":"docs/pages/reference.md#defined-in-5","52":"docs/pages/reference.md#changeaccountsalt","53":"docs/pages/reference.md#parameters-4","54":"docs/pages/reference.md#returns-5","55":"docs/pages/reference.md#example-3","56":"docs/pages/reference.md#note","57":"docs/pages/reference.md#see-1","58":"docs/pages/reference.md#defined-in-6","59":"docs/pages/reference.md#changemasteraddress","60":"docs/pages/reference.md#parameters-5","61":"docs/pages/reference.md#returns-6","62":"docs/pages/reference.md#throws-1","63":"docs/pages/reference.md#example-4","64":"docs/pages/reference.md#note-1","65":"docs/pages/reference.md#see-2","66":"docs/pages/reference.md#defined-in-7","67":"docs/pages/reference.md#encodetxfee","68":"docs/pages/reference.md#parameters-6","69":"docs/pages/reference.md#returns-7","70":"docs/pages/reference.md#async-1","71":"docs/pages/reference.md#throws-2","72":"docs/pages/reference.md#example-5","73":"docs/pages/reference.md#note-2","74":"docs/pages/reference.md#see-3","75":"docs/pages/reference.md#defined-in-8","76":"docs/pages/reference.md#execute","77":"docs/pages/reference.md#parameters-7","78":"docs/pages/reference.md#returns-8","79":"docs/pages/reference.md#async-2","80":"docs/pages/reference.md#throws-3","81":"docs/pages/reference.md#remarks-1","82":"docs/pages/reference.md#example-6","83":"docs/pages/reference.md#see-4","84":"docs/pages/reference.md#defined-in-9","85":"docs/pages/reference.md#getmultichainaccount","86":"docs/pages/reference.md#returns-9","87":"docs/pages/reference.md#async-3","88":"docs/pages/reference.md#throws-4","89":"docs/pages/reference.md#example-7","90":"docs/pages/reference.md#note-3","91":"docs/pages/reference.md#see-5","92":"docs/pages/reference.md#defined-in-10","93":"docs/pages/reference.md#getquote","94":"docs/pages/reference.md#parameters-8","95":"docs/pages/reference.md#returns-10","96":"docs/pages/reference.md#async-4","97":"docs/pages/reference.md#throws-5","98":"docs/pages/reference.md#throws-6","99":"docs/pages/reference.md#example-8","100":"docs/pages/reference.md#note-4","101":"docs/pages/reference.md#see-6","102":"docs/pages/reference.md#defined-in-11","103":"docs/pages/reference.md#transferandexecute","104":"docs/pages/reference.md#parameters-9","105":"docs/pages/reference.md#returns-11","106":"docs/pages/reference.md#async-5","107":"docs/pages/reference.md#throws-7","108":"docs/pages/reference.md#example-9","109":"docs/pages/reference.md#remarks-2","110":"docs/pages/reference.md#see-7","111":"docs/pages/reference.md#defined-in-12","112":"docs/pages/reference.md#saltutil","113":"docs/pages/reference.md#constructors-2","114":"docs/pages/reference.md#new-saltutil","115":"docs/pages/reference.md#returns-12","116":"docs/pages/reference.md#methods-2","117":"docs/pages/reference.md#accountat","118":"docs/pages/reference.md#parameters-10","119":"docs/pages/reference.md#returns-13","120":"docs/pages/reference.md#example-10","121":"docs/pages/reference.md#defined-in-13","122":"docs/pages/reference.md#customaccount","123":"docs/pages/reference.md#parameters-11","124":"docs/pages/reference.md#returns-14","125":"docs/pages/reference.md#example-11","126":"docs/pages/reference.md#remarks-3","127":"docs/pages/reference.md#defined-in-14","128":"docs/pages/reference.md#firstaccount","129":"docs/pages/reference.md#returns-15","130":"docs/pages/reference.md#example-12","131":"docs/pages/reference.md#defined-in-15","132":"docs/pages/reference.md#interfaces","133":"docs/pages/reference.md#apipaymentdata","134":"docs/pages/reference.md#properties-1","135":"docs/pages/reference.md#chainid","136":"docs/pages/reference.md#defined-in-16","137":"docs/pages/reference.md#masterwallet","138":"docs/pages/reference.md#defined-in-17","139":"docs/pages/reference.md#salt","140":"docs/pages/reference.md#defined-in-18","141":"docs/pages/reference.md#token","142":"docs/pages/reference.md#defined-in-19","143":"docs/pages/reference.md#apiuserop","144":"docs/pages/reference.md#properties-2","145":"docs/pages/reference.md#calldata","146":"docs/pages/reference.md#defined-in-20","147":"docs/pages/reference.md#callgaslimit","148":"docs/pages/reference.md#defined-in-21","149":"docs/pages/reference.md#chainid-1","150":"docs/pages/reference.md#defined-in-22","151":"docs/pages/reference.md#masterwallet-1","152":"docs/pages/reference.md#defined-in-23","153":"docs/pages/reference.md#salt-1","154":"docs/pages/reference.md#defined-in-24","155":"docs/pages/reference.md#erc4337userop","156":"docs/pages/reference.md#properties-3","157":"docs/pages/reference.md#calldata-1","158":"docs/pages/reference.md#defined-in-25","159":"docs/pages/reference.md#callgaslimit-1","160":"docs/pages/reference.md#defined-in-26","161":"docs/pages/reference.md#initcode","162":"docs/pages/reference.md#defined-in-27","163":"docs/pages/reference.md#maxfeepergas","164":"docs/pages/reference.md#defined-in-28","165":"docs/pages/reference.md#maxpriorityfeepergas","166":"docs/pages/reference.md#defined-in-29","167":"docs/pages/reference.md#nonce","168":"docs/pages/reference.md#defined-in-30","169":"docs/pages/reference.md#paymasteranddata","170":"docs/pages/reference.md#defined-in-31","171":"docs/pages/reference.md#preverificationgas","172":"docs/pages/reference.md#defined-in-32","173":"docs/pages/reference.md#sender","174":"docs/pages/reference.md#defined-in-33","175":"docs/pages/reference.md#signature","176":"docs/pages/reference.md#defined-in-34","177":"docs/pages/reference.md#verificationgaslimit","178":"docs/pages/reference.md#defined-in-35","179":"docs/pages/reference.md#executeresponse","180":"docs/pages/reference.md#properties-4","181":"docs/pages/reference.md#itxhash","182":"docs/pages/reference.md#defined-in-36","183":"docs/pages/reference.md#executedaction","184":"docs/pages/reference.md#properties-5","185":"docs/pages/reference.md#chainid-2","186":"docs/pages/reference.md#defined-in-37","187":"docs/pages/reference.md#executiondata","188":"docs/pages/reference.md#defined-in-38","189":"docs/pages/reference.md#executionstatus","190":"docs/pages/reference.md#defined-in-39","191":"docs/pages/reference.md#lowerboundtimestap","192":"docs/pages/reference.md#defined-in-40","193":"docs/pages/reference.md#maxgaslimit","194":"docs/pages/reference.md#defined-in-41","195":"docs/pages/reference.md#upperboundtimestamp","196":"docs/pages/reference.md#defined-in-42","197":"docs/pages/reference.md#userop","198":"docs/pages/reference.md#defined-in-43","199":"docs/pages/reference.md#userophash","200":"docs/pages/reference.md#defined-in-44","201":"docs/pages/reference.md#itxuserop","202":"docs/pages/reference.md#properties-6","203":"docs/pages/reference.md#chainid-3","204":"docs/pages/reference.md#defined-in-45","205":"docs/pages/reference.md#lowerboundtime","206":"docs/pages/reference.md#defined-in-46","207":"docs/pages/reference.md#txs","208":"docs/pages/reference.md#defined-in-47","209":"docs/pages/reference.md#upperboundtime","210":"docs/pages/reference.md#defined-in-48","211":"docs/pages/reference.md#interchaintransaction","212":"docs/pages/reference.md#properties-7","213":"docs/pages/reference.md#actions","214":"docs/pages/reference.md#defined-in-49","215":"docs/pages/reference.md#paymentinfo","216":"docs/pages/reference.md#defined-in-50","217":"docs/pages/reference.md#itxstatusresponse","218":"docs/pages/reference.md#properties-8","219":"docs/pages/reference.md#commitment","220":"docs/pages/reference.md#defined-in-51","221":"docs/pages/reference.md#itxhash-1","222":"docs/pages/reference.md#defined-in-52","223":"docs/pages/reference.md#node","224":"docs/pages/reference.md#defined-in-53","225":"docs/pages/reference.md#paymentinfo-1","226":"docs/pages/reference.md#type-declaration","227":"docs/pages/reference.md#tokenamount","228":"docs/pages/reference.md#tokenvalue","229":"docs/pages/reference.md#defined-in-54","230":"docs/pages/reference.md#userops","231":"docs/pages/reference.md#defined-in-55","232":"docs/pages/reference.md#multichainaccount","233":"docs/pages/reference.md#properties-9","234":"docs/pages/reference.md#address","235":"docs/pages/reference.md#defined-in-56","236":"docs/pages/reference.md#salt-2","237":"docs/pages/reference.md#defined-in-57","238":"docs/pages/reference.md#quoteresponse","239":"docs/pages/reference.md#properties-10","240":"docs/pages/reference.md#commitment-1","241":"docs/pages/reference.md#defined-in-58","242":"docs/pages/reference.md#itxhash-2","243":"docs/pages/reference.md#defined-in-59","244":"docs/pages/reference.md#node-1","245":"docs/pages/reference.md#defined-in-60","246":"docs/pages/reference.md#paymentinfo-2","247":"docs/pages/reference.md#defined-in-61","248":"docs/pages/reference.md#userops-1","249":"docs/pages/reference.md#defined-in-62","250":"docs/pages/reference.md#rawtransaction","251":"docs/pages/reference.md#properties-11","252":"docs/pages/reference.md#data","253":"docs/pages/reference.md#defined-in-63","254":"docs/pages/reference.md#gaslimit","255":"docs/pages/reference.md#defined-in-64","256":"docs/pages/reference.md#to","257":"docs/pages/reference.md#defined-in-65","258":"docs/pages/reference.md#value","259":"docs/pages/reference.md#defined-in-66","260":"docs/pages/reference.md#supportedpaymenttokeninfo","261":"docs/pages/reference.md#properties-12","262":"docs/pages/reference.md#node-2","263":"docs/pages/reference.md#defined-in-67","264":"docs/pages/reference.md#supported_chains","265":"docs/pages/reference.md#defined-in-68","266":"docs/pages/reference.md#supported_gas_tokens","267":"docs/pages/reference.md#defined-in-69","268":"docs/pages/reference.md#version","269":"docs/pages/reference.md#defined-in-70","270":"docs/pages/reference.md#type-aliases","271":"docs/pages/reference.md#config","272":"docs/pages/reference.md#type-declaration-1","273":"docs/pages/reference.md#masteraddress-1","274":"docs/pages/reference.md#nodeurl","275":"docs/pages/reference.md#defined-in-71","276":"docs/pages/reference.md#paymenttokensymbol","277":"docs/pages/reference.md#defined-in-72","278":"docs/pages/reference.md#functions","279":"docs/pages/reference.md#buildtokenstrategy","280":"docs/pages/reference.md#parameters-12","281":"docs/pages/reference.md#returns-16","282":"docs/pages/reference.md#throws-8","283":"docs/pages/reference.md#example-13","284":"docs/pages/reference.md#defined-in-73","285":"docs/pages/reference.md#buildtransfererc20fromeoatx","286":"docs/pages/reference.md#parameters-13","287":"docs/pages/reference.md#returns-17","288":"docs/pages/reference.md#example-14","289":"docs/pages/reference.md#defined-in-74","290":"docs/pages/reference.md#createtokenmapping","291":"docs/pages/reference.md#parameters-14","292":"docs/pages/reference.md#returns-18","293":"docs/pages/reference.md#throws-9","294":"docs/pages/reference.md#example-15","295":"docs/pages/reference.md#see-8","296":"docs/pages/reference.md#defined-in-75","297":"docs/pages/reference.md#encodeaction","298":"docs/pages/reference.md#parameters-15","299":"docs/pages/reference.md#returns-19","300":"docs/pages/reference.md#chainid-4","301":"docs/pages/reference.md#txs-1","302":"docs/pages/reference.md#example-16","303":"docs/pages/reference.md#defined-in-76","304":"docs/pages/reference.md#encodebridgingdatafromstrategy","305":"docs/pages/reference.md#parameters-16","306":"docs/pages/reference.md#returns-20","307":"docs/pages/reference.md#throws-10","308":"docs/pages/reference.md#example-17","309":"docs/pages/reference.md#defined-in-77","310":"docs/pages/reference.md#encodeitx","311":"docs/pages/reference.md#parameters-17","312":"docs/pages/reference.md#returns-21","313":"docs/pages/reference.md#example-18","314":"docs/pages/reference.md#defined-in-78","315":"docs/pages/reference.md#encodetx","316":"docs/pages/reference.md#parameters-18","317":"docs/pages/reference.md#returns-22","318":"docs/pages/reference.md#example-19","319":"docs/pages/reference.md#defined-in-79","320":"docs/pages/reference.md#fetchinjectedaddress","321":"docs/pages/reference.md#returns-23","322":"docs/pages/reference.md#async-6","323":"docs/pages/reference.md#function","324":"docs/pages/reference.md#throws-11","325":"docs/pages/reference.md#example-20","326":"docs/pages/reference.md#requires","327":"docs/pages/reference.md#see-9","328":"docs/pages/reference.md#note-5","329":"docs/pages/reference.md#defined-in-80","330":"docs/pages/reference.md#getunifiedbalance","331":"docs/pages/reference.md#parameters-19","332":"docs/pages/reference.md#returns-24","333":"docs/pages/reference.md#throws-12","334":"docs/pages/reference.md#example-21","335":"docs/pages/reference.md#defined-in-81","336":"docs/pages/reference.md#initklaster","337":"docs/pages/reference.md#parameters-20","338":"docs/pages/reference.md#returns-25","339":"docs/pages/reference.md#example-22","340":"docs/pages/reference.md#throws-13","341":"docs/pages/reference.md#defined-in-82","342":"docs/pages/reference.md#resolvetoken","343":"docs/pages/reference.md#parameters-21","344":"docs/pages/reference.md#returns-26","345":"docs/pages/reference.md#throws-14","346":"docs/pages/reference.md#defined-in-83","347":"docs/pages/reference.md#signwithinjectedwallet","348":"docs/pages/reference.md#parameters-22","349":"docs/pages/reference.md#returns-27","350":"docs/pages/reference.md#throws-15","351":"docs/pages/reference.md#example-23","352":"docs/pages/reference.md#note-6","353":"docs/pages/reference.md#defined-in-84","354":"docs/pages/security-audit.mdx#klaster-security-audits","355":"docs/pages/supported-networks-tokens.mdx#supported-gas-tokens","356":"docs/pages/zero-to-hero-klaster-guide.mdx#zero-to-hero-guide-building-a-chain-abstracted-application","357":"docs/pages/zero-to-hero-klaster-guide.mdx#install-klaster-and-viem","358":"docs/pages/zero-to-hero-klaster-guide.mdx#create-a-signer-object","359":"docs/pages/zero-to-hero-klaster-guide.mdx#initialize-klaster-sdk","360":"docs/pages/zero-to-hero-klaster-guide.mdx#initialize-a-multichain-readonly-rpc-client","361":"docs/pages/zero-to-hero-klaster-guide.mdx#map-token-deployments-across-multiple-blockchains","362":"docs/pages/zero-to-hero-klaster-guide.mdx#create-a-bridging-plugin","363":"docs/pages/zero-to-hero-klaster-guide.mdx#fetching-a-unified-balance","364":"docs/pages/zero-to-hero-klaster-guide.mdx#encoding-the-bridging--execution-actions","365":"docs/pages/zero-to-hero-klaster-guide.mdx#encoding-the-bridging-operations","366":"docs/pages/zero-to-hero-klaster-guide.mdx#encoding-the-desired-action","367":"docs/pages/zero-to-hero-klaster-guide.mdx#creating-an-interchain-transaction","368":"docs/pages/zero-to-hero-klaster-guide.mdx#executing-the-interchain-transaction","369":"docs/pages/zero-to-hero-klaster-guide.mdx#getting-a-quote","370":"docs/pages/zero-to-hero-klaster-guide.mdx#signing-the-quote","371":"docs/pages/zero-to-hero-klaster-guide.mdx#sending-the-itx-for-execution","372":"docs/pages/zero-to-hero-klaster-guide.mdx#tracking-the-execution","373":"docs/pages/zero-to-hero-klaster-guide.mdx#conclusion","374":"docs/pages/accounts/biconomy.mdx#initializing-a-biconomy-account","375":"docs/pages/accounts/safe.mdx#initializing-a-safe-account","376":"docs/pages/concepts/bridge-plugins.mdx#bridging-plugins","377":"docs/pages/concepts/interchain-transaction.mdx#interchain-transaction","378":"docs/pages/concepts/interchain-transaction.mdx#details","379":"docs/pages/concepts/multichain-account.mdx#multichain-smart-contract-account","380":"docs/pages/concepts/multichain-account.mdx#deriving-accounts","381":"docs/pages/concepts/multichain-public-client.mdx#multichain-public-client","382":"docs/pages/concepts/multichain-token-mapping.mdx#multichain-token-mapping","383":"docs/pages/concepts/multichain-token-mapping.mdx#notes","384":"docs/pages/concepts/unified-balance.mdx#unified-balance","385":"docs/pages/quickstart/gas-abstraction.mdx#gas-abstraction-quickstart"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[4,1,1],"1":[1,4,39],"2":[2,4,1],"3":[5,6,22],"4":[4,6,14],"5":[2,4,1],"6":[4,6,21],"7":[2,6,39],"8":[6,6,29],"9":[3,6,21],"10":[1,4,24],"11":[2,4,27],"12":[2,4,31],"13":[2,4,20],"14":[2,1,1],"15":[1,2,1],"16":[1,3,45],"17":[1,4,1],"18":[3,5,3],"19":[1,7,2],"20":[1,4,1],"21":[2,5,46],"22":[1,7,45],"23":[1,7,19],"24":[1,7,18],"25":[2,7,6],"26":[2,5,36],"27":[1,7,40],"28":[1,7,17],"29":[1,7,16],"30":[2,7,6],"31":[1,3,30],"32":[1,4,1],"33":[3,5,4],"34":[1,7,3],"35":[1,7,2],"36":[2,7,4],"37":[1,4,1],"38":[1,5,3],"39":[2,6,4],"40":[1,5,5],"41":[2,6,4],"42":[1,4,1],"43":[2,5,38],"44":[1,7,46],"45":[1,7,19],"46":[1,7,1],"47":[1,7,18],"48":[1,7,40],"49":[1,7,43],"50":[1,7,10],"51":[2,7,4],"52":[2,5,47],"53":[1,7,25],"54":[1,7,2],"55":[1,7,14],"56":[1,7,32],"57":[1,7,12],"58":[2,7,4],"59":[2,5,44],"60":[1,7,20],"61":[1,7,2],"62":[1,7,11],"63":[1,7,14],"64":[1,7,33],"65":[1,7,12],"66":[2,7,4],"67":[2,5,57],"68":[1,7,31],"69":[1,7,37],"70":[1,7,1],"71":[1,7,29],"72":[1,7,32],"73":[1,7,22],"74":[1,7,16],"75":[2,7,4],"76":[2,5,34],"77":[1,7,27],"78":[1,7,19],"79":[1,7,1],"80":[1,7,18],"81":[1,7,32],"82":[1,7,24],"83":[1,7,20],"84":[2,7,4],"85":[2,5,48],"86":[1,7,26],"87":[1,7,1],"88":[1,7,19],"89":[1,7,30],"90":[1,7,26],"91":[1,7,11],"92":[2,7,4],"93":[2,5,36],"94":[1,7,18],"95":[1,7,21],"96":[1,7,1],"97":[1,7,12],"98":[1,7,18],"99":[1,7,31],"100":[1,7,18],"101":[1,7,11],"102":[2,7,4],"103":[2,5,38],"104":[1,7,36],"105":[1,7,15],"106":[1,7,1],"107":[1,7,14],"108":[1,7,48],"109":[1,7,48],"110":[1,7,24],"111":[2,7,4],"112":[1,3,32],"113":[1,4,1],"114":[3,5,3],"115":[1,7,2],"116":[1,4,1],"117":[2,5,23],"118":[1,7,11],"119":[1,7,10],"120":[1,7,11],"121":[2,7,6],"122":[2,5,24],"123":[1,7,6],"124":[1,7,7],"125":[1,7,11],"126":[1,7,22],"127":[2,7,6],"128":[2,5,12],"129":[1,7,12],"130":[1,7,11],"131":[2,7,6],"132":[1,2,1],"133":[1,3,29],"134":[1,4,1],"135":[1,5,26],"136":[2,6,4],"137":[1,5,20],"138":[2,6,4],"139":[1,5,26],"140":[2,6,4],"141":[1,5,24],"142":[2,6,4],"143":[1,3,28],"144":[1,4,1],"145":[1,5,21],"146":[2,6,4],"147":[1,5,27],"148":[2,6,4],"149":[1,5,21],"150":[2,6,4],"151":[1,5,20],"152":[2,6,4],"153":[1,5,26],"154":[2,6,4],"155":[1,3,26],"156":[1,4,1],"157":[1,5,14],"158":[2,6,4],"159":[1,5,11],"160":[2,6,4],"161":[1,5,20],"162":[2,6,4],"163":[1,5,17],"164":[2,6,4],"165":[1,5,15],"166":[2,6,4],"167":[1,5,16],"168":[2,6,4],"169":[1,5,22],"170":[2,6,4],"171":[1,5,17],"172":[2,6,4],"173":[1,5,16],"174":[2,6,4],"175":[1,5,13],"176":[2,6,4],"177":[1,5,10],"178":[2,6,4],"179":[1,3,23],"180":[1,4,1],"181":[1,5,40],"182":[2,6,4],"183":[1,3,31],"184":[1,4,1],"185":[1,5,14],"186":[2,6,4],"187":[1,5,13],"188":[2,6,4],"189":[1,5,47],"190":[2,6,4],"191":[1,5,16],"192":[2,6,4],"193":[1,5,14],"194":[2,6,4],"195":[1,5,16],"196":[2,6,4],"197":[1,5,12],"198":[2,6,4],"199":[1,5,15],"200":[2,6,4],"201":[1,3,28],"202":[1,4,1],"203":[1,5,16],"204":[2,6,4],"205":[2,5,16],"206":[2,7,4],"207":[1,5,31],"208":[2,6,4],"209":[2,5,16],"210":[2,7,4],"211":[1,3,1],"212":[1,4,1],"213":[1,5,3],"214":[2,6,4],"215":[1,5,3],"216":[2,6,4],"217":[1,3,27],"218":[1,4,1],"219":[1,5,15],"220":[2,6,4],"221":[1,5,19],"222":[2,6,4],"223":[1,5,17],"224":[2,6,4],"225":[1,5,20],"226":[2,6,1],"227":[1,6,3],"228":[1,6,3],"229":[2,6,4],"230":[1,5,25],"231":[2,6,4],"232":[1,3,26],"233":[1,4,1],"234":[1,5,57],"235":[2,6,4],"236":[1,5,33],"237":[2,6,4],"238":[1,3,37],"239":[1,4,1],"240":[1,5,17],"241":[2,6,4],"242":[1,5,22],"243":[2,6,4],"244":[1,5,21],"245":[2,6,4],"246":[1,5,21],"247":[2,6,4],"248":[1,5,32],"249":[2,6,4],"250":[1,3,38],"251":[1,4,1],"252":[1,5,24],"253":[2,6,4],"254":[1,5,25],"255":[2,6,4],"256":[1,5,23],"257":[2,6,4],"258":[1,5,29],"259":[2,6,4],"260":[1,3,1],"261":[1,4,1],"262":[1,5,5],"263":[2,6,4],"264":[2,5,4],"265":[2,7,4],"266":[3,5,5],"267":[2,8,4],"268":[1,5,3],"269":[2,6,4],"270":[2,2,1],"271":[1,4,10],"272":[2,5,1],"273":[1,6,3],"274":[1,6,3],"275":[2,5,4],"276":[1,4,47],"277":[2,5,7],"278":[1,2,1],"279":[2,3,28],"280":[1,5,3],"281":[1,5,38],"282":[1,5,25],"283":[1,5,48],"284":[2,5,7],"285":[2,3,45],"286":[1,5,43],"287":[1,5,42],"288":[1,5,33],"289":[2,5,5],"290":[2,3,40],"291":[1,5,24],"292":[1,5,13],"293":[1,5,14],"294":[1,5,47],"295":[1,5,10],"296":[2,5,7],"297":[2,3,40],"298":[1,5,16],"299":[1,5,9],"300":[1,5,3],"301":[1,5,3],"302":[1,5,6],"303":[2,5,6],"304":[2,3,41],"305":[1,5,8],"306":[1,5,27],"307":[1,5,22],"308":[1,5,77],"309":[2,5,7],"310":[2,3,39],"311":[1,5,9],"312":[1,5,6],"313":[1,5,9],"314":[2,5,6],"315":[2,3,37],"316":[1,5,9],"317":[1,5,6],"318":[1,5,5],"319":[2,5,6],"320":[2,3,41],"321":[1,5,29],"322":[1,5,1],"323":[1,5,2],"324":[1,5,31],"325":[1,5,23],"326":[1,5,2],"327":[1,5,4],"328":[1,5,31],"329":[2,5,5],"330":[2,3,19],"331":[1,5,35],"332":[1,5,29],"333":[1,5,22],"334":[1,5,58],"335":[2,5,7],"336":[2,3,30],"337":[1,5,10],"338":[1,5,10],"339":[1,5,29],"340":[1,5,18],"341":[2,5,4],"342":[2,3,16],"343":[1,5,15],"344":[1,5,10],"345":[1,5,11],"346":[2,5,7],"347":[2,3,39],"348":[1,5,37],"349":[1,5,17],"350":[1,5,26],"351":[1,5,20],"352":[1,5,31],"353":[2,5,5],"354":[3,1,14],"355":[3,1,82],"356":[9,1,80],"357":[4,9,6],"358":[4,9,64],"359":[3,9,67],"360":[6,9,122],"361":[6,9,179],"362":[4,9,166],"363":[4,9,76],"364":[6,9,87],"365":[4,15,167],"366":[4,15,69],"367":[4,15,84],"368":[4,9,20],"369":[3,13,54],"370":[3,13,79],"371":[5,13,21],"372":[3,13,36],"373":[1,9,16],"374":[4,1,26],"375":[4,1,49],"376":[2,1,188],"377":[2,1,33],"378":[1,3,59],"379":[4,1,86],"380":[2,5,94],"381":[3,1,81],"382":[3,1,117],"383":[1,4,25],"384":[2,1,39],"385":[3,1,3]},"averageFieldLength":[1.603626943005181,5.5025906735751295,20.34455958549224],"storedFields":{"0":{"href":"/protocol#klaster-protocol-technical-summary","html":"\n","isPage":true,"text":"\n","title":"Klaster Protocol Technical Summary","titles":[]},"1":{"href":"/protocol#overview","html":"\n

Klaster Protocol is a chain abstraction framework that enables the execution of complex cross-chain transaction bundles with a single user signature. It introduces a Transaction Commitment Layer between users/dApps and multiple blockchain networks, facilitating seamless interaction across different chains.

\n","isPage":false,"text":"\nKlaster Protocol is a chain abstraction framework that enables the execution of complex cross-chain transaction bundles with a single user signature. It introduces a Transaction Commitment Layer between users/dApps and multiple blockchain networks, facilitating seamless interaction across different chains.\n","title":"Overview","titles":["Klaster Protocol Technical Summary"]},"2":{"href":"/protocol#key-concepts","html":"\n","isPage":false,"text":"\n","title":"Key Concepts","titles":["Klaster Protocol Technical Summary"]},"3":{"href":"/protocol#1-itx-interchain-transaction-bundles","html":"\n\n","isPage":false,"text":"\n\nSeries of (possibly dependent) transactions spanning across multiple chains\nRepresented as a Merkle Tree of UserOps\nDefined by a unique Merkle Root hash (iTx hash)\n\n","title":"1. iTx (Interchain Transaction) bundles","titles":["Klaster Protocol Technical Summary","Key Concepts"]},"4":{"href":"/protocol#2-transaction-commitment-layer","html":"\n\n","isPage":false,"text":"\n\nNetwork of Klaster Nodes\nProvides execution guarantees\nOrchestrates iTx execution across multiple blockchain networks\n\n","title":"2. Transaction Commitment Layer","titles":["Klaster Protocol Technical Summary","Key Concepts"]},"5":{"href":"/protocol#core-components","html":"\n","isPage":false,"text":"\n","title":"Core Components","titles":["Klaster Protocol Technical Summary"]},"6":{"href":"/protocol#smart-accounts---itx-module","html":"\n\n","isPage":false,"text":"\n\nStandardized ERC-7579 module for smart contract accounts\nEnables single signature approval for entire iTx bundles\nCompatible with existing smart account wallets\n\n","title":"Smart Accounts - iTx Module","titles":["Klaster Protocol Technical Summary","Core Components"]},"7":{"href":"/protocol#klaster-nodes","html":"\n

Responsibilities:

\n\n

Node Selection Process:

\n
    \n
  1. Nodes provide quotes for iTx execution
  2. \n
  3. User/dApp selects best quote based on cost and node reputation
  4. \n
  5. Selected node commits to iTx execution
  6. \n
  7. User signs the iTx bundle
  8. \n
  9. Node executes the iTx bundle
  10. \n
\n","isPage":false,"text":"\nResponsibilities:\n\nEstimating iTx fees & responding to quote requests\nCommitting to iTx execution\nExecuting fully signed iTx bundles\n\nNode Selection Process:\n\nNodes provide quotes for iTx execution\nUser/dApp selects best quote based on cost and node reputation\nSelected node commits to iTx execution\nUser signs the iTx bundle\nNode executes the iTx bundle\n\n","title":"Klaster Nodes","titles":["Klaster Protocol Technical Summary","Core Components"]},"8":{"href":"/protocol#meta-paymaster-and-multichain-gas-refunds","html":"\n\n","isPage":false,"text":"\n\nNodes act as Meta Paymasters, accepting payment in one token/chain and executing transactions across multiple chains\nUtilizes ERC-4337 EntryPoint for UserOp routing\nImplements gas refunds for overpaid transactions\n\n","title":"Meta Paymaster and Multichain Gas Refunds","titles":["Klaster Protocol Technical Summary","Core Components"]},"9":{"href":"/protocol#optimistic-itx-execution","html":"\n\n","isPage":false,"text":"\n\nNodes determine optimal execution order through simulation\nExecutes UserOps when simulations yield 0 REVERT opcodes\nIncentivized by diminishing success tips\n\n","title":"Optimistic iTx Execution","titles":["Klaster Protocol Technical Summary","Core Components"]},"10":{"href":"/protocol#integration","html":"\n\n","isPage":false,"text":"\n\nSDK available for dApp/Wallet developers\nEnables efficient building of chain-abstracted applications\nNeutral approach, compatible with various bridges and AA wallet providers\n\n","title":"Integration","titles":["Klaster Protocol Technical Summary"]},"11":{"href":"/protocol#use-cases","html":"\n\n","isPage":false,"text":"\n\nChain-abstracted versions of existing dApps (e.g., AAVE)\nStreamlined checkout flows\nEasier onboarding to SocialFi L2/L3 apps\nSingle-chain dApps attracting users from various chains\n\n","title":"Use Cases","titles":["Klaster Protocol Technical Summary"]},"12":{"href":"/protocol#security-considerations","html":"\n\n","isPage":false,"text":"\n\nUsers maintain full control of funds through AA wallets\nNodes can be slashed for failing to execute committed iTx bundles\nSecurity reduced to the security of bridges used for asset transfers between chains\n\n","title":"Security Considerations","titles":["Klaster Protocol Technical Summary"]},"13":{"href":"/protocol#future-developments","html":"\n","isPage":false,"text":"\n\nDecentralization phase including slashing and multichain staking\nPublic node implementation for verification and customization\nPotential integration with intent solver networks\n","title":"Future Developments","titles":["Klaster Protocol Technical Summary"]},"14":{"href":"/reference#klaster-sdk","html":"\n","isPage":true,"text":"\n","title":"klaster-sdk","titles":[]},"15":{"href":"/reference#classes","html":"\n","isPage":false,"text":"\n","title":"Classes","titles":["klaster-sdk"]},"16":{"href":"/reference#encodingservice","html":"\n

A service for encoding user operations (UserOps) for Smart Contract Accounts in the Klaster ecosystem.

\n

This service provides methods to encode single and batch transactions into UserOps\nthat can be processed by the Klaster Node. It intelligently chooses between single\nand batch encoding to optimize for gas efficiency and ensure atomic execution of\nmultiple transactions when needed.

\n","isPage":false,"text":"\nA service for encoding user operations (UserOps) for Smart Contract Accounts in the Klaster ecosystem.\nThis service provides methods to encode single and batch transactions into UserOps\nthat can be processed by the Klaster Node. It intelligently chooses between single\nand batch encoding to optimize for gas efficiency and ensure atomic execution of\nmultiple transactions when needed.\n","title":"EncodingService","titles":["klaster-sdk","Classes"]},"17":{"href":"/reference#constructors","html":"\n","isPage":false,"text":"\n","title":"Constructors","titles":["klaster-sdk","Classes","EncodingService"]},"18":{"href":"/reference#new-encodingservice","html":"\n
\n

new EncodingService(): EncodingService

\n
\n","isPage":false,"text":"\n\nnew EncodingService(): EncodingService\n\n","title":"new EncodingService()","titles":["klaster-sdk","Classes","EncodingService","Constructors"]},"19":{"href":"/reference#returns","html":"\n

EncodingService

\n","isPage":false,"text":"\nEncodingService\n","title":"Returns","titles":["klaster-sdk","Classes","EncodingService","Constructors","new EncodingService()"]},"20":{"href":"/reference#methods","html":"\n","isPage":false,"text":"\n","title":"Methods","titles":["klaster-sdk","Classes","EncodingService"]},"21":{"href":"/reference#encodebatchcall","html":"\n
\n

static encodeBatchCall(txs, chainId, masterWallet, salt): ApiUserOp

\n
\n

Encodes multiple transactions into a single UserOp for batch execution on a Smart Contract Account.

\n

This method prepares a UserOp that, when executed, will call the 'executeBatch' function\non the Smart Contract Account, allowing multiple transactions to be executed atomically.\nThis can lead to significant gas savings compared to executing transactions individually.

\n","isPage":false,"text":"\n\nstatic encodeBatchCall(txs, chainId, masterWallet, salt): ApiUserOp\n\nEncodes multiple transactions into a single UserOp for batch execution on a Smart Contract Account.\nThis method prepares a UserOp that, when executed, will call the 'executeBatch' function\non the Smart Contract Account, allowing multiple transactions to be executed atomically.\nThis can lead to significant gas savings compared to executing transactions individually.\n","title":"encodeBatchCall()","titles":["klaster-sdk","Classes","EncodingService","Methods"]},"22":{"href":"/reference#parameters","html":"\n

txs: RawTransaction[]

\n

An array of transactions to be encoded for batch execution.

\n

chainId: number

\n

The ID of the blockchain where the transactions will be executed.

\n

masterWallet: `0x${string}`

\n

The address of the master wallet from which the Smart Contract Account is derived.

\n

salt: string

\n

A unique value used in conjunction with the masterWallet to derive the Smart Contract Account address.

\n","isPage":false,"text":"\n• txs: RawTransaction[]\nAn array of transactions to be encoded for batch execution.\n• chainId: number\nThe ID of the blockchain where the transactions will be executed.\n• masterWallet: `0x${string}`\nThe address of the master wallet from which the Smart Contract Account is derived.\n• salt: string\nA unique value used in conjunction with the masterWallet to derive the Smart Contract Account address.\n","title":"Parameters","titles":["klaster-sdk","Classes","EncodingService","Methods","encodeBatchCall()"]},"23":{"href":"/reference#returns-1","html":"\n

ApiUserOp

\n

A UserOp object representing the batch execution, which can be sent to the Klaster Node for quoting and execution.

\n","isPage":false,"text":"\nApiUserOp\nA UserOp object representing the batch execution, which can be sent to the Klaster Node for quoting and execution.\n","title":"Returns","titles":["klaster-sdk","Classes","EncodingService","Methods","encodeBatchCall()"]},"24":{"href":"/reference#example","html":"\n
const userOp = EncodingService.encodeBatchCall(\n  [\n    { to: '0x...', value: 1000n, data: '0x...', gasLimit: 21000n },\n    { to: '0x...', value: 2000n, data: '0x...', gasLimit: 50000n }\n  ],\n  1,\n  '0x...',\n  'uniqueSalt'\n);
\n","isPage":false,"text":"\nconst userOp = EncodingService.encodeBatchCall(\n [\n { to: '0x...', value: 1000n, data: '0x...', gasLimit: 21000n },\n { to: '0x...', value: 2000n, data: '0x...', gasLimit: 50000n }\n ],\n 1,\n '0x...',\n 'uniqueSalt'\n);\n","title":"Example","titles":["klaster-sdk","Classes","EncodingService","Methods","encodeBatchCall()"]},"25":{"href":"/reference#defined-in","html":"\n

utils/encoding.service.ts:80

\n","isPage":false,"text":"\nutils/encoding.service.ts:80\n","title":"Defined in","titles":["klaster-sdk","Classes","EncodingService","Methods","encodeBatchCall()"]},"26":{"href":"/reference#encodeuseropcall","html":"\n
\n

static encodeUserOpCall(tx, chainId, masterWallet, salt): ApiUserOp

\n
\n

Encodes a single transaction into a UserOp for execution on a Smart Contract Account.

\n

This method prepares a UserOp that, when executed, will call the 'execute' function\non the Smart Contract Account derived from the provided masterWallet and salt.

\n","isPage":false,"text":"\n\nstatic encodeUserOpCall(tx, chainId, masterWallet, salt): ApiUserOp\n\nEncodes a single transaction into a UserOp for execution on a Smart Contract Account.\nThis method prepares a UserOp that, when executed, will call the 'execute' function\non the Smart Contract Account derived from the provided masterWallet and salt.\n","title":"encodeUserOpCall()","titles":["klaster-sdk","Classes","EncodingService","Methods"]},"27":{"href":"/reference#parameters-1","html":"\n

tx: RawTransaction

\n

The transaction to be encoded.

\n

chainId: number

\n

The ID of the blockchain where the transaction will be executed.

\n

masterWallet: `0x${string}`

\n

The address of the master wallet from which the Smart Contract Account is derived.

\n

salt: string

\n

A unique value used in conjunction with the masterWallet to derive the Smart Contract Account address.

\n","isPage":false,"text":"\n• tx: RawTransaction\nThe transaction to be encoded.\n• chainId: number\nThe ID of the blockchain where the transaction will be executed.\n• masterWallet: `0x${string}`\nThe address of the master wallet from which the Smart Contract Account is derived.\n• salt: string\nA unique value used in conjunction with the masterWallet to derive the Smart Contract Account address.\n","title":"Parameters","titles":["klaster-sdk","Classes","EncodingService","Methods","encodeUserOpCall()"]},"28":{"href":"/reference#returns-2","html":"\n

ApiUserOp

\n

A UserOp object that can be sent to the Klaster Node for quoting and execution.

\n","isPage":false,"text":"\nApiUserOp\nA UserOp object that can be sent to the Klaster Node for quoting and execution.\n","title":"Returns","titles":["klaster-sdk","Classes","EncodingService","Methods","encodeUserOpCall()"]},"29":{"href":"/reference#example-1","html":"\n
const userOp = EncodingService.encodeUserOpCall(\n  { to: '0x...', value: 1000n, data: '0x...', gasLimit: 21000n },\n  1,\n  '0x...',\n  'uniqueSalt'\n);
\n","isPage":false,"text":"\nconst userOp = EncodingService.encodeUserOpCall(\n { to: '0x...', value: 1000n, data: '0x...', gasLimit: 21000n },\n 1,\n '0x...',\n 'uniqueSalt'\n);\n","title":"Example","titles":["klaster-sdk","Classes","EncodingService","Methods","encodeUserOpCall()"]},"30":{"href":"/reference#defined-in-1","html":"\n

utils/encoding.service.ts:35

\n
\n","isPage":false,"text":"\nutils/encoding.service.ts:35\n\n","title":"Defined in","titles":["klaster-sdk","Classes","EncodingService","Methods","encodeUserOpCall()"]},"31":{"href":"/reference#klastersdk","html":"\n

KlasterSDK creates an instance of the SDK used to communicate with\nthe Klaster protocol. It offers typed information for all the types\nused to communicate with the protocol, as well as utility functions\nfor encoding tokens, transactions and accounts.

\n","isPage":false,"text":"\nKlasterSDK creates an instance of the SDK used to communicate with\nthe Klaster protocol. It offers typed information for all the types\nused to communicate with the protocol, as well as utility functions\nfor encoding tokens, transactions and accounts.\n","title":"KlasterSDK","titles":["klaster-sdk","Classes"]},"32":{"href":"/reference#constructors-1","html":"\n","isPage":false,"text":"\n","title":"Constructors","titles":["klaster-sdk","Classes","KlasterSDK"]},"33":{"href":"/reference#new-klastersdk","html":"\n
\n

new KlasterSDK(config): KlasterSDK

\n
\n","isPage":false,"text":"\n\nnew KlasterSDK(config): KlasterSDK\n\n","title":"new KlasterSDK()","titles":["klaster-sdk","Classes","KlasterSDK","Constructors"]},"34":{"href":"/reference#parameters-2","html":"\n

config: Config

\n","isPage":false,"text":"\n• config: Config\n","title":"Parameters","titles":["klaster-sdk","Classes","KlasterSDK","Constructors","new KlasterSDK()"]},"35":{"href":"/reference#returns-3","html":"\n

KlasterSDK

\n","isPage":false,"text":"\nKlasterSDK\n","title":"Returns","titles":["klaster-sdk","Classes","KlasterSDK","Constructors","new KlasterSDK()"]},"36":{"href":"/reference#defined-in-2","html":"\n

index.ts:78

\n","isPage":false,"text":"\nindex.ts:78\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Constructors","new KlasterSDK()"]},"37":{"href":"/reference#properties","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Classes","KlasterSDK"]},"38":{"href":"/reference#activeaccountsalt","html":"\n
\n

activeAccountSalt: string

\n
\n","isPage":false,"text":"\n\nactiveAccountSalt: string\n\n","title":"activeAccountSalt","titles":["klaster-sdk","Classes","KlasterSDK","Properties"]},"39":{"href":"/reference#defined-in-3","html":"\n

index.ts:74

\n","isPage":false,"text":"\nindex.ts:74\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Properties","activeAccountSalt"]},"40":{"href":"/reference#masteraddress","html":"\n
\n

masterAddress: `0x${string}`

\n
\n","isPage":false,"text":"\n\nmasterAddress: `0x${string}`\n\n","title":"masterAddress","titles":["klaster-sdk","Classes","KlasterSDK","Properties"]},"41":{"href":"/reference#defined-in-4","html":"\n

index.ts:76

\n","isPage":false,"text":"\nindex.ts:76\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Properties","masterAddress"]},"42":{"href":"/reference#methods-1","html":"\n","isPage":false,"text":"\n","title":"Methods","titles":["klaster-sdk","Classes","KlasterSDK"]},"43":{"href":"/reference#autoexecute","html":"\n
\n

autoExecute(itx, signHash): Promise<ExecuteResponse>

\n
\n

Automatically fetches a quote and executes the Interchain Transaction (iTx).

\n

This function streamlines the process of executing an iTx by combining the quote\nfetching and execution steps. It automatically handles the flow of getting a quote,\nsigning the iTx hash, and executing the transaction.

\n","isPage":false,"text":"\n\nautoExecute(itx, signHash): Promise<ExecuteResponse>\n\nAutomatically fetches a quote and executes the Interchain Transaction (iTx).\nThis function streamlines the process of executing an iTx by combining the quote\nfetching and execution steps. It automatically handles the flow of getting a quote,\nsigning the iTx hash, and executing the transaction.\n","title":"autoExecute()","titles":["klaster-sdk","Classes","KlasterSDK","Methods"]},"44":{"href":"/reference#parameters-3","html":"\n

itx: InterchainTransaction

\n

The interchain transaction object containing\nthe transactions you wish to execute. This should include all necessary\ninformation for the iTx, such as actions and payment details.

\n

signHash

\n

A function to sign the iTx hash with a private key.\nThis function should take a hash string (prefixed with '0x') and return\na Promise resolving to the signed hash string.

\n","isPage":false,"text":"\n• itx: InterchainTransaction\nThe interchain transaction object containing\nthe transactions you wish to execute. This should include all necessary\ninformation for the iTx, such as actions and payment details.\n• signHash\nA function to sign the iTx hash with a private key.\nThis function should take a hash string (prefixed with '0x') and return\na Promise resolving to the signed hash string.\n","title":"Parameters","titles":["klaster-sdk","Classes","KlasterSDK","Methods","autoExecute()"]},"45":{"href":"/reference#returns-4","html":"\n

Promise<ExecuteResponse>

\n

A promise that resolves to an ExecuteResponse object,\ncontaining the iTx hash of the executed transaction.

\n","isPage":false,"text":"\nPromise<ExecuteResponse>\nA promise that resolves to an ExecuteResponse object,\ncontaining the iTx hash of the executed transaction.\n","title":"Returns","titles":["klaster-sdk","Classes","KlasterSDK","Methods","autoExecute()"]},"46":{"href":"/reference#async","html":"\n","isPage":false,"text":"\n","title":"Async","titles":["klaster-sdk","Classes","KlasterSDK","Methods","autoExecute()"]},"47":{"href":"/reference#throws","html":"\n

May throw errors during the quote fetching, signing, or execution phases.\nThese could include network errors, signing failures, or execution issues.

\n","isPage":false,"text":"\nMay throw errors during the quote fetching, signing, or execution phases.\nThese could include network errors, signing failures, or execution issues.\n","title":"Throws","titles":["klaster-sdk","Classes","KlasterSDK","Methods","autoExecute()"]},"48":{"href":"/reference#example-2","html":"\n
const itx = {\n  actions: [...],  // Array of actions to be executed\n  paymentInfo: ... // Payment information\n};\n \nconst signHash = async (hash) => {\n  // Implement your signing logic here\n  return signedHash;\n};\n \ntry {\n  const result = await klasterSDK.autoExecute(itx, signHash);\n  console.log('iTx executed successfully. Hash:', result.iTxHash);\n} catch (error) {\n  console.error('AutoExecute failed:', error);\n}
\n","isPage":false,"text":"\nconst itx = {\n actions: [...], // Array of actions to be executed\n paymentInfo: ... // Payment information\n};\n \nconst signHash = async (hash) => {\n // Implement your signing logic here\n return signedHash;\n};\n \ntry {\n const result = await klasterSDK.autoExecute(itx, signHash);\n console.log('iTx executed successfully. Hash:', result.iTxHash);\n} catch (error) {\n console.error('AutoExecute failed:', error);\n}\n","title":"Example","titles":["klaster-sdk","Classes","KlasterSDK","Methods","autoExecute()"]},"49":{"href":"/reference#remarks","html":"\n\n","isPage":false,"text":"\n\nThe signHash function must return a properly signed hash. Ensure you're using\nthe correct signing method (e.g., personalSign) to avoid execution errors.\nThis function abstracts away the separate steps of quoting and executing,\nmaking it more convenient for straightforward iTx executions.\n\n","title":"Remarks","titles":["klaster-sdk","Classes","KlasterSDK","Methods","autoExecute()"]},"50":{"href":"/reference#see","html":"\n\n","isPage":false,"text":"\n\ngetQuote - Used internally to fetch the quote.\nexecute - Used internally to execute the transaction.\n\n","title":"See","titles":["klaster-sdk","Classes","KlasterSDK","Methods","autoExecute()"]},"51":{"href":"/reference#defined-in-5","html":"\n

index.ts:397

\n","isPage":false,"text":"\nindex.ts:397\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Methods","autoExecute()"]},"52":{"href":"/reference#changeaccountsalt","html":"\n
\n

changeAccountSalt(salt): void

\n
\n

Changes the salt value used for deriving ERC4337 multichain smart accounts.

\n

This function updates the activeAccountSalt parameter of the SDK instance. The salt,\nin combination with the connected Externally Owned Account (EOA), is used to\ndeterministically derive ERC4337 compliant multichain smart contract accounts.\nChanging this salt will result in deriving a different smart contract account\nfor all subsequent operations.

\n","isPage":false,"text":"\n\nchangeAccountSalt(salt): void\n\nChanges the salt value used for deriving ERC4337 multichain smart accounts.\nThis function updates the activeAccountSalt parameter of the SDK instance. The salt,\nin combination with the connected Externally Owned Account (EOA), is used to\ndeterministically derive ERC4337 compliant multichain smart contract accounts.\nChanging this salt will result in deriving a different smart contract account\nfor all subsequent operations.\n","title":"changeAccountSalt()","titles":["klaster-sdk","Classes","KlasterSDK","Methods"]},"53":{"href":"/reference#parameters-4","html":"\n

salt: string

\n

The new salt value to be used for account derivation.\nThis should be a unique string that, when combined with\nthe EOA address, produces a unique smart account address.

\n","isPage":false,"text":"\n• salt: string\nThe new salt value to be used for account derivation.\nThis should be a unique string that, when combined with\nthe EOA address, produces a unique smart account address.\n","title":"Parameters","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeAccountSalt()"]},"54":{"href":"/reference#returns-5","html":"\n

void

\n","isPage":false,"text":"\nvoid\n","title":"Returns","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeAccountSalt()"]},"55":{"href":"/reference#example-3","html":"\n
// Assuming 'klasterSDK' is an initialized instance of the Klaster SDK\nklasterSDK.changeAccountSalt('uniqueSaltValue123');
\n","isPage":false,"text":"\n// Assuming 'klasterSDK' is an initialized instance of the Klaster SDK\nklasterSDK.changeAccountSalt('uniqueSaltValue123');\n","title":"Example","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeAccountSalt()"]},"56":{"href":"/reference#note","html":"\n

Changing the account salt will affect all future account derivations and operations.\nIt does not affect previously derived accounts or ongoing transactions. Ensure you understand\nthe implications of changing this salt in the context of your application.

\n","isPage":false,"text":"\nChanging the account salt will affect all future account derivations and operations.\nIt does not affect previously derived accounts or ongoing transactions. Ensure you understand\nthe implications of changing this salt in the context of your application.\n","title":"Note","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeAccountSalt()"]},"57":{"href":"/reference#see-1","html":"\n

For more information on ERC4337 and account abstraction, visit:\nAccount Abstraction

\n","isPage":false,"text":"\nFor more information on ERC4337 and account abstraction, visit:\nAccount Abstraction\n","title":"See","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeAccountSalt()"]},"58":{"href":"/reference#defined-in-6","html":"\n

index.ts:136

\n","isPage":false,"text":"\nindex.ts:136\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeAccountSalt()"]},"59":{"href":"/reference#changemasteraddress","html":"\n
\n

changeMasterAddress(wallet): void

\n
\n

Changes the master wallet address used for deriving ERC4337 multichain smart accounts.

\n

This function updates the masterAddress parameter of the SDK instance. The master address,\nin combination with a salt value, is used to deterministically derive ERC4337 compliant\nmultichain smart contract accounts. Changing this address will result in deriving\ndifferent smart contract accounts for all subsequent operations.

\n","isPage":false,"text":"\n\nchangeMasterAddress(wallet): void\n\nChanges the master wallet address used for deriving ERC4337 multichain smart accounts.\nThis function updates the masterAddress parameter of the SDK instance. The master address,\nin combination with a salt value, is used to deterministically derive ERC4337 compliant\nmultichain smart contract accounts. Changing this address will result in deriving\ndifferent smart contract accounts for all subsequent operations.\n","title":"changeMasterAddress()","titles":["klaster-sdk","Classes","KlasterSDK","Methods"]},"60":{"href":"/reference#parameters-5","html":"\n

wallet: `0x${string}`

\n

The new master wallet address to be used for account derivation.\nThis should be a valid Ethereum address.

\n","isPage":false,"text":"\n• wallet: `0x${string}`\nThe new master wallet address to be used for account derivation.\nThis should be a valid Ethereum address.\n","title":"Parameters","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeMasterAddress()"]},"61":{"href":"/reference#returns-6","html":"\n

void

\n","isPage":false,"text":"\nvoid\n","title":"Returns","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeMasterAddress()"]},"62":{"href":"/reference#throws-1","html":"\n

May throw an error if the provided address is invalid.

\n","isPage":false,"text":"\nMay throw an error if the provided address is invalid.\n","title":"Throws","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeMasterAddress()"]},"63":{"href":"/reference#example-4","html":"\n
// Assuming 'klasterSDK' is an initialized instance of the Klaster SDK\nklasterSDK.changeMasterAddress('0x742d35Cc6634C0532925a3b844Bc454e4438f44e');
\n","isPage":false,"text":"\n// Assuming 'klasterSDK' is an initialized instance of the Klaster SDK\nklasterSDK.changeMasterAddress('0x742d35Cc6634C0532925a3b844Bc454e4438f44e');\n","title":"Example","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeMasterAddress()"]},"64":{"href":"/reference#note-1","html":"\n

Changing the master address will affect all future account derivations and operations.\nIt does not affect previously derived accounts or ongoing transactions. Ensure you understand\nthe implications of changing this address in the context of your application.

\n","isPage":false,"text":"\nChanging the master address will affect all future account derivations and operations.\nIt does not affect previously derived accounts or ongoing transactions. Ensure you understand\nthe implications of changing this address in the context of your application.\n","title":"Note","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeMasterAddress()"]},"65":{"href":"/reference#see-2","html":"\n

For more information on ERC4337 and account abstraction, visit:\nAccount Abstraction

\n","isPage":false,"text":"\nFor more information on ERC4337 and account abstraction, visit:\nAccount Abstraction\n","title":"See","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeMasterAddress()"]},"66":{"href":"/reference#defined-in-7","html":"\n

index.ts:107

\n","isPage":false,"text":"\nindex.ts:107\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Methods","changeMasterAddress()"]},"67":{"href":"/reference#encodetxfee","html":"\n
\n

encodeTxFee(paymentToken, chainId): Promise<ApiPaymentData>

\n
\n

A helper function that prepares an ApiPaymentData object for transaction fee payments.

\n

This asynchronous function simplifies the process of creating an ApiPaymentData object,\nwhich is used to specify how transaction fees should be paid on the Klaster Protocol.\nIt combines information from the multichain account, the current SDK configuration,\nand the specified payment token to create a complete payment data structure.

\n","isPage":false,"text":"\n\nencodeTxFee(paymentToken, chainId): Promise<ApiPaymentData>\n\nA helper function that prepares an ApiPaymentData object for transaction fee payments.\nThis asynchronous function simplifies the process of creating an ApiPaymentData object,\nwhich is used to specify how transaction fees should be paid on the Klaster Protocol.\nIt combines information from the multichain account, the current SDK configuration,\nand the specified payment token to create a complete payment data structure.\n","title":"encodeTxFee()","titles":["klaster-sdk","Classes","KlasterSDK","Methods"]},"68":{"href":"/reference#parameters-6","html":"\n

paymentToken: PaymentTokenSymbol

\n

A string representing the symbol of the token being used for\npayments. e.g. ETH, USDC, MATIC, WSTETH, ...

\n

chainId: number

\n

The chainId of the chain on which you wish to execute the payment.

\n","isPage":false,"text":"\n• paymentToken: PaymentTokenSymbol\nA string representing the symbol of the token being used for\npayments. e.g. ETH, USDC, MATIC, WSTETH, ...\n• chainId: number\nThe chainId of the chain on which you wish to execute the payment.\n","title":"Parameters","titles":["klaster-sdk","Classes","KlasterSDK","Methods","encodeTxFee()"]},"69":{"href":"/reference#returns-7","html":"\n

Promise<ApiPaymentData>

\n

A promise that resolves to an ApiPaymentData object containing:

\n\n","isPage":false,"text":"\nPromise<ApiPaymentData>\nA promise that resolves to an ApiPaymentData object containing:\n\nchainId: The chain ID where the payment will be processed\nmasterWallet: The address of the master wallet used in the SDK.\nsalt: The salt used for deriving the multichain account.\ntoken: The address of the token to be used for payment.\n\n","title":"Returns","titles":["klaster-sdk","Classes","KlasterSDK","Methods","encodeTxFee()"]},"70":{"href":"/reference#async-1","html":"\n","isPage":false,"text":"\n","title":"Async","titles":["klaster-sdk","Classes","KlasterSDK","Methods","encodeTxFee()"]},"71":{"href":"/reference#throws-2","html":"\n

May throw an error if:

\n\n","isPage":false,"text":"\nMay throw an error if:\n\nThere's an issue retrieving the multichain account.\nThe specified payment token is not found or invalid.\nAny other unexpected error occurs during the process.\n\n","title":"Throws","titles":["klaster-sdk","Classes","KlasterSDK","Methods","encodeTxFee()"]},"72":{"href":"/reference#example-5","html":"\n
// Assuming 'klasterSDK' is an initialized instance of the Klaster SDK\ntry {\n  const paymentData = await klasterSDK.encodeTxFee('USDC', optimism.id);\n  console.log('Payment data:', paymentData);\n} catch (error) {\n  console.error('Failed to encode transaction fee:', error);\n}
\n","isPage":false,"text":"\n// Assuming 'klasterSDK' is an initialized instance of the Klaster SDK\ntry {\n const paymentData = await klasterSDK.encodeTxFee('USDC', optimism.id);\n console.log('Payment data:', paymentData);\n} catch (error) {\n console.error('Failed to encode transaction fee:', error);\n}\n","title":"Example","titles":["klaster-sdk","Classes","KlasterSDK","Methods","encodeTxFee()"]},"73":{"href":"/reference#note-2","html":"\n

This function uses the current state of the SDK, including the master wallet address.\nMake sure these are set correctly before calling this function.

\n","isPage":false,"text":"\nThis function uses the current state of the SDK, including the master wallet address.\nMake sure these are set correctly before calling this function.\n","title":"Note","titles":["klaster-sdk","Classes","KlasterSDK","Methods","encodeTxFee()"]},"74":{"href":"/reference#see-3","html":"\n\n","isPage":false,"text":"\n\ngetMultichainAccount - Used internally to fetch the current multichain account.\ngetPaymentToken - Used internally to resolve the token address from the ChainTokenPair.\n\n","title":"See","titles":["klaster-sdk","Classes","KlasterSDK","Methods","encodeTxFee()"]},"75":{"href":"/reference#defined-in-8","html":"\n

index.ts:227

\n","isPage":false,"text":"\nindex.ts:227\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Methods","encodeTxFee()"]},"76":{"href":"/reference#execute","html":"\n
\n

execute(response, signedHash): Promise<ExecuteResponse>

\n
\n

Executes the Interchain Transaction (iTx) based on a quote response and signed hash.

\n

This function triggers the execution of an iTx on the Klaster network. Once called\nwith a valid signed hash, the execution becomes irreversible.

\n","isPage":false,"text":"\n\nexecute(response, signedHash): Promise<ExecuteResponse>\n\nExecutes the Interchain Transaction (iTx) based on a quote response and signed hash.\nThis function triggers the execution of an iTx on the Klaster network. Once called\nwith a valid signed hash, the execution becomes irreversible.\n","title":"execute()","titles":["klaster-sdk","Classes","KlasterSDK","Methods"]},"77":{"href":"/reference#parameters-7","html":"\n

response: QuoteResponse

\n

The response object returned from calling the quote\nendpoint. This contains necessary information for execution.

\n

signedHash: string

\n

The iTx hash, signed by the wallet using the personalSign method.

\n","isPage":false,"text":"\n• response: QuoteResponse\nThe response object returned from calling the quote\nendpoint. This contains necessary information for execution.\n• signedHash: string\nThe iTx hash, signed by the wallet using the personalSign method.\n","title":"Parameters","titles":["klaster-sdk","Classes","KlasterSDK","Methods","execute()"]},"78":{"href":"/reference#returns-8","html":"\n

Promise<ExecuteResponse>

\n

A promise that resolves to an ExecuteResponse object\ncontaining the iTx hash of the executed transaction.

\n","isPage":false,"text":"\nPromise<ExecuteResponse>\nA promise that resolves to an ExecuteResponse object\ncontaining the iTx hash of the executed transaction.\n","title":"Returns","titles":["klaster-sdk","Classes","KlasterSDK","Methods","execute()"]},"79":{"href":"/reference#async-2","html":"\n","isPage":false,"text":"\n","title":"Async","titles":["klaster-sdk","Classes","KlasterSDK","Methods","execute()"]},"80":{"href":"/reference#throws-3","html":"\n

May throw an error if the execution fails, if the signed hash is invalid,\nor if there are network issues.

\n","isPage":false,"text":"\nMay throw an error if the execution fails, if the signed hash is invalid,\nor if there are network issues.\n","title":"Throws","titles":["klaster-sdk","Classes","KlasterSDK","Methods","execute()"]},"81":{"href":"/reference#remarks-1","html":"\n

IMPORTANT: The hash must be signed using the personalSign method.\nIf you encounter an "invalid merkle hash" error, ensure you're using the correct\nsigning method. Some libraries may default to a different signing scheme.

\n","isPage":false,"text":"\nIMPORTANT: The hash must be signed using the personalSign method.\nIf you encounter an "invalid merkle hash" error, ensure you're using the correct\nsigning method. Some libraries may default to a different signing scheme.\n","title":"Remarks","titles":["klaster-sdk","Classes","KlasterSDK","Methods","execute()"]},"82":{"href":"/reference#example-6","html":"\n
try {\n  const quoteResponse = await klasterSDK.getQuote(...);\n  const signedHash = await wallet.personalSign(quoteResponse.hash);\n  const executeResponse = await klasterSDK.execute(quoteResponse, signedHash);\n  console.log('Execution successful. iTx hash:', executeResponse.iTxHash);\n} catch (error) {\n  console.error('Execution failed:', error);\n}
\n","isPage":false,"text":"\ntry {\n const quoteResponse = await klasterSDK.getQuote(...);\n const signedHash = await wallet.personalSign(quoteResponse.hash);\n const executeResponse = await klasterSDK.execute(quoteResponse, signedHash);\n console.log('Execution successful. iTx hash:', executeResponse.iTxHash);\n} catch (error) {\n console.error('Execution failed:', error);\n}\n","title":"Example","titles":["klaster-sdk","Classes","KlasterSDK","Methods","execute()"]},"83":{"href":"/reference#see-4","html":"\n\n","isPage":false,"text":"\n\ngetQuote - Used to obtain the necessary QuoteResponse.\nhttps://eips.ethereum.org/EIPS/eip-191 - EIP-191 for signed data standard.\n\n","title":"See","titles":["klaster-sdk","Classes","KlasterSDK","Methods","execute()"]},"84":{"href":"/reference#defined-in-9","html":"\n

index.ts:342

\n","isPage":false,"text":"\nindex.ts:342\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Methods","execute()"]},"85":{"href":"/reference#getmultichainaccount","html":"\n
\n

getMultichainAccount(): Promise<MultichainAccount>

\n
\n

Fetches the multichain ERC4337 account derived from the current masterWallet and salt.

\n

This asynchronous function retrieves the multichain smart contract account that is\ndeterministically derived using the masterWallet and salt parameters set during\nSDK initialization or subsequently updated.

\n

The derived account is compliant with the ERC4337 standard for account abstraction\nand can be used across multiple blockchain networks.

\n","isPage":false,"text":"\n\ngetMultichainAccount(): Promise<MultichainAccount>\n\nFetches the multichain ERC4337 account derived from the current masterWallet and salt.\nThis asynchronous function retrieves the multichain smart contract account that is\ndeterministically derived using the masterWallet and salt parameters set during\nSDK initialization or subsequently updated.\nThe derived account is compliant with the ERC4337 standard for account abstraction\nand can be used across multiple blockchain networks.\n","title":"getMultichainAccount()","titles":["klaster-sdk","Classes","KlasterSDK","Methods"]},"86":{"href":"/reference#returns-9","html":"\n

Promise<MultichainAccount>

\n

A promise that resolves to a MultichainAccount object.\nThe object contains:

\n\n","isPage":false,"text":"\nPromise<MultichainAccount>\nA promise that resolves to a MultichainAccount object.\nThe object contains:\n\nsalt: The current active account salt used for derivation.\naddress: The derived multichain smart contract account address.\n\n","title":"Returns","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getMultichainAccount()"]},"87":{"href":"/reference#async-3","html":"\n","isPage":false,"text":"\n","title":"Async","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getMultichainAccount()"]},"88":{"href":"/reference#throws-4","html":"\n

May throw an error if there's an issue communicating with the node service\nor if the account derivation fails.

\n","isPage":false,"text":"\nMay throw an error if there's an issue communicating with the node service\nor if the account derivation fails.\n","title":"Throws","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getMultichainAccount()"]},"89":{"href":"/reference#example-7","html":"\n
// Assuming 'klasterSDK' is an initialized instance of the Klaster SDK\ntry {\n  const account = await klasterSDK.getMultichainAccount();\n  console.log('Derived account:', account.address);\n  console.log('Used salt:', account.salt);\n} catch (error) {\n  console.error('Failed to fetch multichain account:', error);\n}
\n","isPage":false,"text":"\n// Assuming 'klasterSDK' is an initialized instance of the Klaster SDK\ntry {\n const account = await klasterSDK.getMultichainAccount();\n console.log('Derived account:', account.address);\n console.log('Used salt:', account.salt);\n} catch (error) {\n console.error('Failed to fetch multichain account:', error);\n}\n","title":"Example","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getMultichainAccount()"]},"90":{"href":"/reference#note-3","html":"\n

This function uses the current values of masterWallet and salt. If you need\nto derive a different account, use changeMasterAddress() or changeAccountSalt()\nbefore calling this function.

\n","isPage":false,"text":"\nThis function uses the current values of masterWallet and salt. If you need\nto derive a different account, use changeMasterAddress() or changeAccountSalt()\nbefore calling this function.\n","title":"Note","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getMultichainAccount()"]},"91":{"href":"/reference#see-5","html":"\n\n","isPage":false,"text":"\n\nchangeMasterAddress - To change the master wallet address.\nchangeAccountSalt - To change the account salt.\n\n","title":"See","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getMultichainAccount()"]},"92":{"href":"/reference#defined-in-10","html":"\n

index.ts:176

\n","isPage":false,"text":"\nindex.ts:176\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getMultichainAccount()"]},"93":{"href":"/reference#getquote","html":"\n
\n

getQuote(itx): Promise<QuoteResponse>

\n
\n

Fetches a quote for the interchain transaction (iTx).

\n

This asynchronous function processes an InterchainTransaction object to obtain a quote\nfrom the Klaster Node. The quote contains the full iTx information as well as the\nrequired payment information for executing the transaction.

\n","isPage":false,"text":"\n\ngetQuote(itx): Promise<QuoteResponse>\n\nFetches a quote for the interchain transaction (iTx).\nThis asynchronous function processes an InterchainTransaction object to obtain a quote\nfrom the Klaster Node. The quote contains the full iTx information as well as the\nrequired payment information for executing the transaction.\n","title":"getQuote()","titles":["klaster-sdk","Classes","KlasterSDK","Methods"]},"94":{"href":"/reference#parameters-8","html":"\n

itx: InterchainTransaction

\n

The full Interchain Transaction object. This object\nshould contain an array of actions and payment information.

\n","isPage":false,"text":"\n• itx: InterchainTransaction\nThe full Interchain Transaction object. This object\nshould contain an array of actions and payment information.\n","title":"Parameters","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getQuote()"]},"95":{"href":"/reference#returns-10","html":"\n

Promise<QuoteResponse>

\n

A promise that resolves to a QuoteResponse object\ncontaining the full iTx information and required payment details.

\n","isPage":false,"text":"\nPromise<QuoteResponse>\nA promise that resolves to a QuoteResponse object\ncontaining the full iTx information and required payment details.\n","title":"Returns","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getQuote()"]},"96":{"href":"/reference#async-4","html":"\n","isPage":false,"text":"\n","title":"Async","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getQuote()"]},"97":{"href":"/reference#throws-5","html":"\n

Throws an error if the actions array in the iTx is empty.

\n","isPage":false,"text":"\nThrows an error if the actions array in the iTx is empty.\n","title":"Throws","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getQuote()"]},"98":{"href":"/reference#throws-6","html":"\n

May throw errors from the EncodingService or the node service if there\nare issues encoding the actions or fetching the quote.

\n","isPage":false,"text":"\nMay throw errors from the EncodingService or the node service if there\nare issues encoding the actions or fetching the quote.\n","title":"Throws","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getQuote()"]},"99":{"href":"/reference#example-8","html":"\n
const itx = {\n  actions: [\n    {\n      txs: [{ to: '0x...', value: 1000n, data: '0x...', gasLimit: 21000n }],\n      chainId: 1\n    }\n  ],\n  paymentInfo: { ... } // ApiPaymentData object\n};\n \ntry {\n  const quote = await klasterSDK.getQuote(itx);\n  console.log('Received quote:', quote);\n} catch (error) {\n  console.error('Failed to get quote:', error);\n}
\n","isPage":false,"text":"\nconst itx = {\n actions: [\n {\n txs: [{ to: '0x...', value: 1000n, data: '0x...', gasLimit: 21000n }],\n chainId: 1\n }\n ],\n paymentInfo: { ... } // ApiPaymentData object\n};\n \ntry {\n const quote = await klasterSDK.getQuote(itx);\n console.log('Received quote:', quote);\n} catch (error) {\n console.error('Failed to get quote:', error);\n}\n","title":"Example","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getQuote()"]},"100":{"href":"/reference#note-4","html":"\n

This function uses the current values of masterAddress and activeAccountSalt\nfrom the SDK instance for encoding user operations.

\n","isPage":false,"text":"\nThis function uses the current values of masterAddress and activeAccountSalt\nfrom the SDK instance for encoding user operations.\n","title":"Note","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getQuote()"]},"101":{"href":"/reference#see-6","html":"\n\n","isPage":false,"text":"\n\nEncodingService.encodeUserOpCall - Used for encoding single transaction actions.\nEncodingService.encodeBatchCall - Used for encoding multi-transaction actions.\n\n","title":"See","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getQuote()"]},"102":{"href":"/reference#defined-in-11","html":"\n

index.ts:282

\n","isPage":false,"text":"\nindex.ts:282\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Methods","getQuote()"]},"103":{"href":"/reference#transferandexecute","html":"\n
\n

transferAndExecute(params): Promise<ExecuteResponse>

\n
\n

Transfers ERC20 tokens to the multichain smart contract account and\nexecutes the desired actions across multiple blockchains.

\n

This function performs two main operations:

\n
    \n
  1. Transfers ERC20 tokens to the smart contract account.
  2. \n
  3. Executes an interchain transaction (iTx) after the transfer is confirmed.
  4. \n
\n","isPage":false,"text":"\n\ntransferAndExecute(params): Promise<ExecuteResponse>\n\nTransfers ERC20 tokens to the multichain smart contract account and\nexecutes the desired actions across multiple blockchains.\nThis function performs two main operations:\n\nTransfers ERC20 tokens to the smart contract account.\nExecutes an interchain transaction (iTx) after the transfer is confirmed.\n\n","title":"transferAndExecute()","titles":["klaster-sdk","Classes","KlasterSDK","Methods"]},"104":{"href":"/reference#parameters-9","html":"\n

params

\n

The parameters object containing transfer and execution instructions.

\n

params.executeItx

\n

Instructions for executing the interchain transaction.

\n

params.executeItx.iTx: InterchainTransaction

\n

params.executeItx.signItxHashAction

\n

params.transferToSmartAccount

\n

Instructions for transferring ERC20 tokens to the smart account.

\n

params.transferToSmartAccount.amountToTransfer: bigint

\n

params.transferToSmartAccount.chainId: number

\n

params.transferToSmartAccount.executeTxAction

\n

params.transferToSmartAccount.tokenToTransfer: `0x${string}`

\n","isPage":false,"text":"\n• params\nThe parameters object containing transfer and execution instructions.\n• params.executeItx\nInstructions for executing the interchain transaction.\n• params.executeItx.iTx: InterchainTransaction\n• params.executeItx.signItxHashAction\n• params.transferToSmartAccount\nInstructions for transferring ERC20 tokens to the smart account.\n• params.transferToSmartAccount.amountToTransfer: bigint\n• params.transferToSmartAccount.chainId: number\n• params.transferToSmartAccount.executeTxAction\n• params.transferToSmartAccount.tokenToTransfer: `0x${string}`\n","title":"Parameters","titles":["klaster-sdk","Classes","KlasterSDK","Methods","transferAndExecute()"]},"105":{"href":"/reference#returns-11","html":"\n

Promise<ExecuteResponse>

\n

A promise that resolves to the execution response of the iTx.

\n","isPage":false,"text":"\nPromise<ExecuteResponse>\nA promise that resolves to the execution response of the iTx.\n","title":"Returns","titles":["klaster-sdk","Classes","KlasterSDK","Methods","transferAndExecute()"]},"106":{"href":"/reference#async-5","html":"\n","isPage":false,"text":"\n","title":"Async","titles":["klaster-sdk","Classes","KlasterSDK","Methods","transferAndExecute()"]},"107":{"href":"/reference#throws-7","html":"\n

May throw errors during the token transfer, quote fetching, signing, or execution phases.

\n","isPage":false,"text":"\nMay throw errors during the token transfer, quote fetching, signing, or execution phases.\n","title":"Throws","titles":["klaster-sdk","Classes","KlasterSDK","Methods","transferAndExecute()"]},"108":{"href":"/reference#example-9","html":"\n
const result = await klasterSDK.transferAndExecute({\n  transferToSmartAccount: {\n    tokenToTransfer: '0x...',  // ERC20 token address\n    amountToTransfer: BigInt(1000000),  // Amount in smallest unit\n    chainId: 1,  // Ethereum mainnet\n    executeTxAction: async (tx) => {\n      // Implement your transaction execution logic here\n      await yourProvider.sendTransaction(tx);\n    }\n  },\n  executeItx: {\n    iTx: {\n      // Your interchain transaction object\n    },\n    signItxHashAction: async (hash) => {\n      // Implement your signing logic here\n      return await yourSigner.signMessage(hash);\n    }\n  }\n});
\n","isPage":false,"text":"\nconst result = await klasterSDK.transferAndExecute({\n transferToSmartAccount: {\n tokenToTransfer: '0x...', // ERC20 token address\n amountToTransfer: BigInt(1000000), // Amount in smallest unit\n chainId: 1, // Ethereum mainnet\n executeTxAction: async (tx) => {\n // Implement your transaction execution logic here\n await yourProvider.sendTransaction(tx);\n }\n },\n executeItx: {\n iTx: {\n // Your interchain transaction object\n },\n signItxHashAction: async (hash) => {\n // Implement your signing logic here\n return await yourSigner.signMessage(hash);\n }\n }\n});\n","title":"Example","titles":["klaster-sdk","Classes","KlasterSDK","Methods","transferAndExecute()"]},"109":{"href":"/reference#remarks-2","html":"\n\n","isPage":false,"text":"\n\nThe executeTxAction function should handle the actual sending of the transfer transaction to the blockchain.\nConsult the Klaster documentation for details on implementing this with your specific provider.\nThe signItxHashAction function should handle the signing of the iTx hash.\nEnsure you're using the correct signing method as specified in the Klaster documentation.\nThis function will wait for the transfer transaction to be accepted before proceeding with the iTx execution.\n\n","title":"Remarks","titles":["klaster-sdk","Classes","KlasterSDK","Methods","transferAndExecute()"]},"110":{"href":"/reference#see-7","html":"\n\n","isPage":false,"text":"\n\nKlaster documentation for detailed information on implementing executeTxAction and signItxHashAction.\nbuildTransferERC20FromEoaTx - Used internally to construct the transfer transaction.\ngetQuote - Used internally to fetch the quote for the iTx.\nexecute - Used internally to execute the iTx.\n\n","title":"See","titles":["klaster-sdk","Classes","KlasterSDK","Methods","transferAndExecute()"]},"111":{"href":"/reference#defined-in-12","html":"\n

index.ts:466

\n
\n","isPage":false,"text":"\nindex.ts:466\n\n","title":"Defined in","titles":["klaster-sdk","Classes","KlasterSDK","Methods","transferAndExecute()"]},"112":{"href":"/reference#saltutil","html":"\n

Utility class for generating salt values used in KlasterSDK functions.

\n

Salt values are crucial for deriving unique smart contract accounts within the Klaster ecosystem.\nThis class provides methods to generate salts for different account scenarios.

\n","isPage":false,"text":"\nUtility class for generating salt values used in KlasterSDK functions.\nSalt values are crucial for deriving unique smart contract accounts within the Klaster ecosystem.\nThis class provides methods to generate salts for different account scenarios.\n","title":"SaltUtil","titles":["klaster-sdk","Classes"]},"113":{"href":"/reference#constructors-2","html":"\n","isPage":false,"text":"\n","title":"Constructors","titles":["klaster-sdk","Classes","SaltUtil"]},"114":{"href":"/reference#new-saltutil","html":"\n
\n

new SaltUtil(): SaltUtil

\n
\n","isPage":false,"text":"\n\nnew SaltUtil(): SaltUtil\n\n","title":"new SaltUtil()","titles":["klaster-sdk","Classes","SaltUtil","Constructors"]},"115":{"href":"/reference#returns-12","html":"\n

SaltUtil

\n","isPage":false,"text":"\nSaltUtil\n","title":"Returns","titles":["klaster-sdk","Classes","SaltUtil","Constructors","new SaltUtil()"]},"116":{"href":"/reference#methods-2","html":"\n","isPage":false,"text":"\n","title":"Methods","titles":["klaster-sdk","Classes","SaltUtil"]},"117":{"href":"/reference#accountat","html":"\n
\n

static accountAt(i): string

\n
\n

Generates a salt for an account at a specific index.

\n

This method allows for deterministic generation of salts for multiple accounts.

\n","isPage":false,"text":"\n\nstatic accountAt(i): string\n\nGenerates a salt for an account at a specific index.\nThis method allows for deterministic generation of salts for multiple accounts.\n","title":"accountAt()","titles":["klaster-sdk","Classes","SaltUtil","Methods"]},"118":{"href":"/reference#parameters-10","html":"\n

i: number

\n

The index of the account, starting from 0.

\n","isPage":false,"text":"\n• i: number\nThe index of the account, starting from 0.\n","title":"Parameters","titles":["klaster-sdk","Classes","SaltUtil","Methods","accountAt()"]},"119":{"href":"/reference#returns-13","html":"\n

string

\n

A salt value corresponding to the given index.

\n","isPage":false,"text":"\nstring\nA salt value corresponding to the given index.\n","title":"Returns","titles":["klaster-sdk","Classes","SaltUtil","Methods","accountAt()"]},"120":{"href":"/reference#example-10","html":"\n
const thirdAccountSalt = SaltUtil.accountAt(2);\nconsole.log(thirdAccountSalt); // Outputs: "2"
\n","isPage":false,"text":"\nconst thirdAccountSalt = SaltUtil.accountAt(2);\nconsole.log(thirdAccountSalt); // Outputs: "2"\n","title":"Example","titles":["klaster-sdk","Classes","SaltUtil","Methods","accountAt()"]},"121":{"href":"/reference#defined-in-13","html":"\n

utils/salt.service.ts:33

\n","isPage":false,"text":"\nutils/salt.service.ts:33\n","title":"Defined in","titles":["klaster-sdk","Classes","SaltUtil","Methods","accountAt()"]},"122":{"href":"/reference#customaccount","html":"\n
\n

static customAccount(salt): string

\n
\n

Allows for the use of a custom salt value.

\n

This method provides flexibility for users who want to use their own salt values.

\n","isPage":false,"text":"\n\nstatic customAccount(salt): string\n\nAllows for the use of a custom salt value.\nThis method provides flexibility for users who want to use their own salt values.\n","title":"customAccount()","titles":["klaster-sdk","Classes","SaltUtil","Methods"]},"123":{"href":"/reference#parameters-11","html":"\n

salt: string

\n

A custom salt value.

\n","isPage":false,"text":"\n• salt: string\nA custom salt value.\n","title":"Parameters","titles":["klaster-sdk","Classes","SaltUtil","Methods","customAccount()"]},"124":{"href":"/reference#returns-14","html":"\n

string

\n

The provided custom salt value.

\n","isPage":false,"text":"\nstring\nThe provided custom salt value.\n","title":"Returns","titles":["klaster-sdk","Classes","SaltUtil","Methods","customAccount()"]},"125":{"href":"/reference#example-11","html":"\n
const customSalt = SaltUtil.customAccount("mySuperUniqueValue");\nconsole.log(customSalt); // Outputs: "mySuperUniqueValue"
\n","isPage":false,"text":"\nconst customSalt = SaltUtil.customAccount("mySuperUniqueValue");\nconsole.log(customSalt); // Outputs: "mySuperUniqueValue"\n","title":"Example","titles":["klaster-sdk","Classes","SaltUtil","Methods","customAccount()"]},"126":{"href":"/reference#remarks-3","html":"\n

When using custom salts, ensure they are unique to avoid account collisions.\nCustom salts should be securely generated and managed to maintain account security.

\n","isPage":false,"text":"\nWhen using custom salts, ensure they are unique to avoid account collisions.\nCustom salts should be securely generated and managed to maintain account security.\n","title":"Remarks","titles":["klaster-sdk","Classes","SaltUtil","Methods","customAccount()"]},"127":{"href":"/reference#defined-in-14","html":"\n

utils/salt.service.ts:53

\n","isPage":false,"text":"\nutils/salt.service.ts:53\n","title":"Defined in","titles":["klaster-sdk","Classes","SaltUtil","Methods","customAccount()"]},"128":{"href":"/reference#firstaccount","html":"\n
\n

static firstAccount(): string

\n
\n

Generates a salt for the first (default) account.

\n","isPage":false,"text":"\n\nstatic firstAccount(): string\n\nGenerates a salt for the first (default) account.\n","title":"firstAccount()","titles":["klaster-sdk","Classes","SaltUtil","Methods"]},"129":{"href":"/reference#returns-15","html":"\n

string

\n

A salt value of "0", representing the first account.

\n","isPage":false,"text":"\nstring\nA salt value of "0", representing the first account.\n","title":"Returns","titles":["klaster-sdk","Classes","SaltUtil","Methods","firstAccount()"]},"130":{"href":"/reference#example-12","html":"\n
const firstAccountSalt = SaltUtil.firstAccount();\nconsole.log(firstAccountSalt); // Outputs: "0"
\n","isPage":false,"text":"\nconst firstAccountSalt = SaltUtil.firstAccount();\nconsole.log(firstAccountSalt); // Outputs: "0"\n","title":"Example","titles":["klaster-sdk","Classes","SaltUtil","Methods","firstAccount()"]},"131":{"href":"/reference#defined-in-15","html":"\n

utils/salt.service.ts:17

\n","isPage":false,"text":"\nutils/salt.service.ts:17\n","title":"Defined in","titles":["klaster-sdk","Classes","SaltUtil","Methods","firstAccount()"]},"132":{"href":"/reference#interfaces","html":"\n","isPage":false,"text":"\n","title":"Interfaces","titles":["klaster-sdk"]},"133":{"href":"/reference#apipaymentdata","html":"\n

Represents the payment data structure for gas costs and transaction fees in the Klaster API.\nThis interface defines the necessary information for processing payments related to\nuser operations on the Klaster network.

\n

ApiPaymentData

\n","isPage":false,"text":"\nRepresents the payment data structure for gas costs and transaction fees in the Klaster API.\nThis interface defines the necessary information for processing payments related to\nuser operations on the Klaster network.\nApiPaymentData\n","title":"ApiPaymentData","titles":["klaster-sdk","Interfaces"]},"134":{"href":"/reference#properties-1","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","ApiPaymentData"]},"135":{"href":"/reference#chainid","html":"\n
\n

chainId: number

\n
\n

The ID of the blockchain network on which the payment for\nthe gas cost and transaction fees will be processed. This determines the specific\nblockchain where the payment transaction will occur.

\n","isPage":false,"text":"\n\nchainId: number\n\nThe ID of the blockchain network on which the payment for\nthe gas cost and transaction fees will be processed. This determines the specific\nblockchain where the payment transaction will occur.\n","title":"chainId","titles":["klaster-sdk","Interfaces","ApiPaymentData","Properties"]},"136":{"href":"/reference#defined-in-16","html":"\n

types.ts:52

\n","isPage":false,"text":"\ntypes.ts:52\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ApiPaymentData","Properties","chainId"]},"137":{"href":"/reference#masterwallet","html":"\n
\n

masterWallet: `0x${string}`

\n
\n

The address of the Externally Owned Account (EOA) from which\nthe Klaster Multichain Smart Account is derived.

\n","isPage":false,"text":"\n\nmasterWallet: `0x${string}`\n\nThe address of the Externally Owned Account (EOA) from which\nthe Klaster Multichain Smart Account is derived.\n","title":"masterWallet","titles":["klaster-sdk","Interfaces","ApiPaymentData","Properties"]},"138":{"href":"/reference#defined-in-17","html":"\n

types.ts:49

\n","isPage":false,"text":"\ntypes.ts:49\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ApiPaymentData","Properties","masterWallet"]},"139":{"href":"/reference#salt","html":"\n
\n

salt: string

\n
\n

A unique value used in conjunction with the masterWallet address\nto calculate the Klaster Multichain Smart Account address. This ensures unique account\naddresses for the same EOA.

\n","isPage":false,"text":"\n\nsalt: string\n\nA unique value used in conjunction with the masterWallet address\nto calculate the Klaster Multichain Smart Account address. This ensures unique account\naddresses for the same EOA.\n","title":"salt","titles":["klaster-sdk","Interfaces","ApiPaymentData","Properties"]},"140":{"href":"/reference#defined-in-18","html":"\n

types.ts:50

\n","isPage":false,"text":"\ntypes.ts:50\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ApiPaymentData","Properties","salt"]},"141":{"href":"/reference#token","html":"\n
\n

token: string

\n
\n

The address of the ERC20 token that will be used to pay for\nthe gas cost and transaction fees associated with the user operation.

\n","isPage":false,"text":"\n\ntoken: string\n\nThe address of the ERC20 token that will be used to pay for\nthe gas cost and transaction fees associated with the user operation.\n","title":"token","titles":["klaster-sdk","Interfaces","ApiPaymentData","Properties"]},"142":{"href":"/reference#defined-in-19","html":"\n

types.ts:51

\n
\n","isPage":false,"text":"\ntypes.ts:51\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ApiPaymentData","Properties","token"]},"143":{"href":"/reference#apiuserop","html":"\n

Represents the user operation format expected as input by the Klaster Node API.\nThis interface defines the structure for ERC-4337 compliant user operations\nspecifically tailored for Klaster Multichain Smart Accounts.

\n

ApiUserOp

\n","isPage":false,"text":"\nRepresents the user operation format expected as input by the Klaster Node API.\nThis interface defines the structure for ERC-4337 compliant user operations\nspecifically tailored for Klaster Multichain Smart Accounts.\nApiUserOp\n","title":"ApiUserOp","titles":["klaster-sdk","Interfaces"]},"144":{"href":"/reference#properties-2","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","ApiUserOp"]},"145":{"href":"/reference#calldata","html":"\n
\n

callData: string

\n
\n

The encoded function call data to be executed on the blockchain.\nThis represents the actual operation the user wants to perform.

\n","isPage":false,"text":"\n\ncallData: string\n\nThe encoded function call data to be executed on the blockchain.\nThis represents the actual operation the user wants to perform.\n","title":"callData","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties"]},"146":{"href":"/reference#defined-in-20","html":"\n

types.ts:25

\n","isPage":false,"text":"\ntypes.ts:25\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties","callData"]},"147":{"href":"/reference#callgaslimit","html":"\n
\n

callGasLimit: string

\n
\n

The maximum amount of gas that can be used for the execution\nof the callData on the target blockchain. This is part of the ERC-4337 specification for\naccount abstraction.

\n","isPage":false,"text":"\n\ncallGasLimit: string\n\nThe maximum amount of gas that can be used for the execution\nof the callData on the target blockchain. This is part of the ERC-4337 specification for\naccount abstraction.\n","title":"callGasLimit","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties"]},"148":{"href":"/reference#defined-in-21","html":"\n

types.ts:26

\n","isPage":false,"text":"\ntypes.ts:26\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties","callGasLimit"]},"149":{"href":"/reference#chainid-1","html":"\n
\n

chainId: number

\n
\n

The ID of the blockchain network where the UserOp is to be executed.\nThis determines which network the operation will be sent to.

\n","isPage":false,"text":"\n\nchainId: number\n\nThe ID of the blockchain network where the UserOp is to be executed.\nThis determines which network the operation will be sent to.\n","title":"chainId","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties"]},"150":{"href":"/reference#defined-in-22","html":"\n

types.ts:27

\n","isPage":false,"text":"\ntypes.ts:27\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties","chainId"]},"151":{"href":"/reference#masterwallet-1","html":"\n
\n

masterWallet: `0x${string}`

\n
\n

The address of the Externally Owned Account (EOA) from which\nthe Klaster Multichain Smart Account is derived.

\n","isPage":false,"text":"\n\nmasterWallet: `0x${string}`\n\nThe address of the Externally Owned Account (EOA) from which\nthe Klaster Multichain Smart Account is derived.\n","title":"masterWallet","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties"]},"152":{"href":"/reference#defined-in-23","html":"\n

types.ts:23

\n","isPage":false,"text":"\ntypes.ts:23\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties","masterWallet"]},"153":{"href":"/reference#salt-1","html":"\n
\n

salt: string

\n
\n

A unique value used in conjunction with the masterWallet address\nto calculate the Klaster Multichain Smart Account address. This ensures unique account\naddresses for the same EOA.

\n","isPage":false,"text":"\n\nsalt: string\n\nA unique value used in conjunction with the masterWallet address\nto calculate the Klaster Multichain Smart Account address. This ensures unique account\naddresses for the same EOA.\n","title":"salt","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties"]},"154":{"href":"/reference#defined-in-24","html":"\n

types.ts:24

\n
\n","isPage":false,"text":"\ntypes.ts:24\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ApiUserOp","Properties","salt"]},"155":{"href":"/reference#erc4337userop","html":"\n

Represents the full ERC-4337 UserOperation standard object format.\nThis interface defines the structure of a user operation as specified in the ERC-4337 standard\nfor account abstraction in Ethereum.

\n

ERC4337UserOp

\n","isPage":false,"text":"\nRepresents the full ERC-4337 UserOperation standard object format.\nThis interface defines the structure of a user operation as specified in the ERC-4337 standard\nfor account abstraction in Ethereum.\nERC4337UserOp\n","title":"ERC4337UserOp","titles":["klaster-sdk","Interfaces"]},"156":{"href":"/reference#properties-3","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","ERC4337UserOp"]},"157":{"href":"/reference#calldata-1","html":"\n
\n

callData: string

\n
\n

The data to be passed to the sender during the main execution call.

\n","isPage":false,"text":"\n\ncallData: string\n\nThe data to be passed to the sender during the main execution call.\n","title":"callData","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"158":{"href":"/reference#defined-in-25","html":"\n

types.ts:77

\n","isPage":false,"text":"\ntypes.ts:77\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","callData"]},"159":{"href":"/reference#callgaslimit-1","html":"\n
\n

callGasLimit: string

\n
\n

The gas limit for the main execution call.

\n","isPage":false,"text":"\n\ncallGasLimit: string\n\nThe gas limit for the main execution call.\n","title":"callGasLimit","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"160":{"href":"/reference#defined-in-26","html":"\n

types.ts:78

\n","isPage":false,"text":"\ntypes.ts:78\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","callGasLimit"]},"161":{"href":"/reference#initcode","html":"\n
\n

initCode: string

\n
\n

The initialization code for the account if it hasn't been deployed yet. Empty string if the account is already deployed.

\n","isPage":false,"text":"\n\ninitCode: string\n\nThe initialization code for the account if it hasn't been deployed yet. Empty string if the account is already deployed.\n","title":"initCode","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"162":{"href":"/reference#defined-in-27","html":"\n

types.ts:76

\n","isPage":false,"text":"\ntypes.ts:76\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","initCode"]},"163":{"href":"/reference#maxfeepergas","html":"\n
\n

maxFeePerGas: string

\n
\n

The maximum total fee per gas the sender is willing to pay (including the priority fee).

\n","isPage":false,"text":"\n\nmaxFeePerGas: string\n\nThe maximum total fee per gas the sender is willing to pay (including the priority fee).\n","title":"maxFeePerGas","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"164":{"href":"/reference#defined-in-28","html":"\n

types.ts:81

\n","isPage":false,"text":"\ntypes.ts:81\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","maxFeePerGas"]},"165":{"href":"/reference#maxpriorityfeepergas","html":"\n
\n

maxPriorityFeePerGas: string

\n
\n

The maximum priority fee per gas the sender is willing to pay.

\n","isPage":false,"text":"\n\nmaxPriorityFeePerGas: string\n\nThe maximum priority fee per gas the sender is willing to pay.\n","title":"maxPriorityFeePerGas","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"166":{"href":"/reference#defined-in-29","html":"\n

types.ts:82

\n","isPage":false,"text":"\ntypes.ts:82\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","maxPriorityFeePerGas"]},"167":{"href":"/reference#nonce","html":"\n
\n

nonce: string

\n
\n

A unique identifier to prevent replay attacks, typically managed by the account itself.

\n","isPage":false,"text":"\n\nnonce: string\n\nA unique identifier to prevent replay attacks, typically managed by the account itself.\n","title":"nonce","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"168":{"href":"/reference#defined-in-30","html":"\n

types.ts:75

\n","isPage":false,"text":"\ntypes.ts:75\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","nonce"]},"169":{"href":"/reference#paymasteranddata","html":"\n
\n

paymasterAndData: string

\n
\n

The address of the paymaster sponsoring the transaction, followed by extra data to send to the paymaster. Empty string if there's no paymaster.

\n","isPage":false,"text":"\n\npaymasterAndData: string\n\nThe address of the paymaster sponsoring the transaction, followed by extra data to send to the paymaster. Empty string if there's no paymaster.\n","title":"paymasterAndData","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"170":{"href":"/reference#defined-in-31","html":"\n

types.ts:83

\n","isPage":false,"text":"\ntypes.ts:83\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","paymasterAndData"]},"171":{"href":"/reference#preverificationgas","html":"\n
\n

preVerificationGas: string

\n
\n

The amount of gas to compensate the bundler for pre-verification execution and calldata.

\n","isPage":false,"text":"\n\npreVerificationGas: string\n\nThe amount of gas to compensate the bundler for pre-verification execution and calldata.\n","title":"preVerificationGas","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"172":{"href":"/reference#defined-in-32","html":"\n

types.ts:80

\n","isPage":false,"text":"\ntypes.ts:80\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","preVerificationGas"]},"173":{"href":"/reference#sender","html":"\n
\n

sender: `0x${string}`

\n
\n

The address of the smart contract account that will make the transaction.

\n","isPage":false,"text":"\n\nsender: `0x${string}`\n\nThe address of the smart contract account that will make the transaction.\n","title":"sender","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"174":{"href":"/reference#defined-in-33","html":"\n

types.ts:74

\n","isPage":false,"text":"\ntypes.ts:74\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","sender"]},"175":{"href":"/reference#signature","html":"\n
\n

signature: string

\n
\n

The signature over the entire UserOperation, to be validated during verification.

\n","isPage":false,"text":"\n\nsignature: string\n\nThe signature over the entire UserOperation, to be validated during verification.\n","title":"signature","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"176":{"href":"/reference#defined-in-34","html":"\n

types.ts:84

\n","isPage":false,"text":"\ntypes.ts:84\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","signature"]},"177":{"href":"/reference#verificationgaslimit","html":"\n
\n

verificationGasLimit: string

\n
\n

The gas limit for the verification step.

\n","isPage":false,"text":"\n\nverificationGasLimit: string\n\nThe gas limit for the verification step.\n","title":"verificationGasLimit","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties"]},"178":{"href":"/reference#defined-in-35","html":"\n

types.ts:79

\n
\n","isPage":false,"text":"\ntypes.ts:79\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ERC4337UserOp","Properties","verificationGasLimit"]},"179":{"href":"/reference#executeresponse","html":"\n

Represents the response model returned by the /execute route of the Klaster Node API.\nThis interface encapsulates the result of initiating the execution of an interchain transaction.

\n

ExecuteResponse

\n","isPage":false,"text":"\nRepresents the response model returned by the /execute route of the Klaster Node API.\nThis interface encapsulates the result of initiating the execution of an interchain transaction.\nExecuteResponse\n","title":"ExecuteResponse","titles":["klaster-sdk","Interfaces"]},"180":{"href":"/reference#properties-4","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","ExecuteResponse"]},"181":{"href":"/reference#itxhash","html":"\n
\n

iTxHash: string

\n
\n

The hash of the Klaster Interchain Transaction (iTx) that has been\nsubmitted for execution. This hash serves as a unique identifier for the interchain transaction\nand can be used to track or reference the transaction's status and outcome across multiple chains.

\n","isPage":false,"text":"\n\niTxHash: string\n\nThe hash of the Klaster Interchain Transaction (iTx) that has been\nsubmitted for execution. This hash serves as a unique identifier for the interchain transaction\nand can be used to track or reference the transaction's status and outcome across multiple chains.\n","title":"iTxHash","titles":["klaster-sdk","Interfaces","ExecuteResponse","Properties"]},"182":{"href":"/reference#defined-in-36","html":"\n

types.ts:154

\n
\n","isPage":false,"text":"\ntypes.ts:154\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ExecuteResponse","Properties","iTxHash"]},"183":{"href":"/reference#executedaction","html":"\n

Represents the model returned by the Klaster Node API after an Action has been executed.\nThis interface provides detailed information about the execution status and parameters\nof a user operation processed by Klaster.

\n

ExecutedAction

\n","isPage":false,"text":"\nRepresents the model returned by the Klaster Node API after an Action has been executed.\nThis interface provides detailed information about the execution status and parameters\nof a user operation processed by Klaster.\nExecutedAction\n","title":"ExecutedAction","titles":["klaster-sdk","Interfaces"]},"184":{"href":"/reference#properties-5","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","ExecutedAction"]},"185":{"href":"/reference#chainid-2","html":"\n
\n

chainId: string

\n
\n

The identifier of the blockchain network on which the userOp is executed.

\n","isPage":false,"text":"\n\nchainId: string\n\nThe identifier of the blockchain network on which the userOp is executed.\n","title":"chainId","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties"]},"186":{"href":"/reference#defined-in-37","html":"\n

types.ts:112

\n","isPage":false,"text":"\ntypes.ts:112\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties","chainId"]},"187":{"href":"/reference#executiondata","html":"\n
\n

executionData: string

\n
\n

The callData of the executed action, representing the actual operation performed.

\n","isPage":false,"text":"\n\nexecutionData: string\n\nThe callData of the executed action, representing the actual operation performed.\n","title":"executionData","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties"]},"188":{"href":"/reference#defined-in-38","html":"\n

types.ts:115

\n","isPage":false,"text":"\ntypes.ts:115\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties","executionData"]},"189":{"href":"/reference#executionstatus","html":"\n
\n

executionStatus: "SUCCESS" | "PENDING" | "FAILED"

\n
\n

The current status of the UserOp execution:

\n\n","isPage":false,"text":"\n\nexecutionStatus: "SUCCESS" | "PENDING" | "FAILED"\n\nThe current status of the UserOp execution:\n\n"SUCCESS": The operation was successfully executed.\n"FAILED": The operation failed during execution.\n"PENDING": The Klaster node is waiting for conditions to be met before execution.\nThis status is part of the Klaster spec and is particularly relevant for multichain actions\nwhere execution conditions on the destination chain may depend on prior token bridging.\n\n","title":"executionStatus","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties"]},"190":{"href":"/reference#defined-in-39","html":"\n

types.ts:114

\n","isPage":false,"text":"\ntypes.ts:114\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties","executionStatus"]},"191":{"href":"/reference#lowerboundtimestap","html":"\n
\n

lowerBoundTimestap: string

\n
\n

The earliest timestamp at which the userOp will be executed on the target blockchain.

\n","isPage":false,"text":"\n\nlowerBoundTimestap: string\n\nThe earliest timestamp at which the userOp will be executed on the target blockchain.\n","title":"lowerBoundTimestap","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties"]},"192":{"href":"/reference#defined-in-40","html":"\n

types.ts:110

\n","isPage":false,"text":"\ntypes.ts:110\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties","lowerBoundTimestap"]},"193":{"href":"/reference#maxgaslimit","html":"\n
\n

maxGasLimit: string

\n
\n

The maximum gas limit allowed for the execution of this userOp.

\n","isPage":false,"text":"\n\nmaxGasLimit: string\n\nThe maximum gas limit allowed for the execution of this userOp.\n","title":"maxGasLimit","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties"]},"194":{"href":"/reference#defined-in-41","html":"\n

types.ts:113

\n","isPage":false,"text":"\ntypes.ts:113\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties","maxGasLimit"]},"195":{"href":"/reference#upperboundtimestamp","html":"\n
\n

upperBoundTimestamp: string

\n
\n

The latest timestamp by which the userOp will be executed on the target blockchain.

\n","isPage":false,"text":"\n\nupperBoundTimestamp: string\n\nThe latest timestamp by which the userOp will be executed on the target blockchain.\n","title":"upperBoundTimestamp","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties"]},"196":{"href":"/reference#defined-in-42","html":"\n

types.ts:111

\n","isPage":false,"text":"\ntypes.ts:111\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties","upperBoundTimestamp"]},"197":{"href":"/reference#userop","html":"\n
\n

userOp: ERC4337UserOp

\n
\n

The full ERC-4337 UserOperation object that was executed.

\n","isPage":false,"text":"\n\nuserOp: ERC4337UserOp\n\nThe full ERC-4337 UserOperation object that was executed.\n","title":"userOp","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties"]},"198":{"href":"/reference#defined-in-43","html":"\n

types.ts:108

\n","isPage":false,"text":"\ntypes.ts:108\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties","userOp"]},"199":{"href":"/reference#userophash","html":"\n
\n

userOpHash: string

\n
\n

The hash of the userOp, serving as a unique identifier for the operation.

\n","isPage":false,"text":"\n\nuserOpHash: string\n\nThe hash of the userOp, serving as a unique identifier for the operation.\n","title":"userOpHash","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties"]},"200":{"href":"/reference#defined-in-44","html":"\n

types.ts:109

\n
\n","isPage":false,"text":"\ntypes.ts:109\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ExecutedAction","Properties","userOpHash"]},"201":{"href":"/reference#itxuserop","html":"\n

Represents the minimal UserOperation required for a fully described Klaster Interchain Transaction model.\nThis interface defines the structure for actions that can be performed on a single chain within\na Klaster Interchain Transaction.

\n

ITxUserOp

\n","isPage":false,"text":"\nRepresents the minimal UserOperation required for a fully described Klaster Interchain Transaction model.\nThis interface defines the structure for actions that can be performed on a single chain within\na Klaster Interchain Transaction.\nITxUserOp\n","title":"ITxUserOp","titles":["klaster-sdk","Interfaces"]},"202":{"href":"/reference#properties-6","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","ITxUserOp"]},"203":{"href":"/reference#chainid-3","html":"\n
\n

chainId: number

\n
\n

The identifier of the blockchain network on which the transaction(s) will be executed.

\n","isPage":false,"text":"\n\nchainId: number\n\nThe identifier of the blockchain network on which the transaction(s) will be executed.\n","title":"chainId","titles":["klaster-sdk","Interfaces","ITxUserOp","Properties"]},"204":{"href":"/reference#defined-in-45","html":"\n

types.ts:212

\n","isPage":false,"text":"\ntypes.ts:212\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ITxUserOp","Properties","chainId"]},"205":{"href":"/reference#lowerboundtime","html":"\n
\n

optional lowerBoundTime: number

\n
\n

Optional. The earliest timestamp at which the transaction(s) can be executed.

\n","isPage":false,"text":"\n\noptional lowerBoundTime: number\n\nOptional. The earliest timestamp at which the transaction(s) can be executed.\n","title":"lowerBoundTime?","titles":["klaster-sdk","Interfaces","ITxUserOp","Properties"]},"206":{"href":"/reference#defined-in-46","html":"\n

types.ts:214

\n","isPage":false,"text":"\ntypes.ts:214\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ITxUserOp","Properties","lowerBoundTime?"]},"207":{"href":"/reference#txs","html":"\n
\n

txs: RawTransaction[]

\n
\n

An array of raw transactions to be executed on the specified chain.

\n\n","isPage":false,"text":"\n\ntxs: RawTransaction[]\n\nAn array of raw transactions to be executed on the specified chain.\n\nIf this array contains a single transaction, the 'execute' function will be called on the smart contract account.\nIf this array contains multiple transactions, the 'batchExecute' function will be called on the smart contract account.\n\n","title":"txs","titles":["klaster-sdk","Interfaces","ITxUserOp","Properties"]},"208":{"href":"/reference#defined-in-47","html":"\n

types.ts:211

\n","isPage":false,"text":"\ntypes.ts:211\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ITxUserOp","Properties","txs"]},"209":{"href":"/reference#upperboundtime","html":"\n
\n

optional upperBoundTime: number

\n
\n

Optional. The latest timestamp by which the transaction(s) should be executed.

\n","isPage":false,"text":"\n\noptional upperBoundTime: number\n\nOptional. The latest timestamp by which the transaction(s) should be executed.\n","title":"upperBoundTime?","titles":["klaster-sdk","Interfaces","ITxUserOp","Properties"]},"210":{"href":"/reference#defined-in-48","html":"\n

types.ts:213

\n
\n","isPage":false,"text":"\ntypes.ts:213\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ITxUserOp","Properties","upperBoundTime?"]},"211":{"href":"/reference#interchaintransaction","html":"\n","isPage":false,"text":"\n","title":"InterchainTransaction","titles":["klaster-sdk","Interfaces"]},"212":{"href":"/reference#properties-7","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","InterchainTransaction"]},"213":{"href":"/reference#actions","html":"\n
\n

actions: ITxUserOp[]

\n
\n","isPage":false,"text":"\n\nactions: ITxUserOp[]\n\n","title":"actions","titles":["klaster-sdk","Interfaces","InterchainTransaction","Properties"]},"214":{"href":"/reference#defined-in-49","html":"\n

types.ts:193

\n","isPage":false,"text":"\ntypes.ts:193\n","title":"Defined in","titles":["klaster-sdk","Interfaces","InterchainTransaction","Properties","actions"]},"215":{"href":"/reference#paymentinfo","html":"\n
\n

paymentInfo: ApiPaymentData

\n
\n","isPage":false,"text":"\n\npaymentInfo: ApiPaymentData\n\n","title":"paymentInfo","titles":["klaster-sdk","Interfaces","InterchainTransaction","Properties"]},"216":{"href":"/reference#defined-in-50","html":"\n

types.ts:194

\n
\n","isPage":false,"text":"\ntypes.ts:194\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","InterchainTransaction","Properties","paymentInfo"]},"217":{"href":"/reference#itxstatusresponse","html":"\n

Represents the response model returned by the /explorer route of the Klaster Node API.\nThis interface provides detailed information about the status and execution details of an interchain transaction.

\n

ItxStatusResponse

\n","isPage":false,"text":"\nRepresents the response model returned by the /explorer route of the Klaster Node API.\nThis interface provides detailed information about the status and execution details of an interchain transaction.\nItxStatusResponse\n","title":"ItxStatusResponse","titles":["klaster-sdk","Interfaces"]},"218":{"href":"/reference#properties-8","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","ItxStatusResponse"]},"219":{"href":"/reference#commitment","html":"\n
\n

commitment: string

\n
\n

The cryptographic commitment generated by the Klaster node, guaranteeing\nthe execution of the interchain transaction.

\n","isPage":false,"text":"\n\ncommitment: string\n\nThe cryptographic commitment generated by the Klaster node, guaranteeing\nthe execution of the interchain transaction.\n","title":"commitment","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties"]},"220":{"href":"/reference#defined-in-51","html":"\n

types.ts:183

\n","isPage":false,"text":"\ntypes.ts:183\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties","commitment"]},"221":{"href":"/reference#itxhash-1","html":"\n
\n

itxHash: string

\n
\n

The hash of the Klaster Interchain Transaction (iTx). Serves as a unique identifier\nfor the interchain transaction.

\n","isPage":false,"text":"\n\nitxHash: string\n\nThe hash of the Klaster Interchain Transaction (iTx). Serves as a unique identifier\nfor the interchain transaction.\n","title":"itxHash","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties"]},"222":{"href":"/reference#defined-in-52","html":"\n

types.ts:181

\n","isPage":false,"text":"\ntypes.ts:181\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties","itxHash"]},"223":{"href":"/reference#node","html":"\n
\n

node: `0x${string}`

\n
\n

The address of the Klaster node that is responsible for executing the interchain transaction.

\n","isPage":false,"text":"\n\nnode: `0x${string}`\n\nThe address of the Klaster node that is responsible for executing the interchain transaction.\n","title":"node","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties"]},"224":{"href":"/reference#defined-in-53","html":"\n

types.ts:182

\n","isPage":false,"text":"\ntypes.ts:182\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties","node"]},"225":{"href":"/reference#paymentinfo-1","html":"\n
\n

paymentInfo: ApiPaymentData & object

\n
\n

Contains information about the payment for the transaction, including the token\nused and the actual amount quoted for the execution.

\n","isPage":false,"text":"\n\npaymentInfo: ApiPaymentData & object\n\nContains information about the payment for the transaction, including the token\nused and the actual amount quoted for the execution.\n","title":"paymentInfo","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties"]},"226":{"href":"/reference#type-declaration","html":"\n","isPage":false,"text":"\n","title":"Type declaration","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties","paymentInfo"]},"227":{"href":"/reference#tokenamount","html":"\n
\n

tokenAmount: string

\n
\n","isPage":false,"text":"\n\ntokenAmount: string\n\n","title":"tokenAmount","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties","paymentInfo"]},"228":{"href":"/reference#tokenvalue","html":"\n
\n

tokenValue: string

\n
\n","isPage":false,"text":"\n\ntokenValue: string\n\n","title":"tokenValue","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties","paymentInfo"]},"229":{"href":"/reference#defined-in-54","html":"\n

types.ts:184

\n","isPage":false,"text":"\ntypes.ts:184\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties","paymentInfo"]},"230":{"href":"/reference#userops","html":"\n
\n

userOps: ExecutedAction[]

\n
\n

An array of ExecutedAction objects, each representing the status and\ndetails of a user operation executed as part of this interchain transaction across different chains.

\n","isPage":false,"text":"\n\nuserOps: ExecutedAction[]\n\nAn array of ExecutedAction objects, each representing the status and\ndetails of a user operation executed as part of this interchain transaction across different chains.\n","title":"userOps","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties"]},"231":{"href":"/reference#defined-in-55","html":"\n

types.ts:188

\n
\n","isPage":false,"text":"\ntypes.ts:188\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","ItxStatusResponse","Properties","userOps"]},"232":{"href":"/reference#multichainaccount","html":"\n

Represents a Klaster Multichain Smart Contract account model.\nThis interface defines the essential properties of a smart contract account\nthat can operate across multiple blockchain networks.

\n

MultichainAccount

\n","isPage":false,"text":"\nRepresents a Klaster Multichain Smart Contract account model.\nThis interface defines the essential properties of a smart contract account\nthat can operate across multiple blockchain networks.\nMultichainAccount\n","title":"MultichainAccount","titles":["klaster-sdk","Interfaces"]},"233":{"href":"/reference#properties-9","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","MultichainAccount"]},"234":{"href":"/reference#address","html":"\n
\n

address: `0x${string}`

\n
\n

The unique address of the multichain smart contract account.\nThis address is (mostly) consistent across all supported blockchain networks, allowing\nfor unified identity and seamless cross-chain operations. Some exceptions to the generated\naddress being consistent are blockchains in the zkSync ecosystem & any other ecosystem where\nthe CREATE2 opcode doesn't behave the same way as on Ethereum mainnet.

\n","isPage":false,"text":"\n\naddress: `0x${string}`\n\nThe unique address of the multichain smart contract account.\nThis address is (mostly) consistent across all supported blockchain networks, allowing\nfor unified identity and seamless cross-chain operations. Some exceptions to the generated\naddress being consistent are blockchains in the zkSync ecosystem & any other ecosystem where\nthe CREATE2 opcode doesn't behave the same way as on Ethereum mainnet.\n","title":"address","titles":["klaster-sdk","Interfaces","MultichainAccount","Properties"]},"235":{"href":"/reference#defined-in-56","html":"\n

types.ts:258

\n","isPage":false,"text":"\ntypes.ts:258\n","title":"Defined in","titles":["klaster-sdk","Interfaces","MultichainAccount","Properties","address"]},"236":{"href":"/reference#salt-2","html":"\n
\n

salt: string

\n
\n

A unique value used in the account creation process.\nThe salt, combined with other parameters (such as the owner's address),\nensures that the account address is unique and deterministically generated\nacross all supported chains.

\n","isPage":false,"text":"\n\nsalt: string\n\nA unique value used in the account creation process.\nThe salt, combined with other parameters (such as the owner's address),\nensures that the account address is unique and deterministically generated\nacross all supported chains.\n","title":"salt","titles":["klaster-sdk","Interfaces","MultichainAccount","Properties"]},"237":{"href":"/reference#defined-in-57","html":"\n

types.ts:259

\n
\n","isPage":false,"text":"\ntypes.ts:259\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","MultichainAccount","Properties","salt"]},"238":{"href":"/reference#quoteresponse","html":"\n

Represents the model returned by the Klaster Node API when a user requests a quote for an interchain transaction.\nThis interface provides detailed information about the quote, including the transaction hash,\nnode commitment, and the user operations to be executed across multiple chains.

\n

QuoteResponse

\n","isPage":false,"text":"\nRepresents the model returned by the Klaster Node API when a user requests a quote for an interchain transaction.\nThis interface provides detailed information about the quote, including the transaction hash,\nnode commitment, and the user operations to be executed across multiple chains.\nQuoteResponse\n","title":"QuoteResponse","titles":["klaster-sdk","Interfaces"]},"239":{"href":"/reference#properties-10","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","QuoteResponse"]},"240":{"href":"/reference#commitment-1","html":"\n
\n

commitment: string

\n
\n

The cryptographic commitment generated by the Klaster node.\nThis commitment guarantees the execution of the quoted interchain transaction.

\n","isPage":false,"text":"\n\ncommitment: string\n\nThe cryptographic commitment generated by the Klaster node.\nThis commitment guarantees the execution of the quoted interchain transaction.\n","title":"commitment","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties"]},"241":{"href":"/reference#defined-in-58","html":"\n

types.ts:138

\n","isPage":false,"text":"\ntypes.ts:138\n","title":"Defined in","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties","commitment"]},"242":{"href":"/reference#itxhash-2","html":"\n
\n

itxHash: `0x${string}`

\n
\n

The hash of the Klaster Interchain Transaction. This serves\nas a unique identifier for the entire interchain operation.

\n","isPage":false,"text":"\n\nitxHash: `0x${string}`\n\nThe hash of the Klaster Interchain Transaction. This serves\nas a unique identifier for the entire interchain operation.\n","title":"itxHash","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties"]},"243":{"href":"/reference#defined-in-59","html":"\n

types.ts:137

\n","isPage":false,"text":"\ntypes.ts:137\n","title":"Defined in","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties","itxHash"]},"244":{"href":"/reference#node-1","html":"\n
\n

node: `0x${string}`

\n
\n

The address of the Klaster node that has returned the quote and\ncommitted itself to executing the interchain transaction.

\n","isPage":false,"text":"\n\nnode: `0x${string}`\n\nThe address of the Klaster node that has returned the quote and\ncommitted itself to executing the interchain transaction.\n","title":"node","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties"]},"245":{"href":"/reference#defined-in-60","html":"\n

types.ts:139

\n","isPage":false,"text":"\ntypes.ts:139\n","title":"Defined in","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties","node"]},"246":{"href":"/reference#paymentinfo-2","html":"\n
\n

paymentInfo: ApiPaymentData

\n
\n

Contains information about the payment for the\ntransaction, including the token to be used and the chain on which the payment will occur.

\n","isPage":false,"text":"\n\npaymentInfo: ApiPaymentData\n\nContains information about the payment for the\ntransaction, including the token to be used and the chain on which the payment will occur.\n","title":"paymentInfo","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties"]},"247":{"href":"/reference#defined-in-61","html":"\n

types.ts:140

\n","isPage":false,"text":"\ntypes.ts:140\n","title":"Defined in","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties","paymentInfo"]},"248":{"href":"/reference#userops-1","html":"\n
\n

userOps: ERC4337UserOp[]

\n
\n

An array of all UserOperations across all chains that\nthe node has committed to executing as part of this interchain transaction. Each UserOp\nrepresents a specific action on a particular blockchain within the interchain transaction.

\n","isPage":false,"text":"\n\nuserOps: ERC4337UserOp[]\n\nAn array of all UserOperations across all chains that\nthe node has committed to executing as part of this interchain transaction. Each UserOp\nrepresents a specific action on a particular blockchain within the interchain transaction.\n","title":"userOps","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties"]},"249":{"href":"/reference#defined-in-62","html":"\n

types.ts:141

\n
\n","isPage":false,"text":"\ntypes.ts:141\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","QuoteResponse","Properties","userOps"]},"250":{"href":"/reference#rawtransaction","html":"\n

Represents a raw transaction as expected by the execute and batchExecute functions\nof smart contract wallets compliant with the ERC-4337 standard.\nThis interface defines the structure for a single transaction to be executed\nas part of a user operation in account abstraction.

\n

RawTransaction

\n","isPage":false,"text":"\nRepresents a raw transaction as expected by the execute and batchExecute functions\nof smart contract wallets compliant with the ERC-4337 standard.\nThis interface defines the structure for a single transaction to be executed\nas part of a user operation in account abstraction.\nRawTransaction\n","title":"RawTransaction","titles":["klaster-sdk","Interfaces"]},"251":{"href":"/reference#properties-11","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","RawTransaction"]},"252":{"href":"/reference#data","html":"\n
\n

data: string

\n
\n

The input data of the transaction, typically the encoded function\ncall for contract interactions. For simple value transfers, this can be an empty string.

\n","isPage":false,"text":"\n\ndata: string\n\nThe input data of the transaction, typically the encoded function\ncall for contract interactions. For simple value transfers, this can be an empty string.\n","title":"data","titles":["klaster-sdk","Interfaces","RawTransaction","Properties"]},"253":{"href":"/reference#defined-in-63","html":"\n

types.ts:236

\n","isPage":false,"text":"\ntypes.ts:236\n","title":"Defined in","titles":["klaster-sdk","Interfaces","RawTransaction","Properties","data"]},"254":{"href":"/reference#gaslimit","html":"\n
\n

gasLimit: bigint

\n
\n

The maximum amount of gas that can be used for executing\nthis transaction, represented as a bigint. This helps prevent unexpectedly high gas costs.

\n","isPage":false,"text":"\n\ngasLimit: bigint\n\nThe maximum amount of gas that can be used for executing\nthis transaction, represented as a bigint. This helps prevent unexpectedly high gas costs.\n","title":"gasLimit","titles":["klaster-sdk","Interfaces","RawTransaction","Properties"]},"255":{"href":"/reference#defined-in-64","html":"\n

types.ts:237

\n","isPage":false,"text":"\ntypes.ts:237\n","title":"Defined in","titles":["klaster-sdk","Interfaces","RawTransaction","Properties","gasLimit"]},"256":{"href":"/reference#to","html":"\n
\n

to: `0x${string}`

\n
\n

The recipient address of the transaction. This can be a contract\naddress for contract interactions or an EOA for simple transfers.

\n","isPage":false,"text":"\n\nto: `0x${string}`\n\nThe recipient address of the transaction. This can be a contract\naddress for contract interactions or an EOA for simple transfers.\n","title":"to","titles":["klaster-sdk","Interfaces","RawTransaction","Properties"]},"257":{"href":"/reference#defined-in-65","html":"\n

types.ts:234

\n","isPage":false,"text":"\ntypes.ts:234\n","title":"Defined in","titles":["klaster-sdk","Interfaces","RawTransaction","Properties","to"]},"258":{"href":"/reference#value","html":"\n
\n

value: bigint

\n
\n

The amount of native currency (e.g., ETH) to be sent with the\ntransaction, represented as a bigint. Use 0n for transactions that don't transfer value.

\n","isPage":false,"text":"\n\nvalue: bigint\n\nThe amount of native currency (e.g., ETH) to be sent with the\ntransaction, represented as a bigint. Use 0n for transactions that don't transfer value.\n","title":"value","titles":["klaster-sdk","Interfaces","RawTransaction","Properties"]},"259":{"href":"/reference#defined-in-66","html":"\n

types.ts:235

\n
\n","isPage":false,"text":"\ntypes.ts:235\n\n","title":"Defined in","titles":["klaster-sdk","Interfaces","RawTransaction","Properties","value"]},"260":{"href":"/reference#supportedpaymenttokeninfo","html":"\n","isPage":false,"text":"\n","title":"SupportedPaymentTokenInfo","titles":["klaster-sdk","Interfaces"]},"261":{"href":"/reference#properties-12","html":"\n","isPage":false,"text":"\n","title":"Properties","titles":["klaster-sdk","Interfaces","SupportedPaymentTokenInfo"]},"262":{"href":"/reference#node-2","html":"\n
\n

node: `0x${string}`

\n
\n","isPage":false,"text":"\n\nnode: `0x${string}`\n\n","title":"node","titles":["klaster-sdk","Interfaces","SupportedPaymentTokenInfo","Properties"]},"263":{"href":"/reference#defined-in-67","html":"\n

types.ts:267

\n","isPage":false,"text":"\ntypes.ts:267\n","title":"Defined in","titles":["klaster-sdk","Interfaces","SupportedPaymentTokenInfo","Properties","node"]},"264":{"href":"/reference#supported_chains","html":"\n
\n

supported_chains: object[]

\n
\n","isPage":false,"text":"\n\nsupported_chains: object[]\n\n","title":"supported_chains","titles":["klaster-sdk","Interfaces","SupportedPaymentTokenInfo","Properties"]},"265":{"href":"/reference#defined-in-68","html":"\n

types.ts:268

\n","isPage":false,"text":"\ntypes.ts:268\n","title":"Defined in","titles":["klaster-sdk","Interfaces","SupportedPaymentTokenInfo","Properties","supported_chains"]},"266":{"href":"/reference#supported_gas_tokens","html":"\n
\n

supported_gas_tokens: object[]

\n
\n","isPage":false,"text":"\n\nsupported_gas_tokens: object[]\n\n","title":"supported_gas_tokens","titles":["klaster-sdk","Interfaces","SupportedPaymentTokenInfo","Properties"]},"267":{"href":"/reference#defined-in-69","html":"\n

types.ts:272

\n","isPage":false,"text":"\ntypes.ts:272\n","title":"Defined in","titles":["klaster-sdk","Interfaces","SupportedPaymentTokenInfo","Properties","supported_gas_tokens"]},"268":{"href":"/reference#version","html":"\n
\n

version: string

\n
\n","isPage":false,"text":"\n\nversion: string\n\n","title":"version","titles":["klaster-sdk","Interfaces","SupportedPaymentTokenInfo","Properties"]},"269":{"href":"/reference#defined-in-70","html":"\n

types.ts:266

\n","isPage":false,"text":"\ntypes.ts:266\n","title":"Defined in","titles":["klaster-sdk","Interfaces","SupportedPaymentTokenInfo","Properties","version"]},"270":{"href":"/reference#type-aliases","html":"\n","isPage":false,"text":"\n","title":"Type Aliases","titles":["klaster-sdk"]},"271":{"href":"/reference#config","html":"\n
\n

Config: object

\n
\n

Configuration options for initializing the Klaster SDK.

\n","isPage":false,"text":"\n\nConfig: object\n\nConfiguration options for initializing the Klaster SDK.\n","title":"Config","titles":["klaster-sdk","Type Aliases"]},"272":{"href":"/reference#type-declaration-1","html":"\n","isPage":false,"text":"\n","title":"Type declaration","titles":["klaster-sdk","Type Aliases","Config"]},"273":{"href":"/reference#masteraddress-1","html":"\n
\n

masterAddress: Address

\n
\n","isPage":false,"text":"\n\nmasterAddress: Address\n\n","title":"masterAddress","titles":["klaster-sdk","Type Aliases","Config","Type declaration"]},"274":{"href":"/reference#nodeurl","html":"\n
\n

nodeUrl: string

\n
\n","isPage":false,"text":"\n\nnodeUrl: string\n\n","title":"nodeUrl","titles":["klaster-sdk","Type Aliases","Config","Type declaration"]},"275":{"href":"/reference#defined-in-71","html":"\n

index.ts:34

\n
\n","isPage":false,"text":"\nindex.ts:34\n\n","title":"Defined in","titles":["klaster-sdk","Type Aliases","Config"]},"276":{"href":"/reference#paymenttokensymbol","html":"\n
\n

PaymentTokenSymbol: "ETH" | "WETH" | "LINK" | "USDC" | "wstETH" | "USDT" | "MATIC" | "WMATIC" | "stMATIC" | "AVAX" | "WAVAX" | "BNB" | "WBNB" | "axlUSDC" | "crUSDC" | "BSC-USD"

\n
\n

Represents the symbol of a payment token supported by the system.\nThese symbols correspond to various tokens\nthat can be used for payments across different blockchain networks.

\n","isPage":false,"text":"\n\nPaymentTokenSymbol: "ETH" | "WETH" | "LINK" | "USDC" | "wstETH" | "USDT" | "MATIC" | "WMATIC" | "stMATIC" | "AVAX" | "WAVAX" | "BNB" | "WBNB" | "axlUSDC" | "crUSDC" | "BSC-USD"\n\nRepresents the symbol of a payment token supported by the system.\nThese symbols correspond to various tokens\nthat can be used for payments across different blockchain networks.\n","title":"PaymentTokenSymbol","titles":["klaster-sdk","Type Aliases"]},"277":{"href":"/reference#defined-in-72","html":"\n

utils/token-resolver.service.ts:88

\n","isPage":false,"text":"\nutils/token-resolver.service.ts:88\n","title":"Defined in","titles":["klaster-sdk","Type Aliases","PaymentTokenSymbol"]},"278":{"href":"/reference#functions","html":"\n","isPage":false,"text":"\n","title":"Functions","titles":["klaster-sdk"]},"279":{"href":"/reference#buildtokenstrategy","html":"\n
\n

buildTokenStrategy(__namedParameters): Promise<TokenStrategy>

\n
\n

Builds a strategy for using tokens across multiple chains to satisfy a given amount.\nEnsures all tokens have the same number of decimals.

\n","isPage":false,"text":"\n\nbuildTokenStrategy(__namedParameters): Promise<TokenStrategy>\n\nBuilds a strategy for using tokens across multiple chains to satisfy a given amount.\nEnsures all tokens have the same number of decimals.\n","title":"buildTokenStrategy()","titles":["klaster-sdk","Functions"]},"280":{"href":"/reference#parameters-12","html":"\n

__namedParameters: BuildTokenStrategyOptions

\n","isPage":false,"text":"\n• __namedParameters: BuildTokenStrategyOptions\n","title":"Parameters","titles":["klaster-sdk","Functions","buildTokenStrategy()"]},"281":{"href":"/reference#returns-16","html":"\n

Promise<TokenStrategy>

\n

A promise that resolves to either:

\n\n","isPage":false,"text":"\nPromise<TokenStrategy>\nA promise that resolves to either:\n\nAn array of StrategyItem objects, each containing a chainId and an amount to use from that chain.\nnull if the total balance across all chains is insufficient to satisfy the requested amount.\n\n","title":"Returns","titles":["klaster-sdk","Functions","buildTokenStrategy()"]},"282":{"href":"/reference#throws-8","html":"\n

Throws an error if:

\n\n","isPage":false,"text":"\nThrows an error if:\n\nThere's an issue fetching balances or decimals\nThe token addresses are invalid\nTokens across different chains have different numbers of decimals\n\n","title":"Throws","titles":["klaster-sdk","Functions","buildTokenStrategy()"]},"283":{"href":"/reference#example-13","html":"\n
const tokenMapping = {\n  10: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85',  // USDC on Optimism\n  8453: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' // USDC on Base\n};\n \nconst chainConfigs = [\n  { chainId: 10, rpcUrl: 'https://mainnet.optimism.io' },\n  { chainId: 8453, rpcUrl: 'https://mainnet.base.org' }\n];\n \nconst strategy = await buildTokenStrategy(tokenMapping, chainConfigs, BigInt("25000"), '0x...', "ascending");\nif (strategy) {\n  console.log('Strategy found:', strategy);\n  // Possible output: [{ chainId: 8453, amount: BigInt("4000") }, { chainId: 10, amount: BigInt("21000") }]\n} else {\n  console.log('Not enough tokens available across all chains');\n}
\n","isPage":false,"text":"\nconst tokenMapping = {\n 10: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85', // USDC on Optimism\n 8453: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' // USDC on Base\n};\n \nconst chainConfigs = [\n { chainId: 10, rpcUrl: 'https://mainnet.optimism.io' },\n { chainId: 8453, rpcUrl: 'https://mainnet.base.org' }\n];\n \nconst strategy = await buildTokenStrategy(tokenMapping, chainConfigs, BigInt("25000"), '0x...', "ascending");\nif (strategy) {\n console.log('Strategy found:', strategy);\n // Possible output: [{ chainId: 8453, amount: BigInt("4000") }, { chainId: 10, amount: BigInt("21000") }]\n} else {\n console.log('Not enough tokens available across all chains');\n}\n","title":"Example","titles":["klaster-sdk","Functions","buildTokenStrategy()"]},"284":{"href":"/reference#defined-in-73","html":"\n

utils/unified-balance.service.ts:254

\n
\n","isPage":false,"text":"\nutils/unified-balance.service.ts:254\n\n","title":"Defined in","titles":["klaster-sdk","Functions","buildTokenStrategy()"]},"285":{"href":"/reference#buildtransfererc20fromeoatx","html":"\n
\n

buildTransferERC20FromEoaTx(params): RawTransaction

\n
\n

Builds a transaction to transfer ERC20 tokens from an Externally Owned Account (EOA)\nto another account, typically a smart contract account.

\n

This function constructs a RawTransaction object that, when executed, will transfer\nthe specified amount of ERC20 tokens from the sending EOA to the recipient address.\nIt's commonly used to fund smart contract accounts with tokens.

\n","isPage":false,"text":"\n\nbuildTransferERC20FromEoaTx(params): RawTransaction\n\nBuilds a transaction to transfer ERC20 tokens from an Externally Owned Account (EOA)\nto another account, typically a smart contract account.\nThis function constructs a RawTransaction object that, when executed, will transfer\nthe specified amount of ERC20 tokens from the sending EOA to the recipient address.\nIt's commonly used to fund smart contract accounts with tokens.\n","title":"buildTransferERC20FromEoaTx()","titles":["klaster-sdk","Functions"]},"286":{"href":"/reference#parameters-13","html":"\n

params

\n

The parameters for building the transaction.

\n

params.amount: bigint

\n

The amount of tokens to transfer, in the token's smallest unit (e.g., wei for ETH-like tokens).

\n

params.chainId: number

\n

The ID of the blockchain network where the transaction will be executed.

\n

params.recipient: `0x${string}`

\n

The address of the account receiving the tokens.

\n

params.token: `0x${string}`

\n

The address of the ERC20 token contract.

\n","isPage":false,"text":"\n• params\nThe parameters for building the transaction.\n• params.amount: bigint\nThe amount of tokens to transfer, in the token's smallest unit (e.g., wei for ETH-like tokens).\n• params.chainId: number\nThe ID of the blockchain network where the transaction will be executed.\n• params.recipient: `0x${string}`\nThe address of the account receiving the tokens.\n• params.token: `0x${string}`\nThe address of the ERC20 token contract.\n","title":"Parameters","titles":["klaster-sdk","Functions","buildTransferERC20FromEoaTx()"]},"287":{"href":"/reference#returns-17","html":"\n

RawTransaction

\n

A RawTransaction object ready to be signed and broadcasted.\nThe object includes:

\n\n","isPage":false,"text":"\nRawTransaction\nA RawTransaction object ready to be signed and broadcasted.\nThe object includes:\n\nto: The address of the ERC20 token contract.\nvalue: Always 0n for ERC20 transfers.\ndata: The encoded function call data for the ERC20 'transfer' function.\ngasLimit: A predefined gas limit set to 55000 (adjust if necessary for different tokens or networks).\n\n","title":"Returns","titles":["klaster-sdk","Functions","buildTransferERC20FromEoaTx()"]},"288":{"href":"/reference#example-14","html":"\n
const txParams = {\n  recipient: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e',\n  amount: BigInt(1000000), // 1 USDC if USDC has 6 decimals\n  chainId: 1,\n  token: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48' // USDC on Ethereum mainnet\n};\nconst rawTx = buildTransferERC20FromEoaTx(txParams);\n// rawTx can now be signed and sent to the network
\n","isPage":false,"text":"\nconst txParams = {\n recipient: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e',\n amount: BigInt(1000000), // 1 USDC if USDC has 6 decimals\n chainId: 1,\n token: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48' // USDC on Ethereum mainnet\n};\nconst rawTx = buildTransferERC20FromEoaTx(txParams);\n// rawTx can now be signed and sent to the network\n","title":"Example","titles":["klaster-sdk","Functions","buildTransferERC20FromEoaTx()"]},"289":{"href":"/reference#defined-in-74","html":"\n

utils/utils.service.ts:127

\n
\n","isPage":false,"text":"\nutils/utils.service.ts:127\n\n","title":"Defined in","titles":["klaster-sdk","Functions","buildTransferERC20FromEoaTx()"]},"290":{"href":"/reference#createtokenmapping","html":"\n
\n

createTokenMapping(tokens): TokenMapping

\n
\n

Creates a TokenMapping object from an array of TokenInfo objects.

\n

This function generates a mapping of chain IDs to token addresses, which is used\nin other Klaster SDK functions like getUnifiedBalance. It allows for easy\nspecification of token addresses across multiple chains.

\n","isPage":false,"text":"\n\ncreateTokenMapping(tokens): TokenMapping\n\nCreates a TokenMapping object from an array of TokenInfo objects.\nThis function generates a mapping of chain IDs to token addresses, which is used\nin other Klaster SDK functions like getUnifiedBalance. It allows for easy\nspecification of token addresses across multiple chains.\n","title":"createTokenMapping()","titles":["klaster-sdk","Functions"]},"291":{"href":"/reference#parameters-14","html":"\n

tokens: TokenInfo[]

\n

An array of TokenInfo objects. Each TokenInfo should contain:

\n\n","isPage":false,"text":"\n• tokens: TokenInfo[]\nAn array of TokenInfo objects. Each TokenInfo should contain:\n\nchain: The chain ID (number) where the token is deployed.\naddress: The address (string) of the token contract on the specified chain.\n\n","title":"Parameters","titles":["klaster-sdk","Functions","createTokenMapping()"]},"292":{"href":"/reference#returns-18","html":"\n

TokenMapping

\n

An object where keys are chain IDs and values are token addresses.

\n","isPage":false,"text":"\nTokenMapping\nAn object where keys are chain IDs and values are token addresses.\n","title":"Returns","titles":["klaster-sdk","Functions","createTokenMapping()"]},"293":{"href":"/reference#throws-9","html":"\n

Throws an error if duplicate chain IDs are provided in the input array.

\n","isPage":false,"text":"\nThrows an error if duplicate chain IDs are provided in the input array.\n","title":"Throws","titles":["klaster-sdk","Functions","createTokenMapping()"]},"294":{"href":"/reference#example-15","html":"\n
import { createTokenMapping } from 'klaster-sdk';\n \n// Create a mapping for USDC across multiple chains\nconst usdcMapping = createTokenMapping([\n  { chain: 1, address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' },  // Ethereum Mainnet\n  { chain: 10, address: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85' }, // Optimism\n  { chain: 137, address: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174' }  // Polygon\n]);\n \nconsole.log(usdcMapping);\n// Output:\n// {\n//   1: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n//   10: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85',\n//   137: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174'\n// }\n \n// This mapping can then be used in other SDK functions:\nconst balance = await getUnifiedBalance({\n  mapping: usdcMapping,\n  address: '0x...',\n  chainConfigs: [...]\n});
\n","isPage":false,"text":"\nimport { createTokenMapping } from 'klaster-sdk';\n \n// Create a mapping for USDC across multiple chains\nconst usdcMapping = createTokenMapping([\n { chain: 1, address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' }, // Ethereum Mainnet\n { chain: 10, address: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85' }, // Optimism\n { chain: 137, address: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174' } // Polygon\n]);\n \nconsole.log(usdcMapping);\n// Output:\n// {\n// 1: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n// 10: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85',\n// 137: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174'\n// }\n \n// This mapping can then be used in other SDK functions:\nconst balance = await getUnifiedBalance({\n mapping: usdcMapping,\n address: '0x...',\n chainConfigs: [...]\n});\n","title":"Example","titles":["klaster-sdk","Functions","createTokenMapping()"]},"295":{"href":"/reference#see-8","html":"\n

For using the created mapping, see the documentation for getUnifiedBalance.

\n","isPage":false,"text":"\nFor using the created mapping, see the documentation for getUnifiedBalance.\n","title":"See","titles":["klaster-sdk","Functions","createTokenMapping()"]},"296":{"href":"/reference#defined-in-75","html":"\n

utils/unified-balance.service.ts:75

\n
\n","isPage":false,"text":"\nutils/unified-balance.service.ts:75\n\n","title":"Defined in","titles":["klaster-sdk","Functions","createTokenMapping()"]},"297":{"href":"/reference#encodeaction","html":"\n
\n

encodeAction(txs, chainId): object

\n
\n

A syntactic helper for creating action objects in the Klaster SDK.

\n

This function combines an array of RawTransactions with a chain ID into an object.\nIt's used to provide a consistent coding style when working with actions in the Klaster SDK.

\n","isPage":false,"text":"\n\nencodeAction(txs, chainId): object\n\nA syntactic helper for creating action objects in the Klaster SDK.\nThis function combines an array of RawTransactions with a chain ID into an object.\nIt's used to provide a consistent coding style when working with actions in the Klaster SDK.\n","title":"encodeAction()","titles":["klaster-sdk","Functions"]},"298":{"href":"/reference#parameters-15","html":"\n

txs: RawTransaction[]

\n

An array of RawTransaction objects.

\n

chainId: number

\n

The ID of the blockchain for this action.

\n","isPage":false,"text":"\n• txs: RawTransaction[]\nAn array of RawTransaction objects.\n• chainId: number\nThe ID of the blockchain for this action.\n","title":"Parameters","titles":["klaster-sdk","Functions","encodeAction()"]},"299":{"href":"/reference#returns-19","html":"\n

object

\n

An object containing the transactions and chain ID.

\n","isPage":false,"text":"\nobject\nAn object containing the transactions and chain ID.\n","title":"Returns","titles":["klaster-sdk","Functions","encodeAction()"]},"300":{"href":"/reference#chainid-4","html":"\n
\n

chainId: number

\n
\n","isPage":false,"text":"\n\nchainId: number\n\n","title":"chainId","titles":["klaster-sdk","Functions","encodeAction()","Returns"]},"301":{"href":"/reference#txs-1","html":"\n
\n

txs: RawTransaction[]

\n
\n","isPage":false,"text":"\n\ntxs: RawTransaction[]\n\n","title":"txs","titles":["klaster-sdk","Functions","encodeAction()","Returns"]},"302":{"href":"/reference#example-16","html":"\n
const action = encodeAction([{ ... }, { ... }], 1);
\n","isPage":false,"text":"\nconst action = encodeAction([{ ... }, { ... }], 1);\n","title":"Example","titles":["klaster-sdk","Functions","encodeAction()"]},"303":{"href":"/reference#defined-in-76","html":"\n

utils/itx.service.ts:36

\n
\n","isPage":false,"text":"\nutils/itx.service.ts:36\n\n","title":"Defined in","titles":["klaster-sdk","Functions","encodeAction()"]},"304":{"href":"/reference#encodebridgingdatafromstrategy","html":"\n
\n

encodeBridgingDataFromStrategy(options): Promise<object[]>

\n
\n

Encodes bridging data from a token strategy for multiple chains.

\n

This function takes a token strategy (typically generated by buildTokenStrategy) and encodes\nthe necessary data for bridging tokens from multiple source chains to a single destination chain.\nIt uses the provided encodeSingleBridgeData function to generate the specific bridging data for each chain.

\n","isPage":false,"text":"\n\nencodeBridgingDataFromStrategy(options): Promise<object[]>\n\nEncodes bridging data from a token strategy for multiple chains.\nThis function takes a token strategy (typically generated by buildTokenStrategy) and encodes\nthe necessary data for bridging tokens from multiple source chains to a single destination chain.\nIt uses the provided encodeSingleBridgeData function to generate the specific bridging data for each chain.\n","title":"encodeBridgingDataFromStrategy()","titles":["klaster-sdk","Functions"]},"305":{"href":"/reference#parameters-16","html":"\n

options: EncodeBridgingDataFromStrategyOptions

\n

The options for encoding bridging data.

\n","isPage":false,"text":"\n• options: EncodeBridgingDataFromStrategyOptions\nThe options for encoding bridging data.\n","title":"Parameters","titles":["klaster-sdk","Functions","encodeBridgingDataFromStrategy()"]},"306":{"href":"/reference#returns-20","html":"\n

Promise<object[]>

\n

A promise that resolves to an array of RawTransaction objects,\neach containing the encoded bridging data for a single chain in the strategy.

\n","isPage":false,"text":"\nPromise<object[]>\nA promise that resolves to an array of RawTransaction objects,\neach containing the encoded bridging data for a single chain in the strategy.\n","title":"Returns","titles":["klaster-sdk","Functions","encodeBridgingDataFromStrategy()"]},"307":{"href":"/reference#throws-10","html":"\n

Throws an error if the strategy is null, indicating no feasible strategy exists,\nor if a token address is not found for a chain in the strategy.

\n","isPage":false,"text":"\nThrows an error if the strategy is null, indicating no feasible strategy exists,\nor if a token address is not found for a chain in the strategy.\n","title":"Throws","titles":["klaster-sdk","Functions","encodeBridgingDataFromStrategy()"]},"308":{"href":"/reference#example-17","html":"\n
const tokenMapping = {\n  10: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85',  // USDC on Optimism\n  8453: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' // USDC on Base\n};\n \nconst strategy = [\n  { chainId: 10, amount: BigInt("15000") },\n  { chainId: 8453, amount: BigInt("5000") }\n];\n \nconst encodeSingleBridgeData = async (\n  tokenAddress,\n  sourceChainId,\n  destinationChainId,\n  amount,\n  multichainAddress\n) => {\n  // Implement your specific bridge encoding logic here\n  // This is just a placeholder implementation\n  return {\n    to: multichainAddress,\n    value: //\n    gasLimit: //\n    data: // Data encoded by your bridge encoding implementation\n  };\n};\n \ntry {\n  const bridgingData = await encodeBridgingDataFromStrategy({\n    strategy,\n    tokenMapping,\n    destinationChainId: 1,  // Ethereum mainnet\n    multichainAddress: '0x1234567890123456789012345678901234567890',\n    encodeSingleBridgeData\n  });\n \n  console.log(bridgingData);\n  // Output will be an array of RawTransaction objects, one for each chain in the strategy\n} catch (error) {\n  console.error('Error encoding bridging data:', error.message);\n}
\n","isPage":false,"text":"\nconst tokenMapping = {\n 10: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85', // USDC on Optimism\n 8453: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' // USDC on Base\n};\n \nconst strategy = [\n { chainId: 10, amount: BigInt("15000") },\n { chainId: 8453, amount: BigInt("5000") }\n];\n \nconst encodeSingleBridgeData = async (\n tokenAddress,\n sourceChainId,\n destinationChainId,\n amount,\n multichainAddress\n) => {\n // Implement your specific bridge encoding logic here\n // This is just a placeholder implementation\n return {\n to: multichainAddress,\n value: //\n gasLimit: //\n data: // Data encoded by your bridge encoding implementation\n };\n};\n \ntry {\n const bridgingData = await encodeBridgingDataFromStrategy({\n strategy,\n tokenMapping,\n destinationChainId: 1, // Ethereum mainnet\n multichainAddress: '0x1234567890123456789012345678901234567890',\n encodeSingleBridgeData\n });\n \n console.log(bridgingData);\n // Output will be an array of RawTransaction objects, one for each chain in the strategy\n} catch (error) {\n console.error('Error encoding bridging data:', error.message);\n}\n","title":"Example","titles":["klaster-sdk","Functions","encodeBridgingDataFromStrategy()"]},"309":{"href":"/reference#defined-in-77","html":"\n

utils/unified-balance.service.ts:435

\n
\n","isPage":false,"text":"\nutils/unified-balance.service.ts:435\n\n","title":"Defined in","titles":["klaster-sdk","Functions","encodeBridgingDataFromStrategy()"]},"310":{"href":"/reference#encodeitx","html":"\n
\n

encodeItx(itx): InterchainTransaction

\n
\n

A syntactic helper for creating InterchainTransaction objects in the Klaster SDK.

\n

This function returns its input unchanged. Its purpose is to provide a consistent\ncoding style when working with the Klaster SDK, allowing for a more fluent and\nreadable way of creating InterchainTransaction objects.

\n","isPage":false,"text":"\n\nencodeItx(itx): InterchainTransaction\n\nA syntactic helper for creating InterchainTransaction objects in the Klaster SDK.\nThis function returns its input unchanged. Its purpose is to provide a consistent\ncoding style when working with the Klaster SDK, allowing for a more fluent and\nreadable way of creating InterchainTransaction objects.\n","title":"encodeItx()","titles":["klaster-sdk","Functions"]},"311":{"href":"/reference#parameters-17","html":"\n

itx: InterchainTransaction

\n

The InterchainTransaction object to be "encoded".

\n","isPage":false,"text":"\n• itx: InterchainTransaction\nThe InterchainTransaction object to be "encoded".\n","title":"Parameters","titles":["klaster-sdk","Functions","encodeItx()"]},"312":{"href":"/reference#returns-21","html":"\n

InterchainTransaction

\n

The same InterchainTransaction object, unchanged.

\n","isPage":false,"text":"\nInterchainTransaction\nThe same InterchainTransaction object, unchanged.\n","title":"Returns","titles":["klaster-sdk","Functions","encodeItx()"]},"313":{"href":"/reference#example-18","html":"\n
// Instead of:\n// const iTx: InterchainTransaction = { ... };\n// Use:\nconst iTx = encodeItx({ ... });
\n","isPage":false,"text":"\n// Instead of:\n// const iTx: InterchainTransaction = { ... };\n// Use:\nconst iTx = encodeItx({ ... });\n","title":"Example","titles":["klaster-sdk","Functions","encodeItx()"]},"314":{"href":"/reference#defined-in-78","html":"\n

utils/itx.service.ts:19

\n
\n","isPage":false,"text":"\nutils/itx.service.ts:19\n\n","title":"Defined in","titles":["klaster-sdk","Functions","encodeItx()"]},"315":{"href":"/reference#encodetx","html":"\n
\n

encodeTx(tx): RawTransaction

\n
\n

A syntactic helper for working with RawTransaction objects in the Klaster SDK.

\n

This function returns its input unchanged. Its purpose is to provide a consistent\ncoding style when working with the Klaster SDK, allowing for a more fluent way\nof handling RawTransaction objects.

\n","isPage":false,"text":"\n\nencodeTx(tx): RawTransaction\n\nA syntactic helper for working with RawTransaction objects in the Klaster SDK.\nThis function returns its input unchanged. Its purpose is to provide a consistent\ncoding style when working with the Klaster SDK, allowing for a more fluent way\nof handling RawTransaction objects.\n","title":"encodeTx()","titles":["klaster-sdk","Functions"]},"316":{"href":"/reference#parameters-18","html":"\n

tx: RawTransaction

\n

The RawTransaction object to be "encoded".

\n","isPage":false,"text":"\n• tx: RawTransaction\nThe RawTransaction object to be "encoded".\n","title":"Parameters","titles":["klaster-sdk","Functions","encodeTx()"]},"317":{"href":"/reference#returns-22","html":"\n

RawTransaction

\n

The same RawTransaction object, unchanged.

\n","isPage":false,"text":"\nRawTransaction\nThe same RawTransaction object, unchanged.\n","title":"Returns","titles":["klaster-sdk","Functions","encodeTx()"]},"318":{"href":"/reference#example-19","html":"\n
const tx = encodeTx({ ... });
\n","isPage":false,"text":"\nconst tx = encodeTx({ ... });\n","title":"Example","titles":["klaster-sdk","Functions","encodeTx()"]},"319":{"href":"/reference#defined-in-79","html":"\n

utils/itx.service.ts:53

\n
\n","isPage":false,"text":"\nutils/itx.service.ts:53\n\n","title":"Defined in","titles":["klaster-sdk","Functions","encodeTx()"]},"320":{"href":"/reference#fetchinjectedaddress","html":"\n
\n

fetchInjectedAddress(): Promise<Address | undefined>

\n
\n

Fetches the primary Ethereum address from an injected web3 wallet provider (e.g., MetaMask).

\n

This function creates a wallet client using the viem library and the injected Ethereum provider.\nIt then retrieves the list of addresses associated with the wallet and returns the first address.

\n","isPage":false,"text":"\n\nfetchInjectedAddress(): Promise<Address | undefined>\n\nFetches the primary Ethereum address from an injected web3 wallet provider (e.g., MetaMask).\nThis function creates a wallet client using the viem library and the injected Ethereum provider.\nIt then retrieves the list of addresses associated with the wallet and returns the first address.\n","title":"fetchInjectedAddress()","titles":["klaster-sdk","Functions"]},"321":{"href":"/reference#returns-23","html":"\n

Promise<Address | undefined>

\n

A promise that resolves to:

\n\n","isPage":false,"text":"\nPromise<Address | undefined>\nA promise that resolves to:\n\nThe primary Ethereum address (type Address) if available.\nundefined if no addresses are associated with the wallet or if the wallet is locked.\n\n","title":"Returns","titles":["klaster-sdk","Functions","fetchInjectedAddress()"]},"322":{"href":"/reference#async-6","html":"\n","isPage":false,"text":"\n","title":"Async","titles":["klaster-sdk","Functions","fetchInjectedAddress()"]},"323":{"href":"/reference#function","html":"\n

fetchInjectedAddress

\n","isPage":false,"text":"\nfetchInjectedAddress\n","title":"Function","titles":["klaster-sdk","Functions","fetchInjectedAddress()"]},"324":{"href":"/reference#throws-11","html":"\n

Throws an error if:

\n\n","isPage":false,"text":"\nThrows an error if:\n\nNo injected Ethereum provider is detected (i.e., window.ethereum is undefined).\nThe user denies permission to access their accounts.\nThere's an issue connecting to the Ethereum network.\n\n","title":"Throws","titles":["klaster-sdk","Functions","fetchInjectedAddress()"]},"325":{"href":"/reference#example-20","html":"\n
try {\n  const address = await fetchInjectedAddress();\n  if (address) {\n    console.log('Connected wallet address:', address);\n  } else {\n    console.log('No wallet address found or wallet is locked');\n  }\n} catch (error) {\n  console.error('Error fetching wallet address:', error);\n}
\n","isPage":false,"text":"\ntry {\n const address = await fetchInjectedAddress();\n if (address) {\n console.log('Connected wallet address:', address);\n } else {\n console.log('No wallet address found or wallet is locked');\n }\n} catch (error) {\n console.error('Error fetching wallet address:', error);\n}\n","title":"Example","titles":["klaster-sdk","Functions","fetchInjectedAddress()"]},"326":{"href":"/reference#requires","html":"\n

viem

\n","isPage":false,"text":"\nviem\n","title":"Requires","titles":["klaster-sdk","Functions","fetchInjectedAddress()"]},"327":{"href":"/reference#see-9","html":"\n

Wallet Client Documentation

\n","isPage":false,"text":"\nWallet Client Documentation\n","title":"See","titles":["klaster-sdk","Functions","fetchInjectedAddress()"]},"328":{"href":"/reference#note-5","html":"\n

This function is designed to work in a browser environment and requires\na web3-enabled browser with an injected Ethereum provider (like MetaMask).\nIt will not work in a Node.js environment or browsers without an Ethereum wallet.

\n","isPage":false,"text":"\nThis function is designed to work in a browser environment and requires\na web3-enabled browser with an injected Ethereum provider (like MetaMask).\nIt will not work in a Node.js environment or browsers without an Ethereum wallet.\n","title":"Note","titles":["klaster-sdk","Functions","fetchInjectedAddress()"]},"329":{"href":"/reference#defined-in-80","html":"\n

utils/utils.service.ts:47

\n
\n","isPage":false,"text":"\nutils/utils.service.ts:47\n\n","title":"Defined in","titles":["klaster-sdk","Functions","fetchInjectedAddress()"]},"330":{"href":"/reference#getunifiedbalance","html":"\n
\n

getUnifiedBalance(params): Promise<UnifiedBalanceResult>

\n
\n

Fetches and aggregates token balances across multiple blockchains for a given address.

\n","isPage":false,"text":"\n\ngetUnifiedBalance(params): Promise<UnifiedBalanceResult>\n\nFetches and aggregates token balances across multiple blockchains for a given address.\n","title":"getUnifiedBalance()","titles":["klaster-sdk","Functions"]},"331":{"href":"/reference#parameters-19","html":"\n

params

\n

The parameters for the function.

\n

params.address: `0x${string}`

\n

The address for which to fetch the token balances.

\n

params.chainConfigs: ChainConfig[]

\n

An array of objects, each containing a chainId and an rpcUrl.

\n

params.mapping: TokenMapping

\n

An object mapping chain IDs to token addresses.

\n","isPage":false,"text":"\n• params\nThe parameters for the function.\n• params.address: `0x${string}`\nThe address for which to fetch the token balances.\n• params.chainConfigs: ChainConfig[]\nAn array of objects, each containing a chainId and an rpcUrl.\n• params.mapping: TokenMapping\nAn object mapping chain IDs to token addresses.\n","title":"Parameters","titles":["klaster-sdk","Functions","getUnifiedBalance()"]},"332":{"href":"/reference#returns-24","html":"\n

Promise<UnifiedBalanceResult>

\n

A promise that resolves to an object containing:

\n\n","isPage":false,"text":"\nPromise<UnifiedBalanceResult>\nA promise that resolves to an object containing:\n\namount: The total balance across all chains as a bigint.\ndecimals: The number of decimals for the token.\n\n","title":"Returns","titles":["klaster-sdk","Functions","getUnifiedBalance()"]},"333":{"href":"/reference#throws-12","html":"\n

Throws an error in the following cases:

\n\n","isPage":false,"text":"\nThrows an error in the following cases:\n\nIf tokens across different chains have different numbers of decimals.\nIf no valid tokens are found in the mapping.\n\n","title":"Throws","titles":["klaster-sdk","Functions","getUnifiedBalance()"]},"334":{"href":"/reference#example-21","html":"\n
import { createTokenMapping, getUnifiedBalance } from 'klaster-sdk';\n \n// Create a token mapping for USDC\nconst usdcMapping = createTokenMapping([\n  { chain: 1, address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' },\n  { chain: 10, address: '0x0b2c639c533813f4aa9d7837caf62653d097ff85' }\n]);\n \n// Fetch the unified balance\ntry {\n  const result = await getUnifiedBalance({\n    mapping: usdcMapping,\n    address: '0x063B3184a74C510b5c6f5bBd122CC19689E0c706',\n    chainConfigs: [\n      { chainId: 1, rpcUrl: 'https://eth-mainnet.g.alchemy.com/v2/your-api-key' },\n      { chainId: 10, rpcUrl: 'https://opt-mainnet.g.alchemy.com/v2/your-api-key' }\n    ]\n  });\n  console.log(`Unified USDC Balance: ${result.amount} (${result.decimals} decimals)`);\n} catch (error) {\n  console.error('Error fetching unified balance:', error.message);\n}
\n","isPage":false,"text":"\nimport { createTokenMapping, getUnifiedBalance } from 'klaster-sdk';\n \n// Create a token mapping for USDC\nconst usdcMapping = createTokenMapping([\n { chain: 1, address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' },\n { chain: 10, address: '0x0b2c639c533813f4aa9d7837caf62653d097ff85' }\n]);\n \n// Fetch the unified balance\ntry {\n const result = await getUnifiedBalance({\n mapping: usdcMapping,\n address: '0x063B3184a74C510b5c6f5bBd122CC19689E0c706',\n chainConfigs: [\n { chainId: 1, rpcUrl: 'https://eth-mainnet.g.alchemy.com/v2/your-api-key' },\n { chainId: 10, rpcUrl: 'https://opt-mainnet.g.alchemy.com/v2/your-api-key' }\n ]\n });\n console.log(`Unified USDC Balance: ${result.amount} (${result.decimals} decimals)`);\n} catch (error) {\n console.error('Error fetching unified balance:', error.message);\n}\n","title":"Example","titles":["klaster-sdk","Functions","getUnifiedBalance()"]},"335":{"href":"/reference#defined-in-81","html":"\n

utils/unified-balance.service.ts:130

\n
\n","isPage":false,"text":"\nutils/unified-balance.service.ts:130\n\n","title":"Defined in","titles":["klaster-sdk","Functions","getUnifiedBalance()"]},"336":{"href":"/reference#initklaster","html":"\n
\n

initKlaster(config): KlasterSDK

\n
\n

Initializes the Klaster SDK with the provided configuration.

\n

This function serves as the entry point for using the Klaster SDK. It creates and\nreturns a new instance of the KlasterSDK class, configured with the provided options.

\n","isPage":false,"text":"\n\ninitKlaster(config): KlasterSDK\n\nInitializes the Klaster SDK with the provided configuration.\nThis function serves as the entry point for using the Klaster SDK. It creates and\nreturns a new instance of the KlasterSDK class, configured with the provided options.\n","title":"initKlaster()","titles":["klaster-sdk","Functions"]},"337":{"href":"/reference#parameters-20","html":"\n

config: Config

\n

The configuration options for the Klaster SDK.

\n","isPage":false,"text":"\n• config: Config\nThe configuration options for the Klaster SDK.\n","title":"Parameters","titles":["klaster-sdk","Functions","initKlaster()"]},"338":{"href":"/reference#returns-25","html":"\n

KlasterSDK

\n

A new instance of the KlasterSDK, ready for use.

\n","isPage":false,"text":"\nKlasterSDK\nA new instance of the KlasterSDK, ready for use.\n","title":"Returns","titles":["klaster-sdk","Functions","initKlaster()"]},"339":{"href":"/reference#example-22","html":"\n
import { initKlaster, Config } from 'klaster-sdk';\n \nconst config: Config = {\n  nodeUrl: 'https://klaster-node.example.com',\n  masterAddress: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e'\n};\n \nconst klasterSDK = initKlaster(config);\n \n// Now you can use klasterSDK to interact with the Klaster ecosystem
\n","isPage":false,"text":"\nimport { initKlaster, Config } from 'klaster-sdk';\n \nconst config: Config = {\n nodeUrl: 'https://klaster-node.example.com',\n masterAddress: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e'\n};\n \nconst klasterSDK = initKlaster(config);\n \n// Now you can use klasterSDK to interact with the Klaster ecosystem\n","title":"Example","titles":["klaster-sdk","Functions","initKlaster()"]},"340":{"href":"/reference#throws-13","html":"\n

Throws an error if the provided configuration is invalid or if\nthe SDK fails to initialize for any reason.

\n","isPage":false,"text":"\nThrows an error if the provided configuration is invalid or if\nthe SDK fails to initialize for any reason.\n","title":"Throws","titles":["klaster-sdk","Functions","initKlaster()"]},"341":{"href":"/reference#defined-in-82","html":"\n

index.ts:62

\n
\n","isPage":false,"text":"\nindex.ts:62\n\n","title":"Defined in","titles":["klaster-sdk","Functions","initKlaster()"]},"342":{"href":"/reference#resolvetoken","html":"\n
\n

resolveToken(symbol, chainId): TokenInfo

\n
\n

Resolves a payment token based on its symbol and the chain ID.

\n","isPage":false,"text":"\n\nresolveToken(symbol, chainId): TokenInfo\n\nResolves a payment token based on its symbol and the chain ID.\n","title":"resolveToken()","titles":["klaster-sdk","Functions"]},"343":{"href":"/reference#parameters-21","html":"\n

symbol: PaymentTokenSymbol

\n

The symbol of the payment token to resolve.

\n

chainId: number

\n

The ID of the blockchain network.

\n","isPage":false,"text":"\n• symbol: PaymentTokenSymbol\nThe symbol of the payment token to resolve.\n• chainId: number\nThe ID of the blockchain network.\n","title":"Parameters","titles":["klaster-sdk","Functions","resolveToken()"]},"344":{"href":"/reference#returns-26","html":"\n

TokenInfo

\n

A promise that resolves to the token information.

\n","isPage":false,"text":"\nTokenInfo\nA promise that resolves to the token information.\n","title":"Returns","titles":["klaster-sdk","Functions","resolveToken()"]},"345":{"href":"/reference#throws-14","html":"\n

If the token cannot be resolved for the given chain ID.

\n","isPage":false,"text":"\nIf the token cannot be resolved for the given chain ID.\n","title":"Throws","titles":["klaster-sdk","Functions","resolveToken()"]},"346":{"href":"/reference#defined-in-83","html":"\n

utils/token-resolver.service.ts:114

\n
\n","isPage":false,"text":"\nutils/token-resolver.service.ts:114\n\n","title":"Defined in","titles":["klaster-sdk","Functions","resolveToken()"]},"347":{"href":"/reference#signwithinjectedwallet","html":"\n
\n

signWithInjectedWallet(address, message): Promise<string>

\n
\n

Signs a message using the injected Ethereum provider (e.g., MetaMask) in the browser.

\n

This function uses the personal_sign method to create a signature with the user's\nEthereum account. It requires a web3-enabled browser with an injected Ethereum provider.

\n","isPage":false,"text":"\n\nsignWithInjectedWallet(address, message): Promise<string>\n\nSigns a message using the injected Ethereum provider (e.g., MetaMask) in the browser.\nThis function uses the personal_sign method to create a signature with the user's\nEthereum account. It requires a web3-enabled browser with an injected Ethereum provider.\n","title":"signWithInjectedWallet()","titles":["klaster-sdk","Functions"]},"348":{"href":"/reference#parameters-22","html":"\n

address: `0x${string}`

\n

The Ethereum address to sign the message with. This should\nbe an address that the user controls in their injected wallet.

\n

message: string

\n

The message to be signed. This will be converted to UTF-8\nand prefixed with "\\x19Ethereum Signed Message:\\n" before signing.

\n","isPage":false,"text":"\n• address: `0x${string}`\nThe Ethereum address to sign the message with. This should\nbe an address that the user controls in their injected wallet.\n• message: string\nThe message to be signed. This will be converted to UTF-8\nand prefixed with "\\x19Ethereum Signed Message:\\n" before signing.\n","title":"Parameters","titles":["klaster-sdk","Functions","signWithInjectedWallet()"]},"349":{"href":"/reference#returns-27","html":"\n

Promise<string>

\n

A promise that resolves to the signature string.\nThe signature is in hexadecimal format.

\n","isPage":false,"text":"\nPromise<string>\nA promise that resolves to the signature string.\nThe signature is in hexadecimal format.\n","title":"Returns","titles":["klaster-sdk","Functions","signWithInjectedWallet()"]},"350":{"href":"/reference#throws-15","html":"\n

Throws an error if the injected Ethereum provider is not available,\nif the user rejects the signature request, or if there's any other\nissue during the signing process.

\n","isPage":false,"text":"\nThrows an error if the injected Ethereum provider is not available,\nif the user rejects the signature request, or if there's any other\nissue during the signing process.\n","title":"Throws","titles":["klaster-sdk","Functions","signWithInjectedWallet()"]},"351":{"href":"/reference#example-23","html":"\n
try {\n  const address = '0x742d35Cc6634C0532925a3b844Bc454e4438f44e';\n  const message = 'Hello, Ethereum!';\n  const signature = await signWithInjectedWallet(address, message);\n  console.log('Signature:', signature);\n} catch (error) {\n  console.error('Error signing message:', error);\n}
\n","isPage":false,"text":"\ntry {\n const address = '0x742d35Cc6634C0532925a3b844Bc454e4438f44e';\n const message = 'Hello, Ethereum!';\n const signature = await signWithInjectedWallet(address, message);\n console.log('Signature:', signature);\n} catch (error) {\n console.error('Error signing message:', error);\n}\n","title":"Example","titles":["klaster-sdk","Functions","signWithInjectedWallet()"]},"352":{"href":"/reference#note-6","html":"\n

This function is designed to work in a browser environment and requires\na web3-enabled browser with an injected Ethereum provider (like MetaMask).\nIt will not work in a Node.js environment or browsers without an Ethereum wallet.

\n","isPage":false,"text":"\nThis function is designed to work in a browser environment and requires\na web3-enabled browser with an injected Ethereum provider (like MetaMask).\nIt will not work in a Node.js environment or browsers without an Ethereum wallet.\n","title":"Note","titles":["klaster-sdk","Functions","signWithInjectedWallet()"]},"353":{"href":"/reference#defined-in-84","html":"\n

utils/utils.service.ts:86

","isPage":false,"text":"\nutils/utils.service.ts:86","title":"Defined in","titles":["klaster-sdk","Functions","signWithInjectedWallet()"]},"354":{"href":"/security-audit#klaster-security-audits","html":"\n

Pashov\nhttps://github.com/pashov/audits/blob/master/team/pdf/Klaster-security-review.pdf

","isPage":true,"text":"\nPashov\nhttps://github.com/pashov/audits/blob/master/team/pdf/Klaster-security-review.pdf","title":"Klaster Security Audits","titles":[]},"355":{"href":"/supported-networks-tokens#supported-gas-tokens","html":"\n
Chain NameChain IDSupported TokensToken Address
Ethereum1ETH0x0000000000000000000000000000000000000000
Wrapped Ether (WETH)0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
ChainLink Token (LINK)0x514910771af9ca656af840dff83e8264ecf986ca
USD Coin (USDC)0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Wrapped liquid staked Ether 2.0 (wstETH)0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0
Tether USD (USDT)0xdac17f958d2ee523a2206206994597c13d831ec7
Optimism10ETH0x0000000000000000000000000000000000000000
Wrapped Ether (WETH)0x4200000000000000000000000000000000000006
ChainLink Token (LINK)0x350a791Bfc2C21F9Ed5d10980Dad2e2638ffa7f6
USD Coin (USDC)0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85
USD Coin (Bridged) (USDC)0x7F5c764cBc14f9669B88837ca1490cCa17c31607
Wrapped liquid staked Ether 2.0 (wstETH)0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb
Tether USD (USDT)0x94b008aA00579c1307B0EF2c499aD98a8ce58e58
Sepolia11155111ETH0x0000000000000000000000000000000000000000
ChainLink Token (LINK)0x779877A7B0D9E8603169DdbD7836e478b4624789
Polygon137MATIC0x0000000000000000000000000000000000000000
Wrapped Matic (WMATIC)0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270
ChainLink Token (LINK)0xb0897686c545045aFc77CF20eC7A532E3120E0F1
USDC0x3c499c542cef5e3811e1192ce70d8cc03d5c3359
USDC (Bridged)0x2791bca1f2de4661ed88a30c99a7a9449aa84174
Staked Matic (stMATIC)0x3a58a54c066fdc0f2d55fc9c89f0415c92ebf3c4
Tether USD (USDT)0xc2132D05D31c914a87C6611C10748AEb04B58e8F
Arbitrum One42161ETH0x0000000000000000000000000000000000000000
Wrapped Ether (WETH)0x82aF49447D8a07e3bd95BD0d56f35241523fBab1
ChainLink Token (LINK)0xf97f4df75117a78c1A5a0DBb814Af92458539FB4
USD Coin (USDC)0xaf88d065e77c8cC2239327C5EDb3A432268e5831
Wrapped liquid staked Ether 2.0 (wstETH)0x5979D7b546E38E414F7E9822514be443A4800529
Tether USD (USDT)0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9
Arbitrum Sepolia421614ETH0x0000000000000000000000000000000000000000
ChainLink Token (LINK)0xb1D4538B4571d411F07960EF2838Ce337FE1E80E
Avalanche C-Chain43114AVAX0x0000000000000000000000000000000000000000
Wrapped AVAX (WAVAX)0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7
ChainLink Token (LINK)0x5947BB275c521040051D82396192181b413227A3
USD Coin (USDC)0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E
USDC (Bridged)0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664
Tether USD (USDT)0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7
USDT (Bridged)0xc7198437980c041c805A1EDcbA50c1Ce5db95118
Scroll534352ETH0x0000000000000000000000000000000000000000
Wrapped Ether (WETH)0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7
ChainLink Token (LINK)0x548C6944cba02B9D1C0570102c89de64D258d3Ac
USD Coin (USDC)0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4
Tether USD (USDT)0xf55BEC9cafDbE8730f096Aa55dad6D22d44099Df
Wrapped liquid staked Ether 2.0 (wstETH)0xf610A9dfB7C89644979b4A0f27063E9e7d7Cda32
BNB Smart Chain56BNB0x0000000000000000000000000000000000000000
Wrapped BNB (WBNB)0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c
USDC (Binance-Peg)0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d
USDC (Axelar Wrapped) (axlUSDC)0x4268B8F0B87b6Eae5d897996E6b845ddbD99Adf3
USDC (cream.finace) (crUSDC)0xD83C88DB3A6cA4a32FFf1603b0f7DDce01F5f727
BSC-USD0x55d398326f99059fF775485246999027B3197955
Base8453ETH0x0000000000000000000000000000000000000000
Wrapped Ether (WETH)0x4200000000000000000000000000000000000006
ChainLink Token (LINK)0x88Fb150BDc53A65fe94Dea0c9BA0a6dAf8C6e196
USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
USDC (Axelar Wrapped) (axlUSDC)0xEB466342C4d449BC9f53A865D5Cb90586f405215
Wrapped liquid staked Ether 2.0 (wstETH)0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452
","isPage":true,"text":"\nChain NameChain IDSupported TokensToken AddressEthereum1ETH0x0000000000000000000000000000000000000000Wrapped Ether (WETH)0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2ChainLink Token (LINK)0x514910771af9ca656af840dff83e8264ecf986caUSD Coin (USDC)0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48Wrapped liquid staked Ether 2.0 (wstETH)0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0Tether USD (USDT)0xdac17f958d2ee523a2206206994597c13d831ec7Optimism10ETH0x0000000000000000000000000000000000000000Wrapped Ether (WETH)0x4200000000000000000000000000000000000006ChainLink Token (LINK)0x350a791Bfc2C21F9Ed5d10980Dad2e2638ffa7f6USD Coin (USDC)0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85USD Coin (Bridged) (USDC)0x7F5c764cBc14f9669B88837ca1490cCa17c31607Wrapped liquid staked Ether 2.0 (wstETH)0x1F32b1c2345538c0c6f582fCB022739c4A194EbbTether USD (USDT)0x94b008aA00579c1307B0EF2c499aD98a8ce58e58Sepolia11155111ETH0x0000000000000000000000000000000000000000ChainLink Token (LINK)0x779877A7B0D9E8603169DdbD7836e478b4624789Polygon137MATIC0x0000000000000000000000000000000000000000Wrapped Matic (WMATIC)0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270ChainLink Token (LINK)0xb0897686c545045aFc77CF20eC7A532E3120E0F1USDC0x3c499c542cef5e3811e1192ce70d8cc03d5c3359USDC (Bridged)0x2791bca1f2de4661ed88a30c99a7a9449aa84174Staked Matic (stMATIC)0x3a58a54c066fdc0f2d55fc9c89f0415c92ebf3c4Tether USD (USDT)0xc2132D05D31c914a87C6611C10748AEb04B58e8FArbitrum One42161ETH0x0000000000000000000000000000000000000000Wrapped Ether (WETH)0x82aF49447D8a07e3bd95BD0d56f35241523fBab1ChainLink Token (LINK)0xf97f4df75117a78c1A5a0DBb814Af92458539FB4USD Coin (USDC)0xaf88d065e77c8cC2239327C5EDb3A432268e5831Wrapped liquid staked Ether 2.0 (wstETH)0x5979D7b546E38E414F7E9822514be443A4800529Tether USD (USDT)0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9Arbitrum Sepolia421614ETH0x0000000000000000000000000000000000000000ChainLink Token (LINK)0xb1D4538B4571d411F07960EF2838Ce337FE1E80EAvalanche C-Chain43114AVAX0x0000000000000000000000000000000000000000Wrapped AVAX (WAVAX)0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7ChainLink Token (LINK)0x5947BB275c521040051D82396192181b413227A3USD Coin (USDC)0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6EUSDC (Bridged)0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664Tether USD (USDT)0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7USDT (Bridged)0xc7198437980c041c805A1EDcbA50c1Ce5db95118Scroll534352ETH0x0000000000000000000000000000000000000000Wrapped Ether (WETH)0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7ChainLink Token (LINK)0x548C6944cba02B9D1C0570102c89de64D258d3AcUSD Coin (USDC)0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4Tether USD (USDT)0xf55BEC9cafDbE8730f096Aa55dad6D22d44099DfWrapped liquid staked Ether 2.0 (wstETH)0xf610A9dfB7C89644979b4A0f27063E9e7d7Cda32BNB Smart Chain56BNB0x0000000000000000000000000000000000000000Wrapped BNB (WBNB)0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095cUSDC (Binance-Peg)0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580dUSDC (Axelar Wrapped) (axlUSDC)0x4268B8F0B87b6Eae5d897996E6b845ddbD99Adf3USDC (cream.finace) (crUSDC)0xD83C88DB3A6cA4a32FFf1603b0f7DDce01F5f727BSC-USD0x55d398326f99059fF775485246999027B3197955Base8453ETH0x0000000000000000000000000000000000000000Wrapped Ether (WETH)0x4200000000000000000000000000000000000006ChainLink Token (LINK)0x88Fb150BDc53A65fe94Dea0c9BA0a6dAf8C6e196USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913USDC (Axelar Wrapped) (axlUSDC)0xEB466342C4d449BC9f53A865D5Cb90586f405215Wrapped liquid staked Ether 2.0 (wstETH)0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452","title":"Supported Gas Tokens","titles":[]},"356":{"href":"/zero-to-hero-klaster-guide#zero-to-hero-guide-building-a-chain-abstracted-application","html":"\n

\"Ca\"/

\n

This will be a zero-to-hero introduction to the Klaster SDK. Here, we will explore all of the main concepts pertaining to\nthe development of chain abstracted apps and flows.

\n

In this tutorial, you will get all the required steps to build a chain abstracted application. If you're interested in what\na chain abstracted application looks like, check out our video on AbstraktAAVE - a chain abstracted implementation of AAVE.

\n\n

You can also use the app yourself at:

\n

https://demo-aave.klaster.io

\n\n","isPage":true,"text":"\n\nThis will be a zero-to-hero introduction to the Klaster SDK. Here, we will explore all of the main concepts pertaining to\nthe development of chain abstracted apps and flows.\nIn this tutorial, you will get all the required steps to build a chain abstracted application. If you're interested in what\na chain abstracted application looks like, check out our video on AbstraktAAVE - a chain abstracted implementation of AAVE.\n\nYou can also use the app yourself at:\nhttps://demo-aave.klaster.io\nWhile Klaster works with all major Ethereum SDK providers, such as ethers.js, web3.js and viem - it works best when used\nin conjuction with viem.\n","title":"Zero to Hero Guide: Building a Chain Abstracted Application","titles":[]},"357":{"href":"/zero-to-hero-klaster-guide#install-klaster-and-viem","html":"\n
npm i klaster-sdk viem
\n","isPage":false,"text":"\nnpm i klaster-sdk viem\n","title":"Install Klaster and Viem","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"358":{"href":"/zero-to-hero-klaster-guide#create-a-signer-object","html":"\n

Usign viem, create a signer object - which will be used to sign transactions.

\n
import {\n  buildMultichainReadonlyClient,\n  buildRpcInfo,\n  initKlaster,\n  klasterNodeHost,\n  loadBiconomyV2Account,\n} from "klaster-sdk";\nimport { createWalletClient, custom, http } from "viem";\nimport { generatePrivateKey, privateKeyToAccount } from "viem/accounts";\nimport { arbitrum, base, optimism, polygon, scroll } from "viem/chains";\n \n// When in browser environment create a signer\n// which uses the injected wallet (e.g. MetaMask, Rabby, ...)\nconst signer = createWalletClient({\n  transport: custom((window as any).ethereum),\n});\n \n// When in non-browser environment you can use private key\n// to sign messages.\nconst privateKey = generatePrivateKey();\nconst signerAccount = privateKeyToAccount(privateKey);\nconst signer = createWalletClient({\n  transport: http(),\n});
\n","isPage":false,"text":"\nUsign viem, create a signer object - which will be used to sign transactions.\nimport {\n buildMultichainReadonlyClient,\n buildRpcInfo,\n initKlaster,\n klasterNodeHost,\n loadBiconomyV2Account,\n} from "klaster-sdk";\nimport { createWalletClient, custom, http } from "viem";\nimport { generatePrivateKey, privateKeyToAccount } from "viem/accounts";\nimport { arbitrum, base, optimism, polygon, scroll } from "viem/chains";\n \n// When in browser environment create a signer\n// which uses the injected wallet (e.g. MetaMask, Rabby, ...)\nconst signer = createWalletClient({\n transport: custom((window as any).ethereum),\n});\n \n// When in non-browser environment you can use private key\n// to sign messages.\nconst privateKey = generatePrivateKey();\nconst signerAccount = privateKeyToAccount(privateKey);\nconst signer = createWalletClient({\n transport: http(),\n});\n","title":"Create a signer object","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"359":{"href":"/zero-to-hero-klaster-guide#initialize-klaster-sdk","html":"\n

To initialize the Klaster SDK, you must provide it with the following information:

\n\n

You can use multiple account providers (check documentation reference for supported account providers). In this tutorial,\nwe will use the Biconomy account provider:

\n
// Fetch the address from viem. You might need to call signer.requestAddresses()\n// depending on your injected Web3 provider.\nconst [address] = await signer.getAddresses();\n \n// Initializing the Klaster SDK with Biconomy as the smart contract account\n// provider.\nconst klaster = await initKlaster({\n  accountInitData: loadBiconomyV2Account({\n    owner: address, // Fetch\n  }),\n  nodeUrl: klasterNodeHost.default,\n});
\n","isPage":false,"text":"\nTo initialize the Klaster SDK, you must provide it with the following information:\n\nKlaster Node URL\nERC4337 Account Provider\n\nYou can use multiple account providers (check documentation reference for supported account providers). In this tutorial,\nwe will use the Biconomy account provider:\n// Fetch the address from viem. You might need to call signer.requestAddresses()\n// depending on your injected Web3 provider.\nconst [address] = await signer.getAddresses();\n \n// Initializing the Klaster SDK with Biconomy as the smart contract account\n// provider.\nconst klaster = await initKlaster({\n accountInitData: loadBiconomyV2Account({\n owner: address, // Fetch\n }),\n nodeUrl: klasterNodeHost.default,\n});\n","title":"Initialize Klaster SDK","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"360":{"href":"/zero-to-hero-klaster-guide#initialize-a-multichain-readonly-rpc-client","html":"\n

In order to achieve certain functionality for chain abstraction, such as getting a unified token balance across chains\nor encoding bridging actions - you will need to have a public RPC for every chain you wish to interact with. Do note\nthat this is only a public RPC, you don't need to have the abilty to write to chain - as this is handled by the Klaster nodes.

\n\n
// Build a multichain client by calling the buildMultichainReadonlyClient\n// and passing the buildRpcInfo objects into the array\nconst mcClient = buildMultichainReadonlyClient([\n  buildRpcInfo(optimism.id, "<op-rpc-url>"),\n  buildRpcInfo(base.id, "<base-rpc-url>"),\n]);
\n

Since this is a tutorial project, we can use the viem default RPCs.

\n\n
// This is a hacky way of doing this, just to get you quickly started\n// with the tutorial. Please don't initialize the client like this in\n// production projects.\nconst mcClient = buildMultichainReadonlyClient(\n  [optimism, base, polygon, arbitrum, scroll].map((x) => {\n    return {\n      chainId: x.id,\n      rpcUrl: x.rpcUrls.default.http[0],\n    };\n  })\n);
\n","isPage":false,"text":"\nIn order to achieve certain functionality for chain abstraction, such as getting a unified token balance across chains\nor encoding bridging actions - you will need to have a public RPC for every chain you wish to interact with. Do note\nthat this is only a public RPC, you don't need to have the abilty to write to chain - as this is handled by the Klaster nodes.\nThis tutorial project will be using Optimism, Base, Polygon, Arbitrum and Scroll as the underlying blockchains\n// Build a multichain client by calling the buildMultichainReadonlyClient\n// and passing the buildRpcInfo objects into the array\nconst mcClient = buildMultichainReadonlyClient([\n buildRpcInfo(optimism.id, "<op-rpc-url>"),\n buildRpcInfo(base.id, "<base-rpc-url>"),\n]);\nSince this is a tutorial project, we can use the viem default RPCs.\nThis is highly discouraged in a production project. Use private RPCs when deploying to production.\n// This is a hacky way of doing this, just to get you quickly started\n// with the tutorial. Please don't initialize the client like this in\n// production projects.\nconst mcClient = buildMultichainReadonlyClient(\n [optimism, base, polygon, arbitrum, scroll].map((x) => {\n return {\n chainId: x.id,\n rpcUrl: x.rpcUrls.default.http[0],\n };\n })\n);\n","title":"Initialize a multichain readonly RPC client","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"361":{"href":"/zero-to-hero-klaster-guide#map-token-deployments-across-multiple-blockchains","html":"\n

As well as working with the Multichain RPC provider, the Klaster SDK works best when provided with MultichainTokenMapping\nobjects. These objects represent mappings of tokens you consider equivalent across various blockchains. One example would\nbe USDC - which is widely deployed by Circle across multiple blockchains.

\n

You can use the Circle Token Deployments to see which address the canonical\nversion of which token is deployed to.

\n

However, nothing limits you to using only offical token deployments. If you consider the axlUSDC to be equivalent to cannonical\nUSDC - you can simply map them together and the Klaster SDK will treat them as if they're the same token. You can provide one\ntoken per chain.

\n\n
// Build a token mapping by calling the buildTokenMapping function and passing instances of\n// deployment object into the array. These represent the chainId → address mappings.\nconst mcUSDC = buildTokenMapping([\n  deployment(optimism.id, "0x<USDC-ON-OPTIMISM-ADDRESS>"),\n  deployment(base.id, "0x<USDC-ON-OPTIMISM-ADDRESS>"),\n]);
\n

The Klaster SDK exposes some multichain tokens by default. These are mcUSDC and mcUSDT. They are available to you\nas exported constants. They expose deployments on a lot of blockchains so it's important that you truncate them before\nusage only to blockchains which you use.

\n\n
// A lambda which intersects the chains available in the\n// token mapping with the ones available in the multichain client.\n// In general, you should not be using this in a production project.\n// Instead, you should create your own tokenmappings by the method shown\n// above.\nconst intersectTokenAndClients = (\n  token: MultichainTokenMapping,\n  mcClient: MultichainClient\n) => {\n  return token.filter((deployment) =>\n    mcClient.chainsRpcInfo\n      .map((info) => info.chainId)\n      .includes(deployment.chainId)\n  );\n};\n \n// Store the intersection of the Klaster provided token and the chains your project is using.\nconst mUSDC = intersectTokenAndClients(mcUSDC, mcClient);
\n","isPage":false,"text":"\nAs well as working with the Multichain RPC provider, the Klaster SDK works best when provided with MultichainTokenMapping\nobjects. These objects represent mappings of tokens you consider equivalent across various blockchains. One example would\nbe USDC - which is widely deployed by Circle across multiple blockchains.\nYou can use the Circle Token Deployments to see which address the canonical\nversion of which token is deployed to.\nHowever, nothing limits you to using only offical token deployments. If you consider the axlUSDC to be equivalent to cannonical\nUSDC - you can simply map them together and the Klaster SDK will treat them as if they're the same token. You can provide one\ntoken per chain.\nOne hard requirement for all tokens in a single mapping is that they all must have the same number of decimals.\n// Build a token mapping by calling the buildTokenMapping function and passing instances of\n// deployment object into the array. These represent the chainId → address mappings.\nconst mcUSDC = buildTokenMapping([\n deployment(optimism.id, "0x<USDC-ON-OPTIMISM-ADDRESS>"),\n deployment(base.id, "0x<USDC-ON-OPTIMISM-ADDRESS>"),\n]);\nThe Klaster SDK exposes some multichain tokens by default. These are mcUSDC and mcUSDT. They are available to you\nas exported constants. They expose deployments on a lot of blockchains so it's important that you truncate them before\nusage only to blockchains which you use.\nThe default Klaster exported tokens might not fit your project. Please double check the documentation to learn which tokens the Klaster SDK considers to be cannonical and idential to eachother.\n// A lambda which intersects the chains available in the\n// token mapping with the ones available in the multichain client.\n// In general, you should not be using this in a production project.\n// Instead, you should create your own tokenmappings by the method shown\n// above.\nconst intersectTokenAndClients = (\n token: MultichainTokenMapping,\n mcClient: MultichainClient\n) => {\n return token.filter((deployment) =>\n mcClient.chainsRpcInfo\n .map((info) => info.chainId)\n .includes(deployment.chainId)\n );\n};\n \n// Store the intersection of the Klaster provided token and the chains your project is using.\nconst mUSDC = intersectTokenAndClients(mcUSDC, mcClient);\n","title":"Map token deployments across multiple blockchains","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"362":{"href":"/zero-to-hero-klaster-guide#create-a-bridging-plugin","html":"\n

Klaster introduces a concept of Bridging Plugigs. Yoa can think of them as templates, which the Klaster SDK\nuses to encode and execute a bridging action whenever it needs to. Since Klaster is an agnostic protocol and SDK,\nevery function that might require bridging can accept the function of type BridgePlugin as input.

\n

For this tutorial we have prepared a LiFi bridging plugin example.

\n

But in general, what is a Klaster Bridging Plugin?

\n

It's a simple function which provides a data object containing things needed to encode a brdiging transaction such as\nsourceChainId, destinationChainId, sourceToken, destinationToken, amount, etc... and expects an object in return\nwhich tells the Klaster SDK i) which transactions need to be executed ii) how much will be received on destination.

\n

For this tutorial, we can create a LiFi bridging plugin, which will leverage LiFi Aggregation to get us the fastest route\navailable for every transfer. Since Klaster is primarily a user experience oriented framework, the speed of execution is\nparamout!

\n

First, install the LiFi SDK

\n
npm i @lifi/sdk
\n

Then write the plugin:

\n
import { getRoutes, RoutesRequest } from "@lifi/sdk";\nimport { Address, batchTx, BridgePlugin, rawTx } from "klaster-sdk";\nimport { Hex } from "viem";\n \nexport const liFiBrigePlugin: BridgePlugin = async (data) => {\n \n  const routesRequest: RoutesRequest = {\n    fromChainId: data.sourceChainId,\n    toChainId: data.destinationChainId,\n    fromTokenAddress: data.sourceToken,\n    toTokenAddress: data.destinationToken,\n    fromAmount: data.amount.toString(),\n    options: {\n      order: "FASTEST",\n    },\n  };\n \n  const result = await getRoutes(routesRequest);\n  const route = result.routes.at(0)\n \n  if (!route) {\n    throw Error('...');\n  }\n \n  const routeSteps = route.steps.map(step => {\n    if(!step.transactionRequest) { throw Error('...') }\n    const { to, gasLimit, data, value} = step.transactionRequest\n    if(!to || !gasLimit || !data || !value) { throw Error('...') } \n    return rawTx({\n      to: to as Address,\n      gasLimit: BigInt(gasLimit),\n      data: data as Hex,\n      value: BigInt(value)\n    })\n  })\n \n  return {\n    receivedOnDestination: BigInt(route.toAmountMin),\n    txBatch: batchTx(data.sourceChainId, routeSteps)\n  }\n};
\n

It's as simple as that! Now - you Klaster SDK has LiFi support 🥳

\n","isPage":false,"text":"\nKlaster introduces a concept of Bridging Plugigs. Yoa can think of them as templates, which the Klaster SDK\nuses to encode and execute a bridging action whenever it needs to. Since Klaster is an agnostic protocol and SDK,\nevery function that might require bridging can accept the function of type BridgePlugin as input.\nFor this tutorial we have prepared a LiFi bridging plugin example.\nBut in general, what is a Klaster Bridging Plugin?\nIt's a simple function which provides a data object containing things needed to encode a brdiging transaction such as\nsourceChainId, destinationChainId, sourceToken, destinationToken, amount, etc... and expects an object in return\nwhich tells the Klaster SDK i) which transactions need to be executed ii) how much will be received on destination.\nFor this tutorial, we can create a LiFi bridging plugin, which will leverage LiFi Aggregation to get us the fastest route\navailable for every transfer. Since Klaster is primarily a user experience oriented framework, the speed of execution is\nparamout!\nFirst, install the LiFi SDK\nnpm i @lifi/sdk\nThen write the plugin:\nimport { getRoutes, RoutesRequest } from "@lifi/sdk";\nimport { Address, batchTx, BridgePlugin, rawTx } from "klaster-sdk";\nimport { Hex } from "viem";\n \nexport const liFiBrigePlugin: BridgePlugin = async (data) => {\n \n const routesRequest: RoutesRequest = {\n fromChainId: data.sourceChainId,\n toChainId: data.destinationChainId,\n fromTokenAddress: data.sourceToken,\n toTokenAddress: data.destinationToken,\n fromAmount: data.amount.toString(),\n options: {\n order: "FASTEST",\n },\n };\n \n const result = await getRoutes(routesRequest);\n const route = result.routes.at(0)\n \n if (!route) {\n throw Error('...');\n }\n \n const routeSteps = route.steps.map(step => {\n if(!step.transactionRequest) { throw Error('...') }\n const { to, gasLimit, data, value} = step.transactionRequest\n if(!to || !gasLimit || !data || !value) { throw Error('...') } \n return rawTx({\n to: to as Address,\n gasLimit: BigInt(gasLimit),\n data: data as Hex,\n value: BigInt(value)\n })\n })\n \n return {\n receivedOnDestination: BigInt(route.toAmountMin),\n txBatch: batchTx(data.sourceChainId, routeSteps)\n }\n};\nIt's as simple as that! Now - you Klaster SDK has LiFi support 🥳\n","title":"Create a Bridging Plugin","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"363":{"href":"/zero-to-hero-klaster-guide#fetching-a-unified-balance","html":"\n

In order to achieve true chain abstraction, the user should be presented with a unified ERC20 balance across\nall of the chains that the app is using.

\n

For example, in the Klaster AbstraktAAVE Demo app, you can see the unified balance:\n\"Unified\"/

\n

and then the breakdown per chain:

\n\n

In order to achieve this, you can use the Multichain token and Multichain RPC objects from earlier:

\n
const uBalance = await mcClient.getUnifiedErc20Balance({\n  tokenMapping: mUSDC,\n  account: klaster.account,\n});\n \n// Total balance across all used chains, expressed in base units\nuBalance.balance;\n \n// Breakdown of balances across each separate blockchain\nuBalance.breakdown;\n \n// The decimals of the token. In order for tokenMapping to be created,\n// all instances must have the same number of decimals.\nuBalance.decimals;
\n","isPage":false,"text":"\nIn order to achieve true chain abstraction, the user should be presented with a unified ERC20 balance across\nall of the chains that the app is using.\nFor example, in the Klaster AbstraktAAVE Demo app, you can see the unified balance:\n\nand then the breakdown per chain:\n\nIn order to achieve this, you can use the Multichain token and Multichain RPC objects from earlier:\nconst uBalance = await mcClient.getUnifiedErc20Balance({\n tokenMapping: mUSDC,\n account: klaster.account,\n});\n \n// Total balance across all used chains, expressed in base units\nuBalance.balance;\n \n// Breakdown of balances across each separate blockchain\nuBalance.breakdown;\n \n// The decimals of the token. In order for tokenMapping to be created,\n// all instances must have the same number of decimals.\nuBalance.decimals;\n","title":"Fetching a Unified Balance","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"364":{"href":"/zero-to-hero-klaster-guide#encoding-the-bridging--execution-actions","html":"\n

Okay! Finally our entire setup is complete. This is most definitely one of the more complex cases which Klaster\ncovers - a fully chain abstracted app, so the amount of setup is a bit higher. For simpler cases, such as a unified\ndeposit address of one-click checkout flows, a lot of these steps can be omitted.

\n

So, for this demo, we'll say that we want to send the amount we receive from bridging on the destination chain to some other address. This in an intentionally simplistic case, and it could have been solved by just using LiFi bridge function, but for the purposes of this tutorial it just demonstrates how Klaster works.

\n
","isPage":false,"text":"\nOkay! Finally our entire setup is complete. This is most definitely one of the more complex cases which Klaster\ncovers - a fully chain abstracted app, so the amount of setup is a bit higher. For simpler cases, such as a unified\ndeposit address of one-click checkout flows, a lot of these steps can be omitted.\nSo, for this demo, we'll say that we want to send the amount we receive from bridging on the destination chain to some other address. This in an intentionally simplistic case, and it could have been solved by just using LiFi bridge function, but for the purposes of this tutorial it just demonstrates how Klaster works.\n","title":"Encoding the bridging + execution actions","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"365":{"href":"/zero-to-hero-klaster-guide#encoding-the-bridging-operations","html":"

In your own project, you'll be able to encode arbitrarily complex actions across any number of blockchains. For example, in\nthe AAVE case, after a token lands on the destination chain, the supply function is called on the AAVE Smart Contract

Anyways let's continue. The SDK is intelligent enough to calculate on its own the required steps to get some amount of\ntokens on some desired destination chain.

Let's assume a following situation. You have:

and you're trying to call some function on Base with 35 USDC while having zero USDC on Base. What the Klaster\nSDK will do is calculate a route for bridging your tokens:

e.g. take 20 USDC (total balance) from OP, 12 USDC (total balance) from Scroll and 3 USDC (+ additional for what was lost to\nbridge fees when bridging from chains where you took the total balance) from Polygon and bridge it all to Base. Once the funds\narrive to Base - call the desired function there!

For most cases, the SDK will be able to calculate te exact routes for bridging to get your desired outcome. If this is not\npossible, you can always encode them yourself.

The function that does the calculations is called encodeBridgingOps. Simply pass all of the required parameters and as\nan output you'll get a series of steps (EVM Transactions) to be executed on one or more blockchains to get your desired amount\nonto your desired destinationChain

const bridgingOps = await encodeBridgingOps({\n  tokenMapping: mUSDC,\n  account: klaster.account,\n  amount: uBalance.balance - parseUnits("1", uBalance.decimals), // Don't send entire balance\n  bridgePlugin: liFiBrigePlugin,\n  client: mcClient,\n  destinationChainId: base.id,\n  unifiedBalance: uBalance,\n});
","isPage":false,"text":"In your own project, you'll be able to encode arbitrarily complex actions across any number of blockchains. For example, in\nthe AAVE case, after a token lands on the destination chain, the supply function is called on the AAVE Smart ContractAnyways let's continue. The SDK is intelligent enough to calculate on its own the required steps to get some amount of\ntokens on some desired destination chain.Let's assume a following situation. You have:\n10 USDC on Polygon\n20 USDC on Optimism\n12 USDC on Scroll\nand you're trying to call some function on Base with 35 USDC while having zero USDC on Base. What the Klaster\nSDK will do is calculate a route for bridging your tokens:e.g. take 20 USDC (total balance) from OP, 12 USDC (total balance) from Scroll and 3 USDC (+ additional for what was lost to\nbridge fees when bridging from chains where you took the total balance) from Polygon and bridge it all to Base. Once the funds\narrive to Base - call the desired function there!For most cases, the SDK will be able to calculate te exact routes for bridging to get your desired outcome. If this is not\npossible, you can always encode them yourself.The function that does the calculations is called encodeBridgingOps. Simply pass all of the required parameters and as\nan output you'll get a series of steps (EVM Transactions) to be executed on one or more blockchains to get your desired amount\nonto your desired destinationChainconst bridgingOps = await encodeBridgingOps({\n tokenMapping: mUSDC,\n account: klaster.account,\n amount: uBalance.balance - parseUnits("1", uBalance.decimals), // Don't send entire balance\n bridgePlugin: liFiBrigePlugin,\n client: mcClient,\n destinationChainId: base.id,\n unifiedBalance: uBalance,\n});","title":"Encoding the bridging operations","titles":["Zero to Hero Guide: Building a Chain Abstracted Application","Encoding the bridging + execution actions"]},"366":{"href":"/zero-to-hero-klaster-guide#encoding-the-desired-action","html":"

Now we can encode the transfer call on the destination chain. This is done with the call to the Klaster SDK rawTx helper\nfunction:

const sendERC20Op = rawTx({\n  gasLimit: 100000n,\n  to: destChainTokenAddress,\n  data: encodeFunctionData({\n    abi: erc20Abi,\n    functionName: "transfer",\n    args: [recipient, bridgingOps.totalReceivedOnDestination],\n  }),\n});

Note one thing here, the usage of bridgingOps.totalReceivedOnDestination - this is a variable which has calculated\nhow much assets will be available on the destination chain after bridging has completed. If you had zero on the destination\nthen this will be the total amount available. If you had > 0 available then the total available will be

totalReceivedOnDestination + balanceOnDestination

","isPage":false,"text":"Now we can encode the transfer call on the destination chain. This is done with the call to the Klaster SDK rawTx helper\nfunction:const sendERC20Op = rawTx({\n gasLimit: 100000n,\n to: destChainTokenAddress,\n data: encodeFunctionData({\n abi: erc20Abi,\n functionName: "transfer",\n args: [recipient, bridgingOps.totalReceivedOnDestination],\n }),\n});Note one thing here, the usage of bridgingOps.totalReceivedOnDestination - this is a variable which has calculated\nhow much assets will be available on the destination chain after bridging has completed. If you had zero on the destination\nthen this will be the total amount available. If you had > 0 available then the total available will betotalReceivedOnDestination + balanceOnDestination","title":"Encoding the desired action","titles":["Zero to Hero Guide: Building a Chain Abstracted Application","Encoding the bridging + execution actions"]},"367":{"href":"/zero-to-hero-klaster-guide#creating-an-interchain-transaction","html":"

Now, we can use all of the transactions we have created to encode an interchain transaction or an iTx. An iTx is an\nobject containing one or more transactions across one or more blockchains. In our case, the iTx will contain

To create an iTx, we use the helper function buildItx.

const iTx = buildItx({\n  // BridgingOPs + Execution on the destination chain\n  // added as steps to the iTx\n  steps: bridgingOps.steps.concat(singleTx(destinationChainId, sendERC20Op)),\n  // Klaster works with cross-chain gas abstraction. This instructs the Klaster\n  // nodes to take USDC on Optimism as tx fee payment.\n  feeTx: klaster.encodePaymentFee(optimism.id, "USDC"),\n});
\n","isPage":false,"text":"Now, we can use all of the transactions we have created to encode an interchain transaction or an iTx. An iTx is an\nobject containing one or more transactions across one or more blockchains. In our case, the iTx will contain\nAll necessary approve + bridging transactions calculated by the encodeBridgingOps function - on the source chain(s)\nThe send transaction on the destination chain\nTo create an iTx, we use the helper function buildItx.const iTx = buildItx({\n // BridgingOPs + Execution on the destination chain\n // added as steps to the iTx\n steps: bridgingOps.steps.concat(singleTx(destinationChainId, sendERC20Op)),\n // Klaster works with cross-chain gas abstraction. This instructs the Klaster\n // nodes to take USDC on Optimism as tx fee payment.\n feeTx: klaster.encodePaymentFee(optimism.id, "USDC"),\n});\n","title":"Creating an Interchain Transaction","titles":["Zero to Hero Guide: Building a Chain Abstracted Application","Encoding the bridging + execution actions"]},"368":{"href":"/zero-to-hero-klaster-guide#executing-the-interchain-transaction","html":"\n

Now that we have everything we need encoded in the iTx object, we can send it to the Klaster network for execution.

\n
","isPage":false,"text":"\nNow that we have everything we need encoded in the iTx object, we can send it to the Klaster network for execution.\n","title":"Executing the Interchain Transaction","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"369":{"href":"/zero-to-hero-klaster-guide#getting-a-quote","html":"

Executing an Interchain transaction is a two-step process. The first part of the process is getting a quote from the\nKlaster Network. The quote will tell you how much the node wants to charge for the execution of the transaction in the\ntoken which you set in the feeTx field when building an iTx.

To get the quote, call:

const quote = await klaster.getQuote(iTx);\n \n// The amount of USD that the node is willing to execute the iTx for\nquote.tokenValue;
","isPage":false,"text":"Executing an Interchain transaction is a two-step process. The first part of the process is getting a quote from the\nKlaster Network. The quote will tell you how much the node wants to charge for the execution of the transaction in the\ntoken which you set in the feeTx field when building an iTx.To get the quote, call:const quote = await klaster.getQuote(iTx);\n \n// The amount of USD that the node is willing to execute the iTx for\nquote.tokenValue;","title":"Getting a quote","titles":["Zero to Hero Guide: Building a Chain Abstracted Application","Executing the Interchain Transaction"]},"370":{"href":"/zero-to-hero-klaster-guide#signing-the-quote","html":"

If you're satisfied with the quoted execution price, prompt the user to sign the iTx hash. You can get the hash from the\nquote object. By signing the iTx hash you're giving the Klaster Nodes approval to execute the transactions within the\niTx. This is cryptographically verified by smart contracts on every chain where the data is being executed - so the nodes\nare unable to execute anything without the explicit approval from the user.

const signed = await signer.signMessage({\n  message: {\n    raw: quote.itxHash,\n  },\n  account: signerAccount,\n});
","isPage":false,"text":"If you're satisfied with the quoted execution price, prompt the user to sign the iTx hash. You can get the hash from the\nquote object. By signing the iTx hash you're giving the Klaster Nodes approval to execute the transactions within the\niTx. This is cryptographically verified by smart contracts on every chain where the data is being executed - so the nodes\nare unable to execute anything without the explicit approval from the user.If you're using viem - make sure to use the message → raw to sign. If you pass the message directly into the message object,\nyou will get an error that you're using the wrong signature.const signed = await signer.signMessage({\n message: {\n raw: quote.itxHash,\n },\n account: signerAccount,\n});","title":"Signing the quote","titles":["Zero to Hero Guide: Building a Chain Abstracted Application","Executing the Interchain Transaction"]},"371":{"href":"/zero-to-hero-klaster-guide#sending-the-itx-for-execution","html":"

After the user has signed the iTx hash, pass the QuoteResponse together with the signed hash to the execute function.

const result = await klaster.execute(quote, signed)
","isPage":false,"text":"After the user has signed the iTx hash, pass the QuoteResponse together with the signed hash to the execute function.const result = await klaster.execute(quote, signed)","title":"Sending the iTx for execution","titles":["Zero to Hero Guide: Building a Chain Abstracted Application","Executing the Interchain Transaction"]},"372":{"href":"/zero-to-hero-klaster-guide#tracking-the-execution","html":"

After the iTx has been received by the Klaster Network, you will receive a result from the execute function. In that result,\nyou will have the iTx hash. You can go to the Klaster Explorer to check the status of the hash:

https://explorer.klaster.io/details/{iTxHash}

\n","isPage":false,"text":"After the iTx has been received by the Klaster Network, you will receive a result from the execute function. In that result,\nyou will have the iTx hash. You can go to the Klaster Explorer to check the status of the hash:https://explorer.klaster.io/details/{iTxHash}\n","title":"Tracking the execution","titles":["Zero to Hero Guide: Building a Chain Abstracted Application","Executing the Interchain Transaction"]},"373":{"href":"/zero-to-hero-klaster-guide#conclusion","html":"\n

Congrats - you have sucessfully executed your first Interchain Transaction and prepared your project for chain abstraction.

","isPage":false,"text":"\nCongrats - you have sucessfully executed your first Interchain Transaction and prepared your project for chain abstraction.","title":"Conclusion","titles":["Zero to Hero Guide: Building a Chain Abstracted Application"]},"374":{"href":"/accounts/biconomy#initializing-a-biconomy-account","html":"\n

To initialize a Biconomy account, you use the following function

\n
const klaster = await initKlaster({\n  accountInitData: loadBiconomyV2Account({\n    owner: '0xEOA_OWNER',\n  }),\n  nodeUrl: 'https://node-url',\n});
","isPage":true,"text":"\nTo initialize a Biconomy account, you use the following function\nconst klaster = await initKlaster({\n accountInitData: loadBiconomyV2Account({\n owner: '0xEOA_OWNER',\n }),\n nodeUrl: 'https://node-url',\n});","title":"Initializing a Biconomy account","titles":[null]},"375":{"href":"/accounts/safe#initializing-a-safe-account","html":"\n

To initialize the Klaster SDK with a Safe account you can use the following function:

\n
const klaster = await initKlaster({\n  accountInitData: loadSafeV141Account({\n    signers: ["0xSIGNER"],\n    threshold: 1n,\n  }),\n  nodeUrl: "https://<node-url>",\n});
\n","isPage":true,"text":"\nTo initialize the Klaster SDK with a Safe account you can use the following function:\nconst klaster = await initKlaster({\n accountInitData: loadSafeV141Account({\n signers: ["0xSIGNER"],\n threshold: 1n,\n }),\n nodeUrl: "https://<node-url>",\n});\nThe signers information is used to derive the account address. If the signers change, you should keep using the initial\nsigners information which was used to create the Safe account.","title":"Initializing a Safe Account","titles":[null]},"376":{"href":"/concepts/bridge-plugins#bridging-plugins","html":"\n

The Klaster SDK enables chain abstracted user experiences by performing the bridging of assets in the background. In order to be\nable to perform bridging actions, the Klaster SDK needs to know how to encode them.

\n

The Klaster Bridging Plugins rely on the fact that most bridges are triggered by a simple call to a smart contract on some\nchain - and as such, can be ecnoded as a series of transactions (e.g. Bridge + Approve). The bridging plugin then\nreturns a series of calls to the blockchain (to be encoded into an InterchainTransaction) and how much the user will\nend up with at the destination chain (after all the bridging and gas fees are paid - this is usually availble information\nbefore bridging.)

\n

In order to do so, you pass it an instance of a BridgePlugin. A BridgePlugin is a simple function of type:

\n
type BridgePlugin = (BridgePluginParams) => BridgePluginResult\n \n// The BridgePluginParams expose all of the information\n// required to encode a bridging action using some existing\n// bridging provider\ntype BridgePluginParams = {\n  sourceChainId: number,\n  destinationChainId: number,\n  account: MutlichainAccount,\n  sourceToken: Address,\n  destinationToken: Address,\n  amount: bigint\n}\n \n// BridgePluginResult tells the Klaster SDK \n// - how much will be received on the destination chain post bridign\n// - which transactions need to be executed to trigger the bridge\ntype BridgePluginResult = {\n  receivedOnDesitnation: bigint,\n  steps: TxBatch[]\n}
\n

An example of a BridgePlugin for Across

\n
export const acrossBridgePlugin: BridgePlugin = async (data) => {\n  // Call Across API to get the bridging fee data, as well as all the other required\n  // inforation about the bridging procedure\n  const feesResponse = await getAcrossSuggestedFees(data);\n \n  // Calculate the amount which you will receive on the destination chain from the\n  // response given by the Across API\n  const outputAmount = data.amount - BigInt(feesResponse.totalRelayFee.total);\n \n  // Encode a transcation approving the Across pool contract to get the\n  // required amount of ERC20 tokens from your accoount.\n  const acrossApproveTx = encodeApproveTx({\n    tokenAddress: data.sourceToken,\n    amount: outputAmount,\n    recipient: feesResponse.spokePoolAddress,\n  });\n \n  // Encode a transaction to call the Across Pool\n  const acrossCallTx = rawTx({\n    to: feesResponse.spokePoolAddress,\n    data: encodeAcrossCallData(data, feesResponse),\n    gasLimit: BigInt(250000),\n  });\n \n  return {\n    // The total amount which the user will receive on the destination chain. This is\n    // used by the SDK to calculate how much funds it can count on after bridging.\n    receivedOnDestination: outputAmount,\n    // The sequence of transactions which need to be executed in order to start the brdging\n    // procedure.\n    txBatch: batchTx(data.sourceChainId, [acrossApproveTx, acrossCallTx]),\n  };\n};\n 
","isPage":true,"text":"\nThe Klaster SDK enables chain abstracted user experiences by performing the bridging of assets in the background. In order to be\nable to perform bridging actions, the Klaster SDK needs to know how to encode them.\nThe Klaster Bridging Plugins rely on the fact that most bridges are triggered by a simple call to a smart contract on some\nchain - and as such, can be ecnoded as a series of transactions (e.g. Bridge + Approve). The bridging plugin then\nreturns a series of calls to the blockchain (to be encoded into an InterchainTransaction) and how much the user will\nend up with at the destination chain (after all the bridging and gas fees are paid - this is usually availble information\nbefore bridging.)\nIn order to do so, you pass it an instance of a BridgePlugin. A BridgePlugin is a simple function of type:\ntype BridgePlugin = (BridgePluginParams) => BridgePluginResult\n \n// The BridgePluginParams expose all of the information\n// required to encode a bridging action using some existing\n// bridging provider\ntype BridgePluginParams = {\n sourceChainId: number,\n destinationChainId: number,\n account: MutlichainAccount,\n sourceToken: Address,\n destinationToken: Address,\n amount: bigint\n}\n \n// BridgePluginResult tells the Klaster SDK \n// - how much will be received on the destination chain post bridign\n// - which transactions need to be executed to trigger the bridge\ntype BridgePluginResult = {\n receivedOnDesitnation: bigint,\n steps: TxBatch[]\n}\nAn example of a BridgePlugin for Across\nexport const acrossBridgePlugin: BridgePlugin = async (data) => {\n // Call Across API to get the bridging fee data, as well as all the other required\n // inforation about the bridging procedure\n const feesResponse = await getAcrossSuggestedFees(data);\n \n // Calculate the amount which you will receive on the destination chain from the\n // response given by the Across API\n const outputAmount = data.amount - BigInt(feesResponse.totalRelayFee.total);\n \n // Encode a transcation approving the Across pool contract to get the\n // required amount of ERC20 tokens from your accoount.\n const acrossApproveTx = encodeApproveTx({\n tokenAddress: data.sourceToken,\n amount: outputAmount,\n recipient: feesResponse.spokePoolAddress,\n });\n \n // Encode a transaction to call the Across Pool\n const acrossCallTx = rawTx({\n to: feesResponse.spokePoolAddress,\n data: encodeAcrossCallData(data, feesResponse),\n gasLimit: BigInt(250000),\n });\n \n return {\n // The total amount which the user will receive on the destination chain. This is\n // used by the SDK to calculate how much funds it can count on after bridging.\n receivedOnDestination: outputAmount,\n // The sequence of transactions which need to be executed in order to start the brdging\n // procedure.\n txBatch: batchTx(data.sourceChainId, [acrossApproveTx, acrossCallTx]),\n };\n};\n ","title":"Bridging Plugins","titles":[null]},"377":{"href":"/concepts/interchain-transaction#interchain-transaction","html":"\n

The InterchainTransaction or iTx is the beating heart of the Klaster protocol. It's an object containing two or more\ntransactions to be executed on one or more blockchain networks - encoded in a merkle tree.

\n","isPage":true,"text":"\nThe InterchainTransaction or iTx is the beating heart of the Klaster protocol. It's an object containing two or more\ntransactions to be executed on one or more blockchain networks - encoded in a merkle tree.\n","title":"Interchain Transaction","titles":[null]},"378":{"href":"/concepts/interchain-transaction#details","html":"\n\n

\"iTx\"/

","isPage":false,"text":"\n\n\nThe leafs of the tree are the transactions contained in the interchain transaction. They define all of the actions which can be\nexecuted by the iTx.\n\n\nThe root hash of the merkle tree is called the Interchain Transcation Hash\n\n\nEvery iTx is uniquely defined by it's iTx hash\n\n\nIn order to execute the iTx, the user signs the iTx hash with their private key and sends the signed hash, togehter with\nthe list of the leaf transactions - to a Klaster Node.\n\n\nThe first transaction in the iTx is always the transaction fee payment transaction.\n\n\n","title":"Details","titles":[null,"Interchain Transaction",null]},"379":{"href":"/concepts/multichain-account#multichain-smart-contract-account","html":"\n

The Klaster account system is built on top of ERC4337 Account Abstraction. Account wise, the main difference between\nKlaster and other solutions is that Klaster tightly couples deployed Smart Contract Account instances across multiple\nblockchains.

\n

Simply put, this means that these accounts, deployed on multiple blockchain networks - have the ability to act as a single\naccount.

\n

Klaster uses the CREATE2 opcode when deploying accounts. However, some blockchains - notably the zkSync ecosystem - don't\nderive the accounts the same way that Ethereum does.

\n

That's why the Klaster SDK uses an internal object called the MutltichainAccount, which holds all of the address deployments\nfor all of the blockchains.

\n

Beyond holding the address deployments, the MultichainAccount object holds the initData - which was the data used to derive\nthe account.

\n","isPage":true,"text":"\nThe Klaster account system is built on top of ERC4337 Account Abstraction. Account wise, the main difference between\nKlaster and other solutions is that Klaster tightly couples deployed Smart Contract Account instances across multiple\nblockchains.\nSimply put, this means that these accounts, deployed on multiple blockchain networks - have the ability to act as a single\naccount.\nKlaster uses the CREATE2 opcode when deploying accounts. However, some blockchains - notably the zkSync ecosystem - don't\nderive the accounts the same way that Ethereum does.\nThat's why the Klaster SDK uses an internal object called the MutltichainAccount, which holds all of the address deployments\nfor all of the blockchains.\nBeyond holding the address deployments, the MultichainAccount object holds the initData - which was the data used to derive\nthe account.\n","title":"Multichain Smart Contract Account","titles":[null]},"380":{"href":"/concepts/multichain-account#deriving-accounts","html":"\n

Several key pieces of information determine which account address will be derived when loading a smart contract account:

\n
    \n
  1. Account vendor (e.g. Biconomy, Safe, ZeroDev, ...)
  2. \n
  3. Factory data (derived from account init parameters, specific for each vendor)
  4. \n
  5. Account blockchain (e.g. ETH, Base, OP, Polygon, AVAX all derive the same, while e.g. zkSync and Abstract derive differently)
  6. \n
\n

The Klaster Node exposes this as a utility endpoint https://<node-url>/v2/address/{VENDOR_ID}/0xFACTORY_DATA

\n

The vendor id is a Klaster defined string, definining every supported account vendor (e.g. SAFE_V141 or BICO_V2), while\nfactory data is encoded for every vendor, according to their standard.

\n

e.g. for Safe, the FactoryData is derived from address[] signers, uint256 threshold, bytes32 salt, while for Biconomy -\nit's derived from address owner, bytes32 salt

","isPage":false,"text":"\nSeveral key pieces of information determine which account address will be derived when loading a smart contract account:\n\nAccount vendor (e.g. Biconomy, Safe, ZeroDev, ...)\nFactory data (derived from account init parameters, specific for each vendor)\nAccount blockchain (e.g. ETH, Base, OP, Polygon, AVAX all derive the same, while e.g. zkSync and Abstract derive differently)\n\nThe Klaster Node exposes this as a utility endpoint https://<node-url>/v2/address/{VENDOR_ID}/0xFACTORY_DATA\nThe vendor id is a Klaster defined string, definining every supported account vendor (e.g. SAFE_V141 or BICO_V2), while\nfactory data is encoded for every vendor, according to their standard.\ne.g. for Safe, the FactoryData is derived from address[] signers, uint256 threshold, bytes32 salt, while for Biconomy -\nit's derived from address owner, bytes32 salt","title":"Deriving accounts","titles":[null,"Multichain Smart Contract Account"]},"381":{"href":"/concepts/multichain-public-client#multichain-public-client","html":"\n

In order to achieve certain functionalities, such as fetching a unified multichain balance or encoding bridging strategies - the\nKlaster SDK must have the ability to read from the blockchains with which your application is interacting with.

\n

To achieve this, the Klaster SDK counts on the MultichainClient object. This object is a simple mapping of rpcUrl to\nchainId. As of version 0.5.2 - the MultichainClient exposes a utility function to read the unified balance of an\nERC20 token (provided by a TokenMapping object).

\n

A multichain public client can be easily built by leveraging the buildMultichainReadonlyClient function.

\n
const mcClient = buildMultichainReadonlyClient([\n  buildRpcInfo(optimism.id, 'https://optimism-rpc'),\n  buildRpcInfo(base.id, 'https://base-rpc'),\n  //... add the rest of the chains\n])
","isPage":true,"text":"\nIn order to achieve certain functionalities, such as fetching a unified multichain balance or encoding bridging strategies - the\nKlaster SDK must have the ability to read from the blockchains with which your application is interacting with.\nTo achieve this, the Klaster SDK counts on the MultichainClient object. This object is a simple mapping of rpcUrl to\nchainId. As of version 0.5.2 - the MultichainClient exposes a utility function to read the unified balance of an\nERC20 token (provided by a TokenMapping object).\nA multichain public client can be easily built by leveraging the buildMultichainReadonlyClient function.\nconst mcClient = buildMultichainReadonlyClient([\n buildRpcInfo(optimism.id, 'https://optimism-rpc'),\n buildRpcInfo(base.id, 'https://base-rpc'),\n //... add the rest of the chains\n])","title":"Multichain Public Client","titles":[null]},"382":{"href":"/concepts/multichain-token-mapping#multichain-token-mapping","html":"\n

Klaster is a multichain first framework, and as such - all objects within it are made to work in a multichain environment. One\nof the core aspects of working with blockchain system is interacting with tokens. In the EVM ecosystem, these are primarily\nERC20 or ERC721 tokens (with certain subtypes which also comply to these two interfaces).

\n

Since the Klaster SDK wishes to achieve things like unified balances, which can be spent from any chain to any chain - we must\nprovide it with a way to map like tokens to eachother.

\n

This is achieved through the use of a simple MultichainTokenMapping object, which simply maps the addresses of a desired token\nacross multiple chains. The way you build a multichain token mapping is the following:

\n
const mcUSDC = buildTokenMapping([\n  deployment(optimism.id, "0x<USDC-ON-OPTIMISM-ADDRESS>"),\n  deployment(base.id, "0x<USDC-ON-OPTIMISM-ADDRESS>"),\n  deployment(arbitrum.id, "0x<USDC-ON-ARBITRUM-ADDRESS>"),\n  //... add rest of the chains\n]);
\n

Then, in a function such as getUnifiedBalance or encodeBridgingData - you simply pass the mcUSDC object and the SDK knows\nhow to handle the token on mutliple blockchains.

\n","isPage":true,"text":"\nKlaster is a multichain first framework, and as such - all objects within it are made to work in a multichain environment. One\nof the core aspects of working with blockchain system is interacting with tokens. In the EVM ecosystem, these are primarily\nERC20 or ERC721 tokens (with certain subtypes which also comply to these two interfaces).\nSince the Klaster SDK wishes to achieve things like unified balances, which can be spent from any chain to any chain - we must\nprovide it with a way to map like tokens to eachother.\nThis is achieved through the use of a simple MultichainTokenMapping object, which simply maps the addresses of a desired token\nacross multiple chains. The way you build a multichain token mapping is the following:\nconst mcUSDC = buildTokenMapping([\n deployment(optimism.id, "0x<USDC-ON-OPTIMISM-ADDRESS>"),\n deployment(base.id, "0x<USDC-ON-OPTIMISM-ADDRESS>"),\n deployment(arbitrum.id, "0x<USDC-ON-ARBITRUM-ADDRESS>"),\n //... add rest of the chains\n]);\nThen, in a function such as getUnifiedBalance or encodeBridgingData - you simply pass the mcUSDC object and the SDK knows\nhow to handle the token on mutliple blockchains.\n","title":"Multichain Token Mapping","titles":[null]},"383":{"href":"/concepts/multichain-token-mapping#notes","html":"\n

Some of the things to note with the MultichainTokenMapping object:

\n","isPage":false,"text":"\nSome of the things to note with the MultichainTokenMapping object:\n\nOnly one token deployment is supported per chain\nAll deployments must have the same number of decimals\n","title":"Notes","titles":[null,"Multichain Token Mapping"]},"384":{"href":"/concepts/unified-balance#unified-balance","html":"\n

A UnifiedBalance object contains the balance of some ERC20 token across multiple blockchains. It can be fetched by calling\nthe getUnifiedErc20Balance function on the MultichainClient object.

\n
type UnifiedBalance = {\n  balance: bigint // total balance across all blockchains\n  decimals: number // the number of decimals of the token for which the unified balance is fetched\n  breakdown: { // breakdown of balances across all queried blockchains\n    balance: bigint,\n    chainId: number\n  }[]\n}
","isPage":true,"text":"\nA UnifiedBalance object contains the balance of some ERC20 token across multiple blockchains. It can be fetched by calling\nthe getUnifiedErc20Balance function on the MultichainClient object.\ntype UnifiedBalance = {\n balance: bigint // total balance across all blockchains\n decimals: number // the number of decimals of the token for which the unified balance is fetched\n breakdown: { // breakdown of balances across all queried blockchains\n balance: bigint,\n chainId: number\n }[]\n}","title":"Unified Balance","titles":[null]},"385":{"href":"/quickstart/gas-abstraction#gas-abstraction-quickstart","html":"\n

Int h

","isPage":true,"text":"\nInt h","title":"Gas abstraction Quickstart","titles":[]}},"dirtCount":0,"index":[["+",{"0":{"364":1},"1":{"365":1,"366":1,"367":1},"2":{"365":1,"366":1,"367":2,"376":1}}],["🥳",{"2":{"362":1}}],["→",{"2":{"361":1,"370":1}}],["quickstart",{"0":{"385":1}}],["quickly",{"2":{"360":1}}],["queried",{"2":{"384":1}}],["quot",{"2":{"81":2,"120":2,"125":4,"129":2,"130":2,"189":12,"276":32,"283":8,"308":4,"311":2,"316":2,"348":2,"358":8,"360":4,"361":4,"362":8,"365":2,"366":2,"367":2,"375":4,"382":6}}],["quoting",{"2":{"23":1,"28":1,"49":1}}],["quoted",{"2":{"225":1,"240":1,"370":1}}],["quoteresponse",{"0":{"238":1},"1":{"239":1,"240":1,"241":1,"242":1,"243":1,"244":1,"245":1,"246":1,"247":1,"248":1,"249":1},"2":{"77":1,"82":3,"83":1,"93":1,"95":2,"238":1,"371":1}}],["quotes",{"2":{"7":1}}],["quote",{"0":{"369":1,"370":1},"2":{"7":2,"43":3,"47":1,"50":1,"76":1,"77":1,"93":3,"98":1,"99":4,"107":1,"110":1,"238":2,"244":1,"369":5,"370":2,"371":1}}],["zerodev",{"2":{"380":1}}],["zero",{"0":{"356":1},"1":{"357":1,"358":1,"359":1,"360":1,"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1},"2":{"356":1,"365":1,"366":1}}],["zksync",{"2":{"234":1,"379":1,"380":1}}],["x",{"2":{"360":3}}],["x19ethereum",{"2":{"348":1}}],["x27",{"2":{"21":2,"24":12,"26":2,"29":8,"44":2,"48":4,"49":1,"55":4,"63":4,"71":1,"72":8,"81":1,"82":4,"88":1,"89":8,"99":8,"108":2,"109":1,"161":1,"169":1,"181":1,"207":4,"234":1,"236":1,"258":1,"282":1,"283":14,"285":1,"286":1,"287":2,"288":4,"294":16,"297":1,"308":8,"324":1,"325":6,"334":14,"339":6,"347":1,"350":1,"351":8,"356":1,"360":2,"361":2,"362":8,"364":1,"365":6,"370":4,"374":4,"377":1,"378":1,"379":2,"380":1,"381":4}}],["$",{"2":{"334":2}}],["js",{"2":{"328":1,"352":1,"356":2}}],["just",{"2":{"308":1,"360":1,"364":2}}],["62",{"2":{"341":1}}],["6",{"2":{"288":1}}],["||",{"2":{"362":3}}],["|",{"2":{"189":2,"276":15,"320":1,"321":1}}],["86",{"2":{"353":1}}],["8",{"2":{"348":1}}],["88",{"2":{"277":1}}],["8453",{"2":{"283":3,"308":2}}],["84",{"2":{"176":1}}],["83",{"2":{"170":1}}],["82",{"2":{"166":1}}],["81",{"2":{"164":1}}],["80",{"2":{"25":1,"172":1}}],["5",{"2":{"381":1}}],["55000",{"2":{"287":1}}],["51",{"2":{"142":1}}],["5000",{"2":{"308":1}}],["50000n",{"2":{"24":1}}],["50",{"2":{"140":1}}],["52",{"2":{"136":1}}],["53",{"2":{"127":1,"319":1}}],["47",{"2":{"329":1}}],["435",{"2":{"309":1}}],["4337",{"2":{"8":1,"143":1,"147":1,"155":2,"197":1,"250":1}}],["4000",{"2":{"283":1}}],["49",{"2":{"138":1}}],["466",{"2":{"111":1}}],["3",{"2":{"365":1}}],["36",{"2":{"303":1}}],["34",{"2":{"275":1}}],["342",{"2":{"84":1}}],["33",{"2":{"121":1}}],["397",{"2":{"51":1}}],["35",{"2":{"30":1,"365":1}}],["h",{"2":{"385":1}}],["holding",{"2":{"379":1}}],["holds",{"2":{"379":2}}],["however",{"2":{"361":1,"379":1}}],["how",{"2":{"67":1,"362":1,"364":1,"366":1,"369":1,"376":4,"382":1}}],["http",{"2":{"358":2,"360":1}}],["https",{"2":{"83":1,"283":2,"334":2,"339":1,"354":1,"356":1,"372":1,"374":1,"375":1,"380":1,"381":2}}],["higher",{"2":{"364":1}}],["highly",{"2":{"360":1}}],["high",{"2":{"254":1}}],["heart",{"2":{"377":1}}],["hex",{"2":{"362":2}}],["hexadecimal",{"2":{"349":1}}],["hero",{"0":{"356":1},"1":{"357":1,"358":1,"359":1,"360":1,"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1},"2":{"356":1}}],["here",{"2":{"48":1,"108":2,"308":1,"356":1,"366":1}}],["hello",{"2":{"351":1}}],["helps",{"2":{"254":1}}],["helper",{"2":{"67":1,"297":1,"310":1,"315":1,"366":1,"367":1}}],["had",{"2":{"366":2}}],["having",{"2":{"365":1}}],["have",{"2":{"279":1,"282":1,"333":1,"360":2,"361":1,"362":1,"363":1,"364":1,"365":1,"367":1,"368":1,"372":1,"373":1,"379":1,"381":1,"383":1}}],["hard",{"2":{"361":1}}],["hacky",{"2":{"360":1}}],["handling",{"2":{"315":1}}],["handled",{"2":{"360":1}}],["handle",{"2":{"109":2,"382":1}}],["handles",{"2":{"43":1}}],["has",{"2":{"181":1,"183":1,"244":1,"248":1,"288":1,"362":1,"366":2,"371":1,"372":1}}],["hasn",{"2":{"161":1}}],["hash",{"2":{"3":2,"43":1,"44":3,"45":1,"48":2,"49":1,"76":2,"77":1,"78":1,"80":1,"81":2,"82":2,"108":2,"109":1,"181":2,"199":1,"221":1,"238":1,"242":1,"370":3,"371":2,"372":2,"378":5}}],["yoa",{"2":{"362":1}}],["yourself",{"2":{"356":1,"365":1}}],["yoursigner",{"2":{"108":1}}],["yourprovider",{"2":{"108":1}}],["your",{"2":{"48":1,"56":1,"64":1,"108":3,"109":1,"308":2,"334":2,"359":1,"361":3,"365":5,"373":2,"376":1,"381":1}}],["you",{"2":{"44":1,"49":1,"56":1,"64":1,"68":1,"81":2,"90":1,"109":1,"339":1,"356":3,"358":1,"359":3,"360":4,"361":11,"362":1,"363":2,"365":6,"366":2,"369":2,"370":7,"372":3,"373":1,"374":1,"375":2,"376":2,"382":2}}],["yet",{"2":{"161":1}}],["yield",{"2":{"9":1}}],["79",{"2":{"178":1}}],["75",{"2":{"168":1,"296":1}}],["7579",{"2":{"6":1}}],["77",{"2":{"158":1}}],["76",{"2":{"41":1,"162":1}}],["74",{"2":{"39":1,"174":1}}],["78",{"2":{"36":1,"160":1}}],["=",{"2":{"24":1,"29":1,"48":4,"72":1,"82":3,"89":1,"99":2,"108":3,"120":1,"125":1,"130":1,"283":3,"288":2,"294":2,"302":1,"308":5,"313":2,"318":1,"325":1,"334":2,"339":2,"351":3,"358":4,"359":2,"360":3,"361":6,"362":8,"363":1,"365":1,"366":1,"367":1,"369":1,"370":1,"371":1,"374":1,"375":1,"376":10,"381":1,"382":1,"384":1}}],["`unified",{"2":{"334":1}}],["`",{"2":{"22":1,"27":1,"40":1,"60":1,"104":1,"137":1,"151":1,"173":1,"223":1,"234":1,"242":1,"244":1,"256":1,"262":1,"286":2,"331":1,"334":1,"348":1}}],["`0x$",{"2":{"22":1,"27":1,"40":1,"60":1,"104":1,"137":1,"151":1,"173":1,"223":1,"234":1,"242":1,"244":1,"256":1,"262":1,"286":2,"331":1,"348":1}}],["ll",{"2":{"364":1,"365":2}}],["leveraging",{"2":{"381":1}}],["leverage",{"2":{"362":1}}],["let",{"2":{"365":2}}],["leaf",{"2":{"378":1}}],["leafs",{"2":{"378":1}}],["learn",{"2":{"361":1}}],["lead",{"2":{"21":1}}],["lands",{"2":{"365":1}}],["lambda",{"2":{"361":1}}],["latest",{"2":{"195":1,"209":1}}],["layer",{"0":{"4":1},"2":{"1":1}}],["loading",{"2":{"380":1}}],["loadsafev141account",{"2":{"375":1}}],["loadBiconomyV2Account",{"2":{"358":1,"359":1,"374":1}}],["lost",{"2":{"365":1}}],["lot",{"2":{"361":1,"364":1}}],["looks",{"2":{"356":1}}],["locked",{"2":{"321":1,"325":1}}],["lowerboundtime",{"0":{"205":1},"1":{"206":1},"2":{"205":1}}],["lowerboundtimestap",{"0":{"191":1},"1":{"192":1},"2":{"191":1}}],["log",{"2":{"48":1,"72":1,"82":1,"89":2,"99":1,"120":1,"125":1,"130":1,"283":2,"294":1,"308":1,"325":2,"334":1,"351":1}}],["logic",{"2":{"48":1,"108":2,"308":1}}],["lifibrigeplugin",{"2":{"362":1,"365":1}}],["lifi",{"2":{"362":7,"364":1}}],["liquid",{"2":{"355":5}}],["list",{"2":{"320":1,"378":1}}],["library",{"2":{"320":1}}],["libraries",{"2":{"81":1}}],["like",{"2":{"286":1,"290":1,"328":1,"352":1,"356":1,"360":1,"382":2}}],["link",{"2":{"276":1,"355":9}}],["limits",{"2":{"361":1}}],["limit",{"2":{"159":1,"177":1,"193":1,"287":1}}],["lt",{"2":{"43":1,"45":1,"67":1,"69":1,"76":1,"78":1,"85":1,"86":1,"93":1,"95":1,"103":1,"105":1,"279":1,"281":1,"304":1,"306":1,"320":1,"321":1,"330":1,"332":1,"347":1,"349":1,"360":2,"361":2,"375":1,"380":1,"382":3}}],["l3",{"2":{"11":1}}],["l2",{"2":{"11":1}}],["v141",{"2":{"380":1}}],["vendor",{"2":{"380":6}}],["verified",{"2":{"370":1}}],["verificationgaslimit",{"0":{"177":1},"1":{"178":1},"2":{"177":1}}],["verification",{"2":{"13":1,"171":1,"175":1,"177":1}}],["version",{"0":{"268":1},"1":{"269":1},"2":{"268":1,"361":1,"381":1}}],["versions",{"2":{"11":1}}],["v2",{"2":{"334":2,"380":2}}],["video",{"2":{"356":1}}],["viem",{"0":{"357":1},"2":{"320":1,"326":1,"356":2,"357":1,"358":4,"359":1,"360":1,"362":1,"370":1}}],["visit",{"2":{"57":1,"65":1}}],["void",{"2":{"52":1,"54":1,"59":1,"61":1}}],["variable",{"2":{"366":1}}],["various",{"2":{"10":1,"11":1,"276":1,"361":1}}],["validated",{"2":{"175":1}}],["valid",{"2":{"60":1,"76":1,"333":1}}],["values",{"2":{"90":1,"100":1,"112":2,"122":1,"292":1}}],["value",{"0":{"258":1},"1":{"259":1},"2":{"22":1,"24":2,"27":1,"29":1,"52":1,"53":1,"59":1,"99":1,"119":1,"122":1,"123":1,"124":1,"129":1,"139":1,"153":1,"236":1,"252":1,"258":2,"287":1,"308":1,"362":4}}],["0n",{"2":{"258":1,"287":1}}],["0xsigner",{"2":{"375":1}}],["0xeoa",{"2":{"374":1}}],["0xeb466342c4d449bc9f53a865d5cb90586f405215wrapped",{"2":{"355":1}}],["0xd83c88db3a6ca4a32fff1603b0f7ddce01f5f727bsc",{"2":{"355":1}}],["0xdac17f958d2ee523a2206206994597c13d831ec7optimism10eth0x0000000000000000000000000000000000000000wrapped",{"2":{"355":1}}],["0x4268b8f0b87b6eae5d897996e6b845ddbd99adf3usdc",{"2":{"355":1}}],["0x4200000000000000000000000000000000000006chainlink",{"2":{"355":2}}],["0x9702230a8ea53601f5cd2dc00fdbc13d4df4a8c7usdt",{"2":{"355":1}}],["0x94b008aa00579c1307b0ef2c499ad98a8ce58e58sepolia11155111eth0x0000000000000000000000000000000000000000chainlink",{"2":{"355":1}}],["0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095cusdc",{"2":{"355":1}}],["0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6eusdc",{"2":{"355":1}}],["0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7chainlink",{"2":{"355":2}}],["0xb1d4538b4571d411f07960ef2838ce337fe1e80eavalanche",{"2":{"355":1}}],["0xb0897686c545045afc77cf20ec7a532e3120e0f1usdc0x3c499c542cef5e3811e1192ce70d8cc03d5c3359usdc",{"2":{"355":1}}],["0xfactory",{"2":{"380":1}}],["0xf610a9dfb7c89644979b4a0f27063e9e7d7cda32bnb",{"2":{"355":1}}],["0xf55bec9cafdbe8730f096aa55dad6d22d44099dfwrapped",{"2":{"355":1}}],["0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9arbitrum",{"2":{"355":1}}],["0xf97f4df75117a78c1a5a0dbb814af92458539fb4usd",{"2":{"355":1}}],["0x548c6944cba02b9d1c0570102c89de64d258d3acusd",{"2":{"355":1}}],["0x5947bb275c521040051d82396192181b413227a3usd",{"2":{"355":1}}],["0x5979d7b546e38e414f7e9822514be443a4800529tether",{"2":{"355":1}}],["0x514910771af9ca656af840dff83e8264ecf986causd",{"2":{"355":1}}],["0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664tether",{"2":{"355":1}}],["0xaf88d065e77c8cc2239327c5edb3a432268e5831wrapped",{"2":{"355":1}}],["0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48wrapped",{"2":{"355":1}}],["0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",{"2":{"288":1,"294":2,"334":1}}],["0x88fb150bdc53a65fe94dea0c9ba0a6daf8c6e196usdc0x833589fcd6edb6e08f4c7c32d4f71b54bda02913usdc",{"2":{"355":1}}],["0x8ac76a51cc950d9822d68b83fe1ad97b32cd580dusdc",{"2":{"355":1}}],["0x82af49447d8a07e3bd95bd0d56f35241523fbab1chainlink",{"2":{"355":1}}],["0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",{"2":{"283":1,"308":1}}],["0xc1cba3fcea344f92d9239c08c0568f6f2f0ee452",{"2":{"355":1}}],["0xc7198437980c041c805a1edcba50c1ce5db95118scroll534352eth0x0000000000000000000000000000000000000000wrapped",{"2":{"355":1}}],["0xc2132d05d31c914a87c6611c10748aeb04b58e8farbitrum",{"2":{"355":1}}],["0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2chainlink",{"2":{"355":1}}],["0x3a58a54c066fdc0f2d55fc9c89f0415c92ebf3c4tether",{"2":{"355":1}}],["0x350a791bfc2c21f9ed5d10980dad2e2638ffa7f6usd",{"2":{"355":1}}],["0x1f32b1c2345538c0c6f582fcb022739c4a194ebbtether",{"2":{"355":1}}],["0x1234567890123456789012345678901234567890",{"2":{"308":1}}],["0x779877a7b0d9e8603169ddbd7836e478b4624789polygon137matic0x0000000000000000000000000000000000000000wrapped",{"2":{"355":1}}],["0x7f5c764cbc14f9669b88837ca1490cca17c31607wrapped",{"2":{"355":1}}],["0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0tether",{"2":{"355":1}}],["0x742d35cc6634c0532925a3b844bc454e4438f44e",{"2":{"63":1,"288":1,"339":1,"351":1}}],["0x06efdbff2a14a7c8e15944d1f4a48f9f95f663a4tether",{"2":{"355":1}}],["0x063b3184a74c510b5c6f5bbd122cc19689e0c706",{"2":{"334":1}}],["0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270chainlink",{"2":{"355":1}}],["0x0b2c639c533813f4aa9d7837caf62653d097ff85usd",{"2":{"355":1}}],["0x0b2c639c533813f4aa9d7837caf62653d097ff85",{"2":{"283":1,"294":2,"308":1,"334":1}}],["0x2791bca1f2de4661ed88a30c99a7a9449aa84174staked",{"2":{"355":1}}],["0x2791bca1f2de4661ed88a30c99a7a9449aa84174",{"2":{"294":2}}],["0x",{"2":{"24":5,"29":3,"44":1,"99":2,"108":1,"283":1,"294":1,"361":2,"382":3}}],["0",{"2":{"9":1,"118":1,"129":1,"130":1,"355":5,"360":1,"362":1,"366":1,"381":1}}],["go",{"2":{"372":1}}],["guide",{"0":{"356":1},"1":{"357":1,"358":1,"359":1,"360":1,"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1}}],["guaranteeing",{"2":{"219":1}}],["guarantees",{"2":{"4":1,"240":1}}],["giving",{"2":{"370":1}}],["given",{"2":{"119":1,"279":1,"330":1,"345":1,"376":1}}],["github",{"2":{"354":1}}],["general",{"2":{"361":1,"362":1}}],["generation",{"2":{"117":1}}],["generating",{"2":{"112":1}}],["generateprivatekey",{"2":{"358":2}}],["generated",{"2":{"126":1,"219":1,"234":1,"236":1,"240":1,"304":1}}],["generates",{"2":{"117":1,"128":1,"290":1}}],["generate",{"2":{"112":1,"304":1}}],["getacrosssuggestedfees",{"2":{"376":1}}],["getaddresses",{"2":{"359":1}}],["getunifiederc20balance",{"2":{"363":1,"384":1}}],["getunifiedbalance",{"0":{"330":1},"1":{"331":1,"332":1,"333":1,"334":1,"335":1},"2":{"290":1,"294":1,"295":1,"330":1,"334":2,"382":1}}],["getroutes",{"2":{"362":2}}],["get",{"2":{"99":1,"356":1,"360":1,"362":1,"365":4,"369":1,"370":2,"376":2}}],["getpaymenttoken",{"2":{"74":1}}],["getmultichainaccount",{"0":{"85":1},"1":{"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1},"2":{"74":1,"85":1,"89":1}}],["getquote",{"0":{"93":1},"1":{"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1},"2":{"50":1,"82":1,"83":1,"93":1,"99":1,"110":1,"369":1}}],["getting",{"0":{"369":1},"2":{"43":1,"360":1,"369":1}}],["gt",{"2":{"43":1,"45":1,"48":1,"67":1,"69":1,"76":1,"78":1,"85":1,"86":1,"93":1,"95":1,"103":1,"105":1,"108":2,"279":1,"281":1,"304":1,"306":1,"308":1,"320":1,"321":1,"330":1,"332":1,"347":1,"349":1,"360":3,"361":5,"362":2,"366":1,"375":1,"376":2,"380":1,"382":3}}],["g",{"2":{"11":1,"49":1,"68":1,"258":1,"286":1,"320":1,"334":2,"347":1,"358":1,"365":1,"376":1,"380":5}}],["gaslimit",{"0":{"254":1},"1":{"255":1},"2":{"24":2,"29":1,"99":1,"254":1,"287":1,"308":1,"362":4,"366":1,"376":1}}],["gas",{"0":{"8":1,"266":1,"355":1,"385":1},"1":{"267":1},"2":{"8":1,"16":1,"21":1,"133":1,"135":1,"141":1,"147":1,"159":1,"163":1,"165":1,"171":1,"177":1,"193":1,"254":2,"266":1,"287":1,"367":1,"376":1}}],["would",{"2":{"361":1}}],["works",{"2":{"356":2,"361":1,"364":1,"367":1}}],["work",{"2":{"328":2,"352":2,"382":1}}],["working",{"2":{"297":1,"310":1,"315":2,"361":1,"382":1}}],["wrong",{"2":{"370":1}}],["write",{"2":{"360":1,"362":1}}],["wrapped",{"2":{"355":2}}],["wbnb",{"2":{"276":1,"355":1}}],["wmatic",{"2":{"276":1,"355":1}}],["we",{"2":{"356":1,"359":1,"360":1,"362":2,"364":3,"366":1,"367":3,"368":3,"382":1}}],["web3",{"2":{"320":1,"328":1,"347":1,"352":1,"356":1,"359":1}}],["wei",{"2":{"286":1}}],["weth",{"2":{"276":1,"355":5}}],["well",{"2":{"31":1,"93":1,"361":1,"376":1}}],["wavax",{"2":{"276":1,"355":1}}],["way",{"2":{"234":1,"310":1,"315":1,"360":1,"379":1,"382":2}}],["was",{"2":{"189":1,"197":1,"365":1,"375":1,"379":1}}],["wants",{"2":{"145":1,"369":1}}],["want",{"2":{"122":1,"364":1}}],["waiting",{"2":{"189":1}}],["wait",{"2":{"109":1}}],["wallet",{"2":{"10":2,"22":1,"27":1,"59":2,"60":2,"69":1,"73":1,"77":1,"82":1,"91":1,"320":3,"321":2,"325":4,"327":1,"328":1,"348":1,"352":1,"358":1}}],["wallets",{"2":{"6":1,"12":1,"250":1}}],["wsteth",{"2":{"68":1,"276":1,"355":5}}],["why",{"2":{"379":1}}],["while",{"2":{"356":1,"365":1,"380":3}}],["which",{"2":{"22":1,"23":1,"27":1,"67":1,"68":1,"135":1,"137":1,"149":1,"151":1,"185":1,"191":1,"195":1,"203":1,"205":1,"209":1,"246":1,"290":1,"331":1,"358":2,"361":6,"362":5,"364":1,"366":1,"369":1,"375":1,"376":4,"378":1,"379":2,"380":1,"381":1,"382":3,"384":1}}],["what",{"2":{"356":1,"362":1,"365":2}}],["who",{"2":{"122":1}}],["where",{"2":{"22":1,"27":1,"69":1,"135":1,"149":1,"189":1,"234":1,"286":1,"291":1,"292":1,"365":1,"370":1}}],["whenever",{"2":{"362":1}}],["when",{"2":{"9":1,"16":1,"21":1,"26":1,"53":1,"126":1,"238":1,"285":1,"297":1,"310":1,"315":1,"356":1,"358":2,"360":1,"361":1,"365":1,"369":1,"379":1,"380":1}}],["wise",{"2":{"379":1}}],["wishes",{"2":{"382":1}}],["wish",{"2":{"44":1,"68":1,"360":1}}],["widely",{"2":{"361":1}}],["window",{"2":{"324":1,"358":1}}],["willing",{"2":{"163":1,"165":1,"369":1}}],["will",{"2":{"21":1,"22":1,"26":1,"27":1,"52":1,"56":1,"59":1,"64":1,"69":1,"109":1,"135":2,"141":1,"149":1,"173":1,"191":1,"195":1,"203":1,"207":2,"246":1,"285":1,"286":1,"308":1,"328":1,"348":1,"352":1,"356":3,"358":1,"359":1,"360":2,"361":1,"362":2,"365":2,"366":3,"367":1,"369":1,"370":1,"372":2,"376":4,"380":1}}],["without",{"2":{"328":1,"352":1,"370":1}}],["within",{"2":{"112":1,"201":1,"248":1,"370":1,"382":1}}],["with",{"2":{"1":1,"6":1,"10":1,"13":1,"22":1,"27":1,"31":2,"44":2,"52":1,"53":1,"59":1,"76":1,"85":1,"88":1,"109":2,"139":1,"141":1,"153":1,"236":1,"250":1,"258":1,"285":1,"297":2,"310":1,"315":2,"320":1,"321":1,"328":1,"336":2,"339":1,"347":2,"348":2,"352":1,"356":2,"359":2,"360":2,"361":3,"363":1,"365":1,"366":1,"367":1,"370":1,"371":1,"375":1,"376":1,"378":2,"381":2,"382":4,"383":1}}],["npm",{"2":{"357":1,"362":1}}],["n",{"2":{"348":1}}],["null",{"2":{"281":1,"307":1}}],["numbers",{"2":{"282":1,"333":1}}],["number",{"2":{"22":1,"27":1,"68":1,"104":1,"118":1,"135":1,"149":1,"203":1,"205":1,"209":1,"279":1,"286":1,"291":1,"298":1,"300":1,"332":1,"343":1,"361":1,"363":1,"365":1,"376":2,"383":1,"384":3}}],["namechain",{"2":{"355":1}}],["namedparameters",{"2":{"279":1,"280":1}}],["native",{"2":{"258":1}}],["non",{"2":{"358":1}}],["nonce",{"0":{"167":1},"1":{"168":1},"2":{"167":1}}],["now",{"2":{"288":1,"339":1,"362":1,"366":1,"367":1,"368":1}}],["no",{"2":{"169":1,"307":1,"321":1,"324":1,"325":1,"333":1}}],["notably",{"2":{"379":1}}],["nothing",{"2":{"361":1}}],["not",{"2":{"56":1,"64":1,"71":1,"283":1,"307":1,"328":1,"350":1,"352":1,"361":2,"365":1}}],["notes",{"0":{"383":1}}],["note",{"0":{"56":1,"64":1,"73":1,"90":1,"100":1,"328":1,"352":1},"2":{"360":1,"366":1,"383":1}}],["nodeurl",{"0":{"274":1},"2":{"274":1,"339":1,"359":1,"374":1,"375":1}}],["node",{"0":{"223":1,"244":1,"262":1},"1":{"224":1,"245":1,"263":1},"2":{"7":4,"13":1,"16":1,"23":1,"28":1,"88":1,"93":1,"98":1,"143":1,"179":1,"183":1,"189":1,"217":1,"219":1,"223":2,"238":2,"240":1,"244":2,"248":1,"262":1,"328":1,"339":1,"352":1,"359":1,"369":2,"374":1,"375":1,"378":1,"380":2}}],["nodes",{"0":{"7":1},"2":{"4":1,"7":1,"8":1,"9":1,"12":1,"360":1,"367":1,"370":2}}],["needs",{"2":{"362":1,"376":1}}],["need",{"2":{"90":1,"359":1,"360":2,"362":1,"368":1,"376":2}}],["needed",{"2":{"16":1,"362":1}}],["necessary",{"2":{"44":1,"77":1,"83":1,"133":1,"287":1,"304":1,"367":1}}],["new",{"0":{"18":1,"33":1,"114":1},"1":{"19":1,"34":1,"35":1,"36":1,"115":1},"2":{"18":1,"33":1,"53":1,"60":1,"114":1,"336":1,"338":1}}],["neutral",{"2":{"10":1}}],["network",{"2":{"4":1,"47":1,"76":1,"80":1,"133":1,"135":1,"149":2,"185":1,"203":1,"286":1,"288":1,"324":1,"343":1,"368":1,"369":1,"372":1}}],["networks",{"2":{"1":1,"4":1,"13":1,"85":1,"232":1,"234":1,"276":1,"287":1,"377":1,"379":1}}],["20",{"2":{"365":2}}],["2000n",{"2":{"24":1}}],["21000",{"2":{"283":1}}],["21000n",{"2":{"24":1,"29":1,"99":1}}],["213",{"2":{"210":1}}],["211",{"2":{"208":1}}],["214",{"2":{"206":1}}],["212",{"2":{"204":1}}],["24",{"2":{"154":1}}],["235",{"2":{"259":1}}],["234",{"2":{"257":1}}],["237",{"2":{"255":1}}],["236",{"2":{"253":1}}],["23",{"2":{"152":1}}],["272",{"2":{"267":1}}],["27",{"2":{"150":1}}],["266",{"2":{"269":1}}],["268",{"2":{"265":1}}],["267",{"2":{"263":1}}],["26",{"2":{"148":1}}],["254",{"2":{"284":1}}],["250000",{"2":{"376":1}}],["25000",{"2":{"283":1}}],["259",{"2":{"237":1}}],["258",{"2":{"235":1}}],["25",{"2":{"146":1}}],["282",{"2":{"102":1}}],["227",{"2":{"75":1}}],["2",{"0":{"4":1},"2":{"120":2,"355":5,"381":1}}],["rpcs",{"2":{"360":2}}],["rpc",{"0":{"360":1},"2":{"360":4,"361":1,"363":1,"381":2}}],["rpcurls",{"2":{"360":1}}],["rpcurl",{"2":{"283":2,"331":1,"334":2,"360":1,"381":1}}],["rabby",{"2":{"358":1}}],["rawtx",{"2":{"288":2,"362":2,"366":2,"376":1}}],["rawtransactions",{"2":{"297":1}}],["rawtransaction",{"0":{"250":1},"1":{"251":1,"252":1,"253":1,"254":1,"255":1,"256":1,"257":1,"258":1,"259":1},"2":{"22":1,"27":1,"207":1,"250":1,"285":2,"287":2,"298":2,"301":1,"306":1,"308":1,"315":3,"316":2,"317":2}}],["raw",{"2":{"207":1,"250":1,"370":2}}],["routesteps",{"2":{"362":2}}],["routes",{"2":{"362":1,"365":1}}],["routesrequest",{"2":{"362":4}}],["route",{"2":{"179":1,"217":1,"362":5,"365":1}}],["routing",{"2":{"8":1}}],["root",{"2":{"3":1,"378":1}}],["review",{"2":{"354":1}}],["revert",{"2":{"9":1}}],["rejects",{"2":{"350":1}}],["reason",{"2":{"340":1}}],["read",{"2":{"381":2}}],["readonly",{"0":{"360":1}}],["readable",{"2":{"310":1}}],["ready",{"2":{"287":1,"338":1}}],["receive",{"2":{"364":1,"372":1,"376":2}}],["receivedondesitnation",{"2":{"376":1}}],["receivedondestination",{"2":{"362":1,"376":1}}],["received",{"2":{"99":1,"362":1,"372":1,"376":1}}],["receiving",{"2":{"286":1}}],["recipient",{"2":{"256":1,"285":1,"286":1,"288":1,"366":1,"376":1}}],["rely",{"2":{"376":1}}],["relevant",{"2":{"189":1}}],["related",{"2":{"133":1}}],["reference",{"2":{"181":1,"359":1}}],["refunds",{"0":{"8":1},"2":{"8":1}}],["require",{"2":{"362":1}}],["requirement",{"2":{"361":1}}],["requires",{"0":{"326":1},"2":{"328":1,"347":1,"352":1}}],["required",{"2":{"93":1,"95":1,"201":1,"356":1,"365":2,"376":3}}],["requestaddresses",{"2":{"359":1}}],["request",{"2":{"350":1}}],["requested",{"2":{"281":1}}],["requests",{"2":{"7":1,"238":1}}],["retrieves",{"2":{"85":1,"320":1}}],["retrieving",{"2":{"71":1}}],["returned",{"2":{"77":1,"179":1,"183":1,"217":1,"238":1,"244":1}}],["return",{"2":{"44":1,"48":1,"49":1,"108":1,"308":1,"360":1,"361":1,"362":3,"376":1}}],["returns",{"0":{"19":1,"23":1,"28":1,"35":1,"45":1,"54":1,"61":1,"69":1,"78":1,"86":1,"95":1,"105":1,"115":1,"119":1,"124":1,"129":1,"281":1,"287":1,"292":1,"299":1,"306":1,"312":1,"317":1,"321":1,"332":1,"338":1,"344":1,"349":1},"1":{"300":1,"301":1},"2":{"310":1,"315":1,"320":1,"336":1,"376":1}}],["re",{"2":{"49":1,"81":1,"109":1,"356":1,"361":1,"365":1,"370":4}}],["remarks",{"0":{"49":1,"81":1,"109":1,"126":1}}],["rest",{"2":{"381":1,"382":1}}],["result",{"2":{"48":2,"52":1,"59":1,"108":1,"179":1,"334":3,"362":2,"371":1,"372":2}}],["resolved",{"2":{"345":1}}],["resolvetoken",{"0":{"342":1},"1":{"343":1,"344":1,"345":1,"346":1},"2":{"342":1}}],["resolver",{"2":{"277":1,"346":1}}],["resolve",{"2":{"74":1,"343":1}}],["resolves",{"2":{"45":1,"69":1,"78":1,"86":1,"95":1,"105":1,"281":1,"306":1,"321":1,"332":1,"342":1,"344":1,"349":1}}],["resolving",{"2":{"44":1}}],["responsible",{"2":{"223":1}}],["responsibilities",{"2":{"7":1}}],["response",{"2":{"76":2,"77":2,"105":1,"179":1,"217":1,"376":1}}],["responding",{"2":{"7":1}}],["reduced",{"2":{"12":1}}],["replay",{"2":{"167":1}}],["represent",{"2":{"361":2}}],["represents",{"2":{"133":1,"143":1,"145":1,"155":1,"179":1,"183":1,"201":1,"217":1,"232":1,"238":1,"248":1,"250":1,"276":1}}],["representing",{"2":{"23":1,"68":1,"129":1,"187":1,"230":1}}],["represented",{"2":{"3":1,"254":1,"258":1}}],["reputation",{"2":{"7":1}}],["uint256",{"2":{"380":1}}],["ubalance",{"2":{"363":4,"365":3}}],["url",{"2":{"359":1,"360":2,"374":1,"375":1,"380":1}}],["utf",{"2":{"348":1}}],["utility",{"2":{"31":1,"112":1,"380":1,"381":1}}],["utilizes",{"2":{"8":1}}],["utils",{"2":{"25":1,"30":1,"121":1,"127":1,"131":1,"277":1,"284":1,"289":2,"296":1,"303":1,"309":1,"314":1,"319":1,"329":2,"335":1,"346":1,"353":2}}],["up",{"2":{"376":1}}],["upperboundtime",{"0":{"209":1},"1":{"210":1},"2":{"209":1}}],["upperboundtimestamp",{"0":{"195":1},"1":{"196":1},"2":{"195":1}}],["updated",{"2":{"85":1}}],["updates",{"2":{"52":1,"59":1}}],["unable",{"2":{"370":1}}],["underlying",{"2":{"360":1}}],["understand",{"2":{"56":1,"64":1}}],["undefined",{"2":{"320":1,"321":2,"324":1}}],["unchanged",{"2":{"310":1,"312":1,"315":1,"317":1}}],["unifiedbalance",{"2":{"365":1,"384":2}}],["unifiedbalanceresult",{"2":{"330":1,"332":1}}],["unified",{"0":{"363":1,"384":1},"2":{"234":1,"284":1,"296":1,"309":1,"334":2,"335":1,"360":1,"363":2,"364":1,"381":2,"382":1,"384":1}}],["units",{"2":{"363":1}}],["unit",{"2":{"108":1,"286":1}}],["uniquely",{"2":{"378":1}}],["uniquesaltvalue123",{"2":{"55":1}}],["uniquesalt",{"2":{"24":1,"29":1}}],["unique",{"2":{"3":1,"22":1,"27":1,"53":2,"112":1,"126":1,"139":2,"153":2,"167":1,"181":1,"199":1,"221":1,"234":1,"236":2,"242":1}}],["unexpectedly",{"2":{"254":1}}],["unexpected",{"2":{"71":1}}],["usually",{"2":{"376":1}}],["us",{"2":{"362":1}}],["usage",{"2":{"361":1,"366":1}}],["usign",{"2":{"358":1}}],["using",{"2":{"49":1,"77":1,"81":2,"85":1,"109":1,"126":1,"279":1,"295":1,"320":1,"336":1,"347":1,"360":1,"361":3,"363":1,"364":1,"370":2,"375":1,"376":1}}],["usd0x55d398326f99059ff775485246999027b3197955base8453eth0x0000000000000000000000000000000000000000wrapped",{"2":{"355":1}}],["usd",{"2":{"276":1,"355":6,"369":1}}],["usdt",{"2":{"276":1,"355":6}}],["usdcmapping",{"2":{"294":3,"334":2}}],["usdc",{"2":{"68":1,"72":1,"276":1,"283":2,"288":3,"294":1,"308":2,"334":2,"355":6,"361":4,"365":8,"367":2,"382":3}}],["uses",{"2":{"73":1,"90":1,"100":1,"304":1,"347":1,"358":1,"362":1,"379":2}}],["used",{"2":{"12":1,"22":1,"27":1,"31":2,"50":2,"52":2,"53":1,"59":2,"60":1,"67":1,"68":1,"69":3,"74":2,"83":1,"85":1,"86":1,"89":1,"101":2,"110":3,"112":1,"139":1,"141":1,"147":1,"153":1,"181":1,"225":1,"236":1,"246":1,"254":1,"276":1,"285":1,"290":1,"294":1,"297":1,"356":1,"358":1,"363":1,"375":2,"376":1,"379":1}}],["use",{"0":{"11":1},"2":{"90":1,"122":2,"258":1,"281":1,"313":1,"338":1,"339":1,"356":1,"358":1,"359":2,"360":2,"361":2,"363":1,"367":2,"370":1,"374":1,"375":1,"382":1}}],["userophash",{"0":{"199":1},"1":{"200":1},"2":{"199":1}}],["useroperations",{"2":{"248":1}}],["useroperation",{"2":{"155":1,"175":1,"197":1,"201":1}}],["userop",{"0":{"197":1},"1":{"198":1},"2":{"8":1,"21":2,"23":1,"24":1,"26":2,"28":1,"29":1,"149":1,"185":1,"189":1,"191":1,"193":1,"195":1,"197":1,"199":1,"248":1}}],["userops",{"0":{"230":1,"248":1},"1":{"231":1,"249":1},"2":{"3":1,"9":1,"16":2,"230":1,"248":1}}],["users",{"2":{"1":1,"11":1,"12":1,"122":1}}],["user",{"2":{"1":1,"7":2,"16":1,"100":1,"133":1,"141":1,"143":2,"145":1,"155":1,"183":1,"230":1,"238":2,"250":1,"324":1,"347":1,"348":1,"350":1,"362":1,"363":1,"370":2,"371":1,"376":3,"378":1}}],["mcusdt",{"2":{"361":1}}],["mcusdc",{"2":{"361":3,"382":2}}],["mcclient",{"2":{"360":2,"361":3,"363":1,"365":1,"381":1}}],["might",{"2":{"359":1,"361":1,"362":1}}],["minimal",{"2":{"201":1}}],["mysuperuniquevalue",{"2":{"125":2}}],["most",{"2":{"364":1,"365":1,"376":1}}],["mostly",{"2":{"234":1}}],["model",{"2":{"179":1,"183":1,"201":1,"217":1,"232":1,"238":1}}],["module",{"0":{"6":1},"2":{"6":1}}],["more",{"2":{"49":1,"57":1,"65":1,"310":1,"315":1,"364":1,"365":1,"367":2,"377":2}}],["mutliple",{"2":{"382":1}}],["mutlichainaccount",{"2":{"376":1}}],["mutltichainaccount",{"2":{"379":1}}],["much",{"2":{"362":1,"366":1,"369":1,"376":3}}],["musdc",{"2":{"361":1,"363":1,"365":1}}],["must",{"2":{"49":1,"81":1,"359":1,"361":1,"363":1,"381":1,"382":1,"383":1}}],["multi",{"2":{"101":1}}],["multichainclient",{"2":{"361":1,"381":2,"384":1}}],["multichaintokenmapping",{"2":{"361":2,"382":1,"383":1}}],["multichainaddress",{"2":{"308":3}}],["multichainaccount",{"0":{"232":1},"1":{"233":1,"234":1,"235":1,"236":1,"237":1},"2":{"85":1,"86":2,"232":1,"379":1}}],["multichain",{"0":{"8":1,"360":1,"379":1,"381":1,"382":1},"1":{"380":1,"383":1},"2":{"13":1,"52":2,"59":2,"67":1,"69":1,"71":1,"74":1,"85":2,"86":1,"89":1,"103":1,"137":1,"139":1,"143":1,"151":1,"153":1,"189":1,"232":1,"234":1,"360":1,"361":3,"363":2,"381":2,"382":3}}],["multiple",{"0":{"361":1},"2":{"1":1,"3":1,"4":1,"8":1,"16":1,"21":2,"85":1,"103":1,"117":1,"181":1,"207":1,"232":1,"238":1,"279":1,"290":1,"294":1,"304":2,"330":1,"359":1,"361":1,"379":2,"382":1,"384":1}}],["made",{"2":{"382":1}}],["maps",{"2":{"382":1}}],["map",{"0":{"361":1},"2":{"360":1,"361":2,"362":1,"382":1}}],["mappings",{"2":{"361":2}}],["mapping",{"0":{"382":1},"1":{"383":1},"2":{"290":1,"294":3,"295":1,"331":2,"333":1,"334":2,"361":3,"381":1,"382":1}}],["major",{"2":{"356":1}}],["maxgaslimit",{"0":{"193":1},"1":{"194":1},"2":{"193":1}}],["maxpriorityfeepergas",{"0":{"165":1},"1":{"166":1},"2":{"165":1}}],["maxfeepergas",{"0":{"163":1},"1":{"164":1},"2":{"163":1}}],["maximum",{"2":{"147":1,"163":1,"165":1,"193":1,"254":1}}],["managed",{"2":{"126":1,"167":1}}],["mainnet",{"2":{"108":1,"234":1,"283":2,"288":1,"294":1,"308":1,"334":2}}],["main",{"2":{"103":1,"157":1,"159":1,"356":1,"379":1}}],["maintain",{"2":{"12":1,"126":1}}],["make",{"2":{"73":1,"173":1,"370":1}}],["making",{"2":{"49":1}}],["matic",{"2":{"68":1,"276":1,"355":2}}],["may",{"2":{"47":1,"62":1,"71":1,"80":1,"81":1,"88":1,"98":1,"107":1,"189":1}}],["masteraddress",{"0":{"40":1,"273":1},"1":{"41":1},"2":{"40":1,"59":1,"100":1,"273":1,"339":1}}],["master",{"2":{"22":1,"27":1,"59":2,"60":1,"64":1,"69":1,"73":1,"91":1,"354":1}}],["masterwallet",{"0":{"137":1,"151":1},"1":{"138":1,"152":1},"2":{"21":1,"22":2,"26":2,"27":2,"69":1,"85":2,"90":1,"137":1,"139":1,"151":1,"153":1}}],["means",{"2":{"379":1}}],["messages",{"2":{"358":1}}],["message",{"2":{"308":1,"334":1,"347":2,"348":4,"351":3,"370":4}}],["met",{"2":{"189":1}}],["method",{"2":{"21":1,"26":1,"49":1,"77":1,"81":2,"109":1,"117":1,"122":1,"347":1,"361":1}}],["methods",{"0":{"20":1,"42":1,"116":1},"1":{"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"108":1,"109":1,"110":1,"111":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1},"2":{"16":1,"112":1}}],["metamask",{"2":{"320":1,"328":1,"347":1,"352":1,"358":1}}],["meta",{"0":{"8":1},"2":{"8":1}}],["merkle",{"2":{"3":2,"81":1,"377":1,"378":1}}],["pieces",{"2":{"380":1}}],["plugigs",{"2":{"362":1}}],["plugins",{"0":{"376":1},"2":{"376":1}}],["plugin",{"0":{"362":1},"2":{"362":4,"376":1}}],["please",{"2":{"360":1,"361":1}}],["placeholder",{"2":{"308":1}}],["pdf",{"2":{"354":2}}],["put",{"2":{"379":1}}],["purposes",{"2":{"364":1}}],["purpose",{"2":{"310":1,"315":1}}],["public",{"0":{"381":1},"2":{"13":1,"360":2,"381":1}}],["peg",{"2":{"355":1}}],["pending",{"2":{"189":2}}],["pertaining",{"2":{"356":1}}],["personal",{"2":{"347":1}}],["personalsign",{"2":{"49":1,"77":1,"81":1,"82":1}}],["permission",{"2":{"324":1}}],["per",{"2":{"163":1,"165":1,"361":1,"363":1,"383":1}}],["performing",{"2":{"376":1}}],["performed",{"2":{"187":1,"201":1}}],["perform",{"2":{"145":1,"376":1}}],["performs",{"2":{"103":1}}],["pass",{"2":{"365":1,"370":1,"371":1,"376":1,"382":1}}],["passing",{"2":{"360":1,"361":1}}],["passed",{"2":{"157":1}}],["pashov",{"2":{"354":2}}],["parseunits",{"2":{"365":1}}],["particular",{"2":{"248":1}}],["particularly",{"2":{"189":1}}],["part",{"2":{"147":1,"189":1,"230":1,"248":1,"250":1,"369":1}}],["paramout",{"2":{"362":1}}],["params",{"2":{"103":1,"104":9,"285":1,"286":5,"330":1,"331":4}}],["parameter",{"2":{"52":1,"59":1}}],["parameters",{"0":{"22":1,"27":1,"34":1,"44":1,"53":1,"60":1,"68":1,"77":1,"94":1,"104":1,"118":1,"123":1,"280":1,"286":1,"291":1,"298":1,"305":1,"311":1,"316":1,"331":1,"337":1,"343":1,"348":1},"2":{"85":1,"104":1,"183":1,"236":1,"286":1,"331":1,"365":1,"380":1}}],["pay",{"2":{"141":1,"163":1,"165":1}}],["paymentdata",{"2":{"72":2}}],["payments",{"2":{"67":1,"68":1,"133":1,"276":1}}],["paymenttokensymbol",{"0":{"276":1},"1":{"277":1},"2":{"68":1,"276":1,"343":1}}],["paymenttoken",{"2":{"67":1,"68":1}}],["paymentinfo",{"0":{"215":1,"225":1,"246":1},"1":{"216":1,"226":1,"227":1,"228":1,"229":1,"247":1},"2":{"48":1,"99":1,"215":1,"225":1,"246":1}}],["payment",{"2":{"8":1,"44":1,"48":1,"67":2,"68":1,"69":2,"71":1,"72":1,"93":1,"94":1,"95":1,"133":1,"135":2,"225":1,"246":2,"276":1,"342":1,"343":1,"367":1,"378":1}}],["paymasteranddata",{"0":{"169":1},"1":{"170":1},"2":{"169":1}}],["paymasters",{"2":{"8":1}}],["paymaster",{"0":{"8":1},"2":{"169":3}}],["paid",{"2":{"67":1,"376":1}}],["price",{"2":{"370":1}}],["primarily",{"2":{"362":1,"382":1}}],["primary",{"2":{"320":1,"321":1}}],["prior",{"2":{"189":1}}],["priority",{"2":{"163":1,"165":1}}],["privatekey",{"2":{"358":2}}],["privatekeytoaccount",{"2":{"358":2}}],["private",{"2":{"44":1,"358":1,"360":1,"378":1}}],["presented",{"2":{"363":1}}],["prepared",{"2":{"362":1,"373":1}}],["prepares",{"2":{"21":1,"26":1,"67":1}}],["predefined",{"2":{"287":1}}],["pre",{"2":{"171":1}}],["preverificationgas",{"0":{"171":1},"1":{"172":1},"2":{"171":1}}],["prevent",{"2":{"167":1,"254":1}}],["previously",{"2":{"56":1,"64":1}}],["prefixed",{"2":{"44":1,"348":1}}],["prompt",{"2":{"370":1}}],["promise",{"2":{"43":1,"44":1,"45":2,"67":1,"69":2,"76":1,"78":2,"85":1,"86":2,"93":1,"95":2,"103":1,"105":2,"279":1,"281":2,"304":1,"306":2,"320":1,"321":2,"330":1,"332":2,"344":1,"347":1,"349":2}}],["production",{"2":{"360":3,"361":1}}],["produces",{"2":{"53":1}}],["projects",{"2":{"360":1}}],["project",{"2":{"360":3,"361":3,"365":1,"373":1}}],["procedure",{"2":{"376":2}}],["proceeding",{"2":{"109":1}}],["processing",{"2":{"133":1}}],["processes",{"2":{"93":1}}],["processed",{"2":{"16":1,"69":1,"135":1,"183":1}}],["process",{"2":{"7":1,"43":1,"67":1,"71":1,"236":1,"350":1,"369":2}}],["properly",{"2":{"49":1}}],["properties",{"0":{"37":1,"134":1,"144":1,"156":1,"180":1,"184":1,"202":1,"212":1,"218":1,"233":1,"239":1,"251":1,"261":1},"1":{"38":1,"39":1,"40":1,"41":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"181":1,"182":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1,"199":1,"200":1,"203":1,"204":1,"205":1,"206":1,"207":1,"208":1,"209":1,"210":1,"213":1,"214":1,"215":1,"216":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1,"227":1,"228":1,"229":1,"230":1,"231":1,"234":1,"235":1,"236":1,"237":1,"240":1,"241":1,"242":1,"243":1,"244":1,"245":1,"246":1,"247":1,"248":1,"249":1,"252":1,"253":1,"254":1,"255":1,"256":1,"257":1,"258":1,"259":1,"262":1,"263":1,"264":1,"265":1,"266":1,"267":1,"268":1,"269":1},"2":{"232":1}}],["provider",{"2":{"109":1,"320":2,"324":1,"328":1,"347":2,"350":1,"352":1,"359":4,"361":1,"376":1}}],["providers",{"2":{"10":1,"356":1,"359":2}}],["provided",{"2":{"26":1,"62":1,"124":1,"293":1,"304":1,"336":2,"340":1,"361":2,"381":1}}],["provide",{"2":{"7":1,"297":1,"310":1,"315":1,"359":1,"361":1,"382":1}}],["provides",{"2":{"4":1,"16":1,"112":1,"122":1,"183":1,"217":1,"238":1,"362":1}}],["protocol",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1},"2":{"1":1,"31":2,"67":1,"362":1,"377":1}}],["pool",{"2":{"376":2}}],["post",{"2":{"376":1}}],["possible",{"2":{"283":1,"365":1}}],["possibly",{"2":{"3":1}}],["point",{"2":{"336":1}}],["polygon",{"2":{"294":1,"358":1,"360":2,"365":2,"380":1}}],["potential",{"2":{"13":1}}],["phases",{"2":{"47":1,"107":1}}],["phase",{"2":{"13":1}}],["1n",{"2":{"375":1}}],["12",{"2":{"365":2}}],["127",{"2":{"289":1}}],["15000",{"2":{"308":1}}],["154",{"2":{"182":1}}],["141",{"2":{"249":1}}],["140",{"2":{"247":1}}],["130",{"2":{"335":1}}],["139",{"2":{"245":1}}],["137",{"2":{"243":1,"294":2}}],["138",{"2":{"241":1}}],["136",{"2":{"58":1}}],["188",{"2":{"231":1}}],["184",{"2":{"229":1}}],["182",{"2":{"224":1}}],["181",{"2":{"222":1}}],["183",{"2":{"220":1}}],["19",{"2":{"314":1}}],["194",{"2":{"216":1}}],["193",{"2":{"214":1}}],["191",{"2":{"83":2}}],["111",{"2":{"196":1}}],["113",{"2":{"194":1}}],["110",{"2":{"192":1}}],["114",{"2":{"190":1,"346":1}}],["115",{"2":{"188":1}}],["112",{"2":{"186":1}}],["17",{"2":{"131":1}}],["176",{"2":{"92":1}}],["10",{"2":{"283":3,"294":2,"308":2,"334":2,"365":1}}],["109",{"2":{"200":1}}],["108",{"2":{"198":1}}],["100000n",{"2":{"366":1}}],["1000000",{"2":{"108":1,"288":1}}],["1000n",{"2":{"24":1,"29":1,"99":1}}],["107",{"2":{"66":1}}],["1",{"0":{"3":1},"2":{"24":1,"29":1,"99":1,"108":1,"288":2,"294":2,"302":1,"308":1,"334":2,"365":1}}],["knows",{"2":{"382":1}}],["know",{"2":{"376":1}}],["keep",{"2":{"375":1}}],["keys",{"2":{"292":1}}],["key",{"0":{"2":1},"1":{"3":1,"4":1},"2":{"44":1,"334":2,"358":1,"378":1,"380":1}}],["klasternodehost",{"2":{"358":1,"359":1}}],["klastersdk",{"0":{"31":1,"33":1},"1":{"32":1,"33":1,"34":2,"35":2,"36":2,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"108":1,"109":1,"110":1,"111":1},"2":{"31":1,"33":2,"35":1,"48":1,"55":2,"63":2,"72":2,"82":2,"89":2,"99":1,"108":1,"112":1,"336":2,"338":2,"339":2}}],["klaster",{"0":{"0":1,"7":1,"14":1,"354":1,"357":1,"359":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"108":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1,"181":1,"182":1,"183":1,"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1,"199":1,"200":1,"201":1,"202":1,"203":1,"204":1,"205":1,"206":1,"207":1,"208":1,"209":1,"210":1,"211":1,"212":1,"213":1,"214":1,"215":1,"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1,"227":1,"228":1,"229":1,"230":1,"231":1,"232":1,"233":1,"234":1,"235":1,"236":1,"237":1,"238":1,"239":1,"240":1,"241":1,"242":1,"243":1,"244":1,"245":1,"246":1,"247":1,"248":1,"249":1,"250":1,"251":1,"252":1,"253":1,"254":1,"255":1,"256":1,"257":1,"258":1,"259":1,"260":1,"261":1,"262":1,"263":1,"264":1,"265":1,"266":1,"267":1,"268":1,"269":1,"270":1,"271":1,"272":1,"273":1,"274":1,"275":1,"276":1,"277":1,"278":1,"279":1,"280":1,"281":1,"282":1,"283":1,"284":1,"285":1,"286":1,"287":1,"288":1,"289":1,"290":1,"291":1,"292":1,"293":1,"294":1,"295":1,"296":1,"297":1,"298":1,"299":1,"300":1,"301":1,"302":1,"303":1,"304":1,"305":1,"306":1,"307":1,"308":1,"309":1,"310":1,"311":1,"312":1,"313":1,"314":1,"315":1,"316":1,"317":1,"318":1,"319":1,"320":1,"321":1,"322":1,"323":1,"324":1,"325":1,"326":1,"327":1,"328":1,"329":1,"330":1,"331":1,"332":1,"333":1,"334":1,"335":1,"336":1,"337":1,"338":1,"339":1,"340":1,"341":1,"342":1,"343":1,"344":1,"345":1,"346":1,"347":1,"348":1,"349":1,"350":1,"351":1,"352":1,"353":1},"2":{"1":1,"4":1,"16":2,"23":1,"28":1,"31":1,"55":1,"63":1,"67":1,"72":1,"76":1,"89":1,"93":1,"109":2,"110":1,"112":1,"133":2,"137":1,"139":1,"143":2,"151":1,"153":1,"179":1,"181":1,"183":2,"189":2,"201":2,"217":1,"219":1,"221":1,"223":1,"232":1,"238":1,"240":1,"242":1,"244":1,"271":1,"290":1,"294":1,"297":2,"310":2,"315":2,"334":1,"336":2,"337":1,"339":3,"354":1,"356":3,"357":1,"358":1,"359":4,"360":1,"361":6,"362":8,"363":2,"364":2,"365":2,"366":1,"367":3,"368":1,"369":2,"370":1,"371":1,"372":3,"374":1,"375":2,"376":4,"377":1,"378":1,"379":5,"380":2,"381":2,"382":2}}],["duplicate",{"2":{"293":1}}],["during",{"2":{"47":1,"71":1,"85":1,"107":1,"157":1,"175":1,"189":1,"350":1}}],["double",{"2":{"361":1}}],["doing",{"2":{"360":1}}],["do",{"2":{"360":1,"365":1,"376":1}}],["done",{"2":{"366":1}}],["don",{"2":{"258":1,"360":2,"365":1,"379":1}}],["documentation",{"2":{"109":2,"110":1,"295":1,"327":1,"359":1,"361":1}}],["doesn",{"2":{"234":1}}],["does",{"2":{"56":1,"64":1,"365":1,"379":1}}],["data",{"0":{"252":1},"1":{"253":1},"2":{"24":2,"29":1,"67":1,"72":1,"83":1,"99":1,"133":1,"145":1,"157":1,"169":1,"252":2,"287":2,"304":3,"305":1,"306":1,"308":3,"362":12,"366":1,"370":1,"376":8,"379":1,"380":3}}],["dapp",{"2":{"7":1,"10":1}}],["dapps",{"2":{"1":1,"11":2}}],["difference",{"2":{"379":1}}],["differently",{"2":{"380":1}}],["different",{"2":{"1":1,"52":1,"59":1,"81":1,"90":1,"112":1,"230":1,"276":1,"282":2,"287":1,"333":2}}],["directly",{"2":{"370":1}}],["discouraged",{"2":{"360":1}}],["diminishing",{"2":{"9":1}}],["demonstrates",{"2":{"364":1}}],["demo",{"2":{"356":1,"363":1,"364":1}}],["denies",{"2":{"324":1}}],["decimals",{"2":{"279":1,"282":2,"288":1,"332":2,"333":1,"334":2,"361":1,"363":3,"365":1,"383":1,"384":2}}],["declaration",{"0":{"226":1,"272":1},"1":{"273":1,"274":1}}],["decentralization",{"2":{"13":1}}],["destchaintokenaddress",{"2":{"366":1}}],["destinationchainconst",{"2":{"365":1}}],["destinationchainid",{"2":{"308":2,"362":2,"365":1,"367":1,"376":1}}],["destinationtoken",{"2":{"362":2,"376":1}}],["destination",{"2":{"189":1,"304":1,"362":1,"364":1,"365":2,"366":3,"367":2,"376":4}}],["designed",{"2":{"328":1,"352":1}}],["desired",{"0":{"366":1},"2":{"103":1,"365":5,"382":1}}],["described",{"2":{"201":1}}],["deposit",{"2":{"364":1}}],["deployment",{"2":{"361":5,"382":3,"383":1}}],["deployments",{"0":{"361":1},"2":{"361":3,"379":2,"383":1}}],["deploying",{"2":{"360":1,"379":1}}],["deployed",{"2":{"161":2,"291":1,"361":2,"379":2}}],["depending",{"2":{"359":1}}],["depend",{"2":{"189":1}}],["dependent",{"2":{"3":1}}],["definining",{"2":{"380":1}}],["definitely",{"2":{"364":1}}],["define",{"2":{"378":1}}],["defines",{"2":{"133":1,"143":1,"155":1,"201":1,"232":1,"250":1}}],["defined",{"0":{"25":1,"30":1,"36":1,"39":1,"41":1,"51":1,"58":1,"66":1,"75":1,"84":1,"92":1,"102":1,"111":1,"121":1,"127":1,"131":1,"136":1,"138":1,"140":1,"142":1,"146":1,"148":1,"150":1,"152":1,"154":1,"158":1,"160":1,"162":1,"164":1,"166":1,"168":1,"170":1,"172":1,"174":1,"176":1,"178":1,"182":1,"186":1,"188":1,"190":1,"192":1,"194":1,"196":1,"198":1,"200":1,"204":1,"206":1,"208":1,"210":1,"214":1,"216":1,"220":1,"222":1,"224":1,"229":1,"231":1,"235":1,"237":1,"241":1,"243":1,"245":1,"247":1,"249":1,"253":1,"255":1,"257":1,"259":1,"263":1,"265":1,"267":1,"269":1,"275":1,"277":1,"284":1,"289":1,"296":1,"303":1,"309":1,"314":1,"319":1,"329":1,"335":1,"341":1,"346":1,"353":1},"2":{"3":1,"378":1,"380":1}}],["default",{"2":{"81":1,"128":1,"359":1,"360":2,"361":2}}],["derivations",{"2":{"56":1,"64":1}}],["derivation",{"2":{"53":1,"60":1,"86":1,"88":1}}],["deriving",{"0":{"380":1},"2":{"52":2,"59":2,"69":1,"112":1}}],["derive",{"2":{"22":1,"27":1,"52":1,"59":1,"90":1,"375":1,"379":2,"380":2}}],["derived",{"2":{"22":1,"26":1,"27":1,"56":1,"64":1,"85":3,"86":1,"89":1,"137":1,"151":1,"380":4}}],["detected",{"2":{"324":1}}],["deterministic",{"2":{"117":1}}],["deterministically",{"2":{"52":1,"59":1,"85":1,"236":1}}],["determines",{"2":{"135":1,"149":1}}],["determine",{"2":{"9":1,"380":1}}],["detailed",{"2":{"110":1,"183":1,"217":1,"238":1}}],["details",{"0":{"378":1},"2":{"44":1,"95":1,"109":1,"217":1,"230":1,"372":1}}],["development",{"2":{"356":1}}],["developments",{"0":{"13":1}}],["developers",{"2":{"10":1}}],["field",{"2":{"369":1}}],["finally",{"2":{"364":1}}],["finace",{"2":{"355":1}}],["filter",{"2":{"361":1}}],["fit",{"2":{"361":1}}],["first",{"2":{"128":1,"129":1,"320":1,"362":1,"369":1,"373":1,"378":1,"382":1}}],["firstaccountsalt",{"2":{"130":2}}],["firstaccount",{"0":{"128":1},"1":{"129":1,"130":1,"131":1},"2":{"128":1,"130":1}}],["fluent",{"2":{"310":1,"315":1}}],["flexibility",{"2":{"122":1}}],["flow",{"2":{"43":1}}],["flows",{"2":{"11":1,"356":1,"364":1}}],["following",{"2":{"333":1,"359":1,"365":1,"374":1,"375":1,"382":1}}],["followed",{"2":{"169":1}}],["found",{"2":{"71":1,"283":1,"307":1,"325":1,"333":1}}],["format",{"2":{"143":1,"155":1,"349":1}}],["for",{"0":{"371":1},"2":{"6":2,"7":1,"8":2,"10":1,"12":2,"13":1,"16":3,"21":1,"22":1,"23":1,"26":1,"28":1,"31":2,"44":1,"49":1,"52":2,"53":1,"57":1,"59":2,"60":1,"65":1,"67":1,"68":1,"69":2,"77":1,"83":1,"85":1,"86":1,"93":2,"100":1,"101":2,"104":2,"109":2,"110":2,"112":3,"117":3,"122":2,"128":1,"133":2,"135":1,"139":1,"141":1,"143":2,"147":2,"153":1,"155":1,"159":1,"161":1,"171":1,"177":1,"181":2,"189":2,"193":1,"199":1,"201":2,"221":1,"223":1,"225":2,"234":1,"238":1,"242":1,"246":1,"250":1,"252":2,"254":1,"256":2,"258":1,"271":1,"276":1,"279":1,"286":2,"287":3,"290":1,"294":1,"295":2,"297":1,"298":1,"304":3,"305":1,"306":1,"307":1,"308":1,"310":2,"315":2,"330":1,"331":2,"332":1,"334":1,"336":1,"337":1,"338":1,"340":1,"345":1,"359":1,"360":2,"361":1,"362":3,"363":2,"364":3,"365":5,"368":1,"369":2,"373":1,"376":1,"379":1,"380":4,"384":1}}],["feasible",{"2":{"307":1}}],["feetx",{"2":{"367":1,"369":1}}],["fee",{"2":{"67":1,"72":1,"163":2,"165":1,"367":1,"376":1,"378":1}}],["feesresponse",{"2":{"376":5}}],["fees",{"2":{"7":1,"67":1,"133":1,"135":1,"141":1,"365":1,"376":1}}],["fetched",{"2":{"384":2}}],["fetches",{"2":{"43":1,"85":1,"93":1,"320":1,"330":1}}],["fetchinjectedaddress",{"0":{"320":1},"1":{"321":1,"322":1,"323":1,"324":1,"325":1,"326":1,"327":1,"328":1,"329":1},"2":{"320":1,"323":1,"325":1}}],["fetching",{"0":{"363":1},"2":{"43":1,"47":1,"98":1,"107":1,"282":1,"325":1,"334":1,"381":1}}],["fetch",{"2":{"50":1,"74":1,"89":1,"110":1,"331":1,"334":1,"359":2}}],["factorydata",{"2":{"380":1}}],["factory",{"2":{"380":2}}],["fact",{"2":{"376":1}}],["facilitating",{"2":{"1":1}}],["fastest",{"2":{"362":2}}],["fails",{"2":{"80":1,"88":1,"340":1}}],["failed",{"2":{"48":1,"72":1,"82":1,"89":1,"99":1,"189":3}}],["failures",{"2":{"47":1}}],["failing",{"2":{"12":1}}],["fund",{"2":{"285":1}}],["funds",{"2":{"12":1,"365":1,"376":1}}],["functionalities",{"2":{"381":1}}],["functionality",{"2":{"360":1}}],["functionname",{"2":{"366":1}}],["functions",{"0":{"278":1},"1":{"279":1,"280":1,"281":1,"282":1,"283":1,"284":1,"285":1,"286":1,"287":1,"288":1,"289":1,"290":1,"291":1,"292":1,"293":1,"294":1,"295":1,"296":1,"297":1,"298":1,"299":1,"300":1,"301":1,"302":1,"303":1,"304":1,"305":1,"306":1,"307":1,"308":1,"309":1,"310":1,"311":1,"312":1,"313":1,"314":1,"315":1,"316":1,"317":1,"318":1,"319":1,"320":1,"321":1,"322":1,"323":1,"324":1,"325":1,"326":1,"327":1,"328":1,"329":1,"330":1,"331":1,"332":1,"333":1,"334":1,"335":1,"336":1,"337":1,"338":1,"339":1,"340":1,"341":1,"342":1,"343":1,"344":1,"345":1,"346":1,"347":1,"348":1,"349":1,"350":1,"351":1,"352":1,"353":1},"2":{"31":1,"112":1,"250":1,"290":1,"294":1}}],["function",{"0":{"323":1},"2":{"21":1,"26":1,"43":1,"44":2,"49":2,"52":1,"59":1,"67":2,"73":2,"76":1,"85":1,"90":2,"93":1,"100":1,"103":1,"109":3,"145":1,"207":2,"252":1,"285":1,"287":2,"290":1,"297":1,"304":2,"310":1,"315":1,"320":1,"328":1,"331":1,"336":1,"347":1,"352":1,"361":1,"362":3,"364":1,"365":4,"366":1,"367":2,"371":1,"372":1,"374":1,"375":1,"376":1,"381":2,"382":1,"384":1}}],["future",{"0":{"13":1},"2":{"56":1,"64":1}}],["full",{"2":{"12":1,"93":1,"94":1,"95":1,"155":1,"197":1}}],["fully",{"2":{"7":1,"201":1,"364":1}}],["fromamount",{"2":{"362":1}}],["fromtokenaddress",{"2":{"362":1}}],["fromchainid",{"2":{"362":1}}],["from",{"2":{"11":1,"22":1,"26":1,"27":1,"67":1,"74":1,"77":1,"85":1,"93":1,"98":1,"100":1,"118":1,"137":1,"151":1,"281":1,"285":2,"290":1,"294":1,"304":2,"320":1,"334":1,"339":1,"358":4,"359":1,"362":3,"363":1,"364":1,"365":4,"369":1,"370":2,"372":1,"376":2,"380":3,"381":1,"382":1}}],["framework",{"2":{"1":1,"362":1,"382":1}}],["bico",{"2":{"380":1}}],["biconomy",{"0":{"374":1},"2":{"359":2,"374":1,"380":2}}],["bit",{"2":{"364":1}}],["binance",{"2":{"355":1}}],["bigint",{"2":{"104":1,"108":1,"254":2,"258":2,"283":3,"286":1,"288":1,"308":2,"332":1,"362":3,"376":4,"384":2}}],["blob",{"2":{"354":1}}],["blockchains",{"0":{"361":1},"2":{"103":1,"234":1,"330":1,"360":1,"361":4,"365":2,"367":1,"379":3,"381":1,"382":1,"384":3}}],["blockchain",{"2":{"1":1,"4":1,"22":1,"27":1,"85":1,"109":1,"135":2,"145":1,"147":1,"149":1,"185":1,"191":1,"195":1,"203":1,"232":1,"234":1,"248":1,"276":1,"286":1,"298":1,"343":1,"363":1,"376":1,"377":1,"379":1,"380":1,"382":1}}],["brdging",{"2":{"376":1}}],["brdiging",{"2":{"362":1}}],["bridign",{"2":{"376":1}}],["bridgepluginresult",{"2":{"376":3}}],["bridgepluginparams",{"2":{"376":3}}],["bridgeplugin",{"2":{"362":3,"365":1,"376":5}}],["bridged",{"2":{"355":4}}],["bridge",{"2":{"308":2,"364":1,"365":2,"376":2}}],["bridges",{"2":{"10":1,"12":1,"376":1}}],["bridgingops",{"2":{"365":1,"366":2,"367":2}}],["bridgingdata",{"2":{"308":2}}],["bridging",{"0":{"362":1,"364":1,"365":1,"376":1},"1":{"365":1,"366":1,"367":1},"2":{"189":1,"304":3,"305":1,"306":1,"308":1,"360":1,"362":6,"364":1,"365":3,"366":1,"367":1,"376":11,"381":1}}],["breakdown",{"2":{"363":3,"384":2}}],["browsers",{"2":{"328":1,"352":1}}],["browser",{"2":{"328":2,"347":2,"352":2,"358":2}}],["broadcasted",{"2":{"287":1}}],["bsc",{"2":{"276":1}}],["bnb",{"2":{"276":1,"355":1}}],["background",{"2":{"376":1}}],["base",{"2":{"283":2,"308":1,"358":1,"360":4,"361":1,"363":1,"365":5,"380":1,"381":2,"382":1}}],["based",{"2":{"7":1,"76":1,"342":1}}],["balanceondestination",{"2":{"366":1}}],["balances",{"2":{"282":1,"330":1,"331":1,"363":1,"382":1,"384":1}}],["balance",{"0":{"363":1,"384":1},"2":{"281":1,"284":1,"294":1,"296":1,"309":1,"332":1,"334":3,"335":1,"360":1,"363":4,"365":5,"381":2,"384":5}}],["batchtx",{"2":{"362":2,"376":1}}],["batchexecute",{"2":{"207":1,"250":1}}],["batch",{"2":{"16":2,"21":1,"22":1,"23":1}}],["built",{"2":{"379":1,"381":1}}],["builditx",{"2":{"367":2}}],["building",{"0":{"356":1},"1":{"357":1,"358":1,"359":1,"360":1,"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1},"2":{"10":1,"286":1,"369":1}}],["buildrpcinfo",{"2":{"358":1,"360":3,"381":2}}],["buildmultichainreadonlyclient",{"2":{"358":1,"360":3,"381":2}}],["build",{"2":{"356":1,"360":1,"361":1,"382":1}}],["builds",{"2":{"279":1,"285":1}}],["buildtokenmapping",{"2":{"361":2,"382":1}}],["buildtokenstrategyoptions",{"2":{"280":1}}],["buildtokenstrategy",{"0":{"279":1},"1":{"280":1,"281":1,"282":1,"283":1,"284":1},"2":{"279":1,"283":1,"304":1}}],["buildtransfererc20fromeoatx",{"0":{"285":1},"1":{"286":1,"287":1,"288":1,"289":1},"2":{"110":1,"285":1,"288":1}}],["but",{"2":{"362":1,"364":1}}],["bundler",{"2":{"171":1}}],["bundle",{"2":{"7":2}}],["bundles",{"0":{"3":1},"2":{"1":1,"6":1,"7":1,"12":1}}],["beyond",{"2":{"379":1}}],["beating",{"2":{"377":1}}],["betotalreceivedondestination",{"2":{"366":1}}],["between",{"2":{"1":1,"12":1,"16":1,"379":1}}],["behave",{"2":{"234":1}}],["been",{"2":{"161":1,"181":1,"183":1,"364":1,"372":1}}],["becomes",{"2":{"76":1}}],["before",{"2":{"73":1,"90":1,"109":1,"189":1,"348":1,"361":1,"376":1}}],["being",{"2":{"68":1,"234":1,"370":1}}],["be",{"2":{"12":1,"16":1,"21":1,"22":2,"23":1,"27":2,"28":1,"48":1,"53":2,"60":2,"67":1,"69":2,"81":1,"85":1,"109":1,"126":1,"135":1,"141":1,"145":1,"147":1,"149":2,"157":1,"175":1,"181":1,"189":1,"191":1,"195":1,"201":1,"203":1,"205":1,"207":3,"209":1,"238":1,"246":1,"250":1,"252":1,"254":1,"256":1,"258":1,"276":1,"286":1,"287":1,"288":1,"294":1,"308":1,"311":1,"316":1,"345":1,"348":3,"356":1,"358":1,"360":1,"361":4,"362":2,"363":2,"364":1,"365":3,"366":2,"376":6,"377":1,"378":1,"380":1,"381":1,"382":1,"384":1}}],["best",{"2":{"7":1,"356":1,"361":1}}],["bytes32",{"2":{"380":2}}],["by",{"2":{"3":1,"9":1,"16":1,"43":1,"77":1,"143":1,"167":1,"169":1,"179":1,"183":2,"195":1,"209":1,"217":1,"219":1,"238":1,"240":1,"250":1,"276":1,"304":1,"308":1,"360":2,"361":4,"364":1,"367":1,"370":2,"372":1,"376":4,"378":2,"381":2,"384":1}}],["ii",{"2":{"362":1}}],["io",{"2":{"283":1,"356":1,"372":1}}],["i",{"2":{"117":1,"118":1,"324":1,"357":1,"362":2}}],["import",{"2":{"294":1,"334":1,"339":1,"358":4,"362":3}}],["important",{"2":{"81":1,"361":1}}],["implications",{"2":{"56":1,"64":1}}],["implementing",{"2":{"109":1,"110":1}}],["implement",{"2":{"48":1,"108":2,"308":1}}],["implementation",{"2":{"13":1,"308":2,"356":1}}],["implements",{"2":{"8":1}}],["irreversible",{"2":{"76":1}}],["if",{"2":{"62":1,"71":1,"80":3,"81":1,"88":2,"90":1,"97":1,"98":1,"161":2,"169":1,"207":2,"281":1,"282":1,"283":1,"287":1,"288":1,"293":1,"307":2,"321":3,"324":1,"325":1,"333":2,"340":2,"345":1,"350":3,"356":1,"361":2,"362":3,"365":1,"366":2,"370":3,"375":1}}],["idsupported",{"2":{"355":1}}],["ids",{"2":{"290":1,"292":1,"293":1,"331":1}}],["idential",{"2":{"361":1}}],["identity",{"2":{"234":1}}],["identifier",{"2":{"167":1,"181":1,"185":1,"199":1,"203":1,"221":1,"242":1}}],["id",{"2":{"22":1,"27":1,"69":1,"72":1,"135":1,"149":1,"286":1,"291":1,"297":1,"298":1,"299":1,"342":1,"343":1,"345":1,"360":3,"361":2,"365":1,"367":1,"380":2,"381":2,"382":3}}],["inforation",{"2":{"376":1}}],["information",{"2":{"31":1,"44":1,"48":1,"57":1,"65":1,"67":1,"77":1,"93":2,"94":1,"95":1,"110":1,"133":1,"183":1,"217":1,"225":1,"238":1,"246":1,"344":1,"359":1,"375":2,"376":2,"380":1}}],["info",{"2":{"361":2}}],["injected",{"2":{"320":2,"324":1,"328":1,"347":2,"348":1,"350":1,"352":1,"358":1,"359":1}}],["insufficient",{"2":{"281":1}}],["instructs",{"2":{"367":1}}],["instructions",{"2":{"104":3}}],["install",{"0":{"357":1},"2":{"362":1}}],["instances",{"2":{"361":1,"363":1,"379":1}}],["instance",{"2":{"31":1,"52":1,"55":1,"59":1,"63":1,"72":1,"89":1,"100":1,"336":1,"338":1,"376":1}}],["instead",{"2":{"313":1,"361":1}}],["init",{"2":{"380":1}}],["initdata",{"2":{"379":1}}],["initklaster",{"0":{"336":1},"1":{"337":1,"338":1,"339":1,"340":1,"341":1},"2":{"336":1,"339":2,"358":1,"359":1,"374":1,"375":1}}],["initial",{"2":{"375":1}}],["initialize",{"0":{"359":1,"360":1},"2":{"340":1,"359":1,"360":1,"374":1,"375":1}}],["initializes",{"2":{"336":1}}],["initialized",{"2":{"55":1,"63":1,"72":1,"89":1}}],["initializing",{"0":{"374":1,"375":1},"2":{"271":1,"359":1}}],["initialization",{"2":{"85":1,"161":1}}],["initiating",{"2":{"179":1}}],["initcode",{"0":{"161":1},"1":{"162":1},"2":{"161":1}}],["input",{"2":{"143":1,"252":1,"293":1,"310":1,"315":1,"362":1}}],["invalid",{"2":{"62":1,"71":1,"80":1,"81":1,"282":1,"340":1}}],["indicating",{"2":{"307":1}}],["individually",{"2":{"21":1}}],["index",{"2":{"36":1,"39":1,"41":1,"51":1,"58":1,"66":1,"75":1,"84":1,"92":1,"102":1,"111":1,"117":1,"118":1,"119":1,"275":1,"341":1}}],["includes",{"2":{"287":1,"361":1}}],["include",{"2":{"44":1,"47":1}}],["including",{"2":{"13":1,"73":1,"163":1,"225":1,"238":1,"246":1}}],["incentivized",{"2":{"9":1}}],["in",{"0":{"25":1,"30":1,"36":1,"39":1,"41":1,"51":1,"58":1,"66":1,"75":1,"84":1,"92":1,"102":1,"111":1,"121":1,"127":1,"131":1,"136":1,"138":1,"140":1,"142":1,"146":1,"148":1,"150":1,"152":1,"154":1,"158":1,"160":1,"162":1,"164":1,"166":1,"168":1,"170":1,"172":1,"174":1,"176":1,"178":1,"182":1,"186":1,"188":1,"190":1,"192":1,"194":1,"196":1,"198":1,"200":1,"204":1,"206":1,"208":1,"210":1,"214":1,"216":1,"220":1,"222":1,"224":1,"229":1,"231":1,"235":1,"237":1,"241":1,"243":1,"245":1,"247":1,"249":1,"253":1,"255":1,"257":1,"259":1,"263":1,"265":1,"267":1,"269":1,"275":1,"277":1,"284":1,"289":1,"296":1,"303":1,"309":1,"314":1,"319":1,"329":1,"335":1,"341":1,"346":1,"353":1},"2":{"8":1,"16":1,"22":1,"27":1,"52":2,"56":1,"59":2,"64":1,"69":1,"97":1,"108":1,"109":1,"112":1,"133":1,"139":1,"153":1,"155":2,"234":1,"236":1,"250":1,"286":1,"290":1,"293":1,"294":1,"297":2,"306":1,"307":1,"308":1,"310":1,"315":1,"328":2,"333":2,"347":1,"348":1,"349":1,"352":2,"356":3,"358":2,"359":1,"360":3,"361":5,"362":2,"363":5,"364":1,"365":2,"367":1,"368":1,"369":2,"372":1,"376":4,"377":1,"378":3,"381":1,"382":3}}],["int",{"2":{"385":1}}],["introduction",{"2":{"356":1}}],["introduces",{"2":{"1":1,"362":1}}],["into",{"2":{"16":1,"21":1,"26":1,"297":1,"360":1,"361":1,"370":1,"376":1}}],["intelligent",{"2":{"365":1}}],["intelligently",{"2":{"16":1}}],["intentionally",{"2":{"364":1}}],["intent",{"2":{"13":1}}],["integration",{"0":{"10":1},"2":{"13":1}}],["internal",{"2":{"379":1}}],["internally",{"2":{"50":2,"74":2,"110":3}}],["intersection",{"2":{"361":1}}],["intersecttokenandclients",{"2":{"361":2}}],["intersects",{"2":{"361":1}}],["interested",{"2":{"356":1}}],["interacting",{"2":{"381":1,"382":1}}],["interactions",{"2":{"252":1,"256":1}}],["interaction",{"2":{"1":1}}],["interact",{"2":{"339":1,"360":1}}],["interface",{"2":{"133":1,"143":1,"155":1,"179":1,"183":1,"201":1,"217":1,"232":1,"238":1,"250":1}}],["interfaces",{"0":{"132":1},"1":{"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1,"181":1,"182":1,"183":1,"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1,"199":1,"200":1,"201":1,"202":1,"203":1,"204":1,"205":1,"206":1,"207":1,"208":1,"209":1,"210":1,"211":1,"212":1,"213":1,"214":1,"215":1,"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1,"227":1,"228":1,"229":1,"230":1,"231":1,"232":1,"233":1,"234":1,"235":1,"236":1,"237":1,"238":1,"239":1,"240":1,"241":1,"242":1,"243":1,"244":1,"245":1,"246":1,"247":1,"248":1,"249":1,"250":1,"251":1,"252":1,"253":1,"254":1,"255":1,"256":1,"257":1,"258":1,"259":1,"260":1,"261":1,"262":1,"263":1,"264":1,"265":1,"266":1,"267":1,"268":1,"269":1},"2":{"382":1}}],["interchaintransaction",{"0":{"211":1},"1":{"212":1,"213":1,"214":1,"215":1,"216":1},"2":{"44":1,"93":1,"94":1,"104":1,"310":3,"311":2,"312":2,"313":1,"376":1,"377":1}}],["interchain",{"0":{"3":1,"367":1,"368":1,"377":1},"1":{"369":1,"370":1,"371":1,"372":1,"378":1},"2":{"43":1,"44":1,"76":1,"93":1,"94":1,"103":1,"104":1,"108":1,"179":1,"181":2,"201":2,"217":1,"219":1,"221":2,"223":1,"230":1,"238":1,"240":1,"242":2,"244":1,"248":2,"367":1,"369":1,"373":1,"378":2}}],["its",{"2":{"310":2,"315":2,"342":1,"365":1}}],["itself",{"2":{"167":1,"244":1}}],["itxstatusresponse",{"0":{"217":1},"1":{"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1,"227":1,"228":1,"229":1,"230":1,"231":1},"2":{"217":1}}],["itxuserop",{"0":{"201":1},"1":{"202":1,"203":1,"204":1,"205":1,"206":1,"207":1,"208":1,"209":1,"210":1},"2":{"201":1,"213":1}}],["itxhash",{"0":{"181":1,"221":1,"242":1},"1":{"182":1,"222":1,"243":1},"2":{"48":1,"82":1,"181":1,"221":1,"242":1,"370":1,"372":1}}],["itx",{"0":{"3":1,"6":1,"9":1,"371":1},"2":{"3":1,"4":1,"6":1,"7":7,"12":1,"43":4,"44":3,"45":1,"48":3,"49":1,"76":2,"77":1,"78":1,"82":1,"93":3,"94":1,"95":1,"97":1,"99":2,"103":1,"104":1,"105":1,"108":1,"109":2,"110":2,"181":1,"221":1,"303":1,"310":1,"311":1,"313":2,"314":1,"319":1,"367":6,"368":1,"369":3,"370":3,"371":1,"372":2,"377":1,"378":6}}],["it",{"2":{"1":1,"16":1,"31":1,"43":1,"49":1,"56":1,"64":1,"67":1,"161":1,"285":1,"290":1,"297":1,"304":1,"320":1,"328":1,"336":1,"347":1,"352":1,"356":1,"359":1,"361":1,"362":3,"364":2,"365":1,"368":1,"376":2,"377":1,"378":1,"380":1,"382":2,"384":1}}],["issue",{"2":{"71":1,"88":1,"282":1,"324":1,"350":1}}],["issues",{"2":{"47":1,"80":1,"98":1}}],["is",{"2":{"1":1,"22":1,"27":1,"52":1,"55":1,"59":1,"62":1,"63":1,"67":1,"71":1,"72":1,"80":1,"85":2,"89":1,"97":1,"103":1,"137":1,"147":1,"149":1,"151":1,"161":1,"163":1,"165":1,"185":1,"189":3,"223":1,"234":1,"236":1,"281":1,"290":1,"291":1,"307":2,"308":1,"310":1,"315":1,"321":1,"324":2,"325":1,"328":1,"340":1,"349":1,"350":1,"352":1,"360":5,"361":4,"362":4,"363":1,"364":3,"365":5,"366":2,"367":1,"369":3,"370":2,"375":1,"376":3,"377":1,"378":3,"379":2,"380":3,"381":2,"382":4,"383":1,"384":1}}],["shown",{"2":{"361":1}}],["should",{"2":{"44":2,"53":1,"60":1,"67":1,"94":1,"109":2,"126":1,"209":1,"291":1,"348":1,"361":2,"363":1,"375":1}}],["syntactic",{"2":{"297":1,"310":1,"315":1}}],["system",{"2":{"276":1,"379":1,"382":1}}],["symbols",{"2":{"276":1}}],["symbol",{"2":{"68":1,"276":1,"342":2,"343":2}}],["scroll",{"2":{"358":1,"360":2,"365":2}}],["scenarios",{"2":{"112":1}}],["scheme",{"2":{"81":1}}],["smallest",{"2":{"108":1,"286":1}}],["smart",{"0":{"6":1,"379":1},"1":{"380":1},"2":{"6":2,"16":1,"21":2,"22":2,"26":2,"27":2,"52":3,"53":1,"59":3,"85":1,"86":1,"103":2,"104":1,"112":1,"137":1,"139":1,"143":1,"151":1,"153":1,"173":1,"207":2,"232":2,"234":1,"250":1,"285":2,"355":1,"359":1,"365":1,"370":1,"376":1,"379":1,"380":1}}],["s",{"2":{"71":1,"88":1,"169":1,"181":1,"203":1,"205":1,"209":1,"236":1,"282":1,"285":1,"286":1,"297":1,"324":1,"347":1,"350":1,"361":1,"362":2,"365":2,"367":1,"377":1,"378":1,"379":1,"380":1}}],["spokepooladdress",{"2":{"376":2}}],["sponsoring",{"2":{"169":1}}],["spent",{"2":{"382":1}}],["speed",{"2":{"362":1}}],["spec",{"2":{"189":1}}],["specification",{"2":{"147":1,"290":1}}],["specifically",{"2":{"143":1}}],["specific",{"2":{"109":1,"117":1,"135":1,"248":1,"304":1,"308":1,"380":1}}],["specified",{"2":{"67":1,"71":1,"109":1,"155":1,"207":1,"285":1,"291":1}}],["specify",{"2":{"67":1}}],["spanning",{"2":{"3":1}}],["safe",{"0":{"375":1},"2":{"375":2,"380":3}}],["satisfied",{"2":{"370":1}}],["satisfy",{"2":{"279":1,"281":1}}],["say",{"2":{"364":1}}],["same",{"2":{"139":1,"153":1,"234":1,"279":1,"312":1,"317":1,"361":2,"363":1,"379":1,"380":1,"383":1}}],["savings",{"2":{"21":1}}],["salts",{"2":{"112":1,"117":1,"126":2}}],["saltutil",{"0":{"112":1,"114":1},"1":{"113":1,"114":1,"115":2,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1},"2":{"114":2,"115":1,"120":1,"125":1,"130":1}}],["salt",{"0":{"139":1,"153":1,"236":1},"1":{"140":1,"154":1,"237":1},"2":{"21":1,"22":1,"26":2,"27":1,"52":4,"53":2,"56":2,"59":1,"69":2,"85":2,"86":2,"89":2,"90":1,"91":1,"112":2,"117":1,"119":1,"121":1,"122":3,"123":2,"124":1,"127":1,"128":1,"129":1,"131":1,"139":1,"153":1,"236":2,"380":2}}],["solutions",{"2":{"379":1}}],["solved",{"2":{"364":1}}],["solver",{"2":{"13":1}}],["so",{"2":{"361":1,"364":2,"370":1,"376":1}}],["sourcetoken",{"2":{"362":2,"376":2}}],["sourcechainid",{"2":{"308":1,"362":3,"376":2}}],["source",{"2":{"304":1,"367":1}}],["some",{"2":{"81":1,"234":1,"361":1,"364":1,"365":3,"376":2,"379":1,"383":1,"384":1}}],["socialfi",{"2":{"11":1}}],["slashing",{"2":{"13":1}}],["slashed",{"2":{"12":1}}],["store",{"2":{"361":1}}],["style",{"2":{"297":1,"310":1,"315":1}}],["stmatic",{"2":{"276":1,"355":1}}],["step",{"2":{"177":1,"362":3,"369":1}}],["steps",{"2":{"43":1,"49":1,"356":1,"362":1,"364":1,"365":2,"367":3,"376":1}}],["strategies",{"2":{"381":1}}],["strategyitem",{"2":{"281":1}}],["strategy",{"2":{"279":1,"283":4,"304":2,"306":1,"307":3,"308":3}}],["straightforward",{"2":{"49":1}}],["structure",{"2":{"67":1,"133":1,"143":1,"155":1,"201":1,"250":1}}],["streamlines",{"2":{"43":1}}],["streamlined",{"2":{"11":1}}],["string",{"2":{"22":2,"27":2,"38":1,"40":1,"44":2,"53":2,"60":1,"68":1,"77":1,"104":1,"117":1,"119":1,"122":1,"123":1,"124":1,"128":1,"129":1,"137":1,"139":1,"141":1,"145":1,"147":1,"151":1,"153":1,"157":1,"159":1,"161":2,"163":1,"165":1,"167":1,"169":2,"171":1,"173":1,"175":1,"177":1,"181":1,"185":1,"187":1,"191":1,"193":1,"195":1,"199":1,"219":1,"221":1,"223":1,"227":1,"228":1,"234":1,"236":1,"240":1,"242":1,"244":1,"252":2,"256":1,"262":1,"268":1,"274":1,"286":2,"291":1,"331":1,"347":1,"348":2,"349":2,"380":1}}],["start",{"2":{"376":1}}],["started",{"2":{"360":1}}],["starting",{"2":{"118":1}}],["staked",{"2":{"355":5}}],["staking",{"2":{"13":1}}],["standard",{"2":{"83":1,"85":1,"155":2,"250":1,"380":1}}],["standardized",{"2":{"6":1}}],["status",{"2":{"181":1,"183":1,"189":2,"217":1,"230":1,"372":1}}],["state",{"2":{"73":1}}],["static",{"2":{"21":1,"26":1,"117":1,"122":1,"128":1}}],["sdk",{"0":{"14":1,"359":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"108":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1,"181":1,"182":1,"183":1,"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1,"199":1,"200":1,"201":1,"202":1,"203":1,"204":1,"205":1,"206":1,"207":1,"208":1,"209":1,"210":1,"211":1,"212":1,"213":1,"214":1,"215":1,"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1,"227":1,"228":1,"229":1,"230":1,"231":1,"232":1,"233":1,"234":1,"235":1,"236":1,"237":1,"238":1,"239":1,"240":1,"241":1,"242":1,"243":1,"244":1,"245":1,"246":1,"247":1,"248":1,"249":1,"250":1,"251":1,"252":1,"253":1,"254":1,"255":1,"256":1,"257":1,"258":1,"259":1,"260":1,"261":1,"262":1,"263":1,"264":1,"265":1,"266":1,"267":1,"268":1,"269":1,"270":1,"271":1,"272":1,"273":1,"274":1,"275":1,"276":1,"277":1,"278":1,"279":1,"280":1,"281":1,"282":1,"283":1,"284":1,"285":1,"286":1,"287":1,"288":1,"289":1,"290":1,"291":1,"292":1,"293":1,"294":1,"295":1,"296":1,"297":1,"298":1,"299":1,"300":1,"301":1,"302":1,"303":1,"304":1,"305":1,"306":1,"307":1,"308":1,"309":1,"310":1,"311":1,"312":1,"313":1,"314":1,"315":1,"316":1,"317":1,"318":1,"319":1,"320":1,"321":1,"322":1,"323":1,"324":1,"325":1,"326":1,"327":1,"328":1,"329":1,"330":1,"331":1,"332":1,"333":1,"334":1,"335":1,"336":1,"337":1,"338":1,"339":1,"340":1,"341":1,"342":1,"343":1,"344":1,"345":1,"346":1,"347":1,"348":1,"349":1,"350":1,"351":1,"352":1,"353":1},"2":{"10":1,"31":1,"52":1,"55":1,"59":1,"63":1,"67":1,"69":1,"72":1,"73":1,"85":1,"89":1,"100":1,"271":1,"290":1,"294":2,"297":2,"310":2,"315":2,"334":1,"336":2,"337":1,"339":1,"340":1,"356":2,"357":1,"358":1,"359":2,"361":4,"362":8,"365":3,"366":1,"375":1,"376":4,"379":1,"381":2,"382":2}}],["supply",{"2":{"365":1}}],["support",{"2":{"362":1}}],["supportedpaymenttokeninfo",{"0":{"260":1},"1":{"261":1,"262":1,"263":1,"264":1,"265":1,"266":1,"267":1,"268":1,"269":1}}],["supported",{"0":{"264":1,"266":1,"355":1},"1":{"265":1,"267":1},"2":{"234":1,"236":1,"264":1,"266":1,"276":1,"359":1,"380":1,"383":1}}],["subtypes",{"2":{"382":1}}],["submitted",{"2":{"181":1}}],["subsequently",{"2":{"85":1}}],["subsequent",{"2":{"52":1,"59":1}}],["sure",{"2":{"73":1,"370":1}}],["sucessfully",{"2":{"373":1}}],["such",{"2":{"44":1,"236":1,"356":1,"360":1,"362":1,"364":1,"376":1,"381":1,"382":2}}],["successful",{"2":{"82":1}}],["successfully",{"2":{"48":1,"189":1}}],["success",{"2":{"9":1,"189":2}}],["summary",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1}}],["several",{"2":{"380":1}}],["sequence",{"2":{"376":1}}],["sepolia421614eth0x0000000000000000000000000000000000000000chainlink",{"2":{"355":1}}],["separate",{"2":{"49":1,"363":1}}],["securely",{"2":{"126":1}}],["security",{"0":{"12":1,"354":1},"2":{"12":2,"126":1,"354":1}}],["sends",{"2":{"378":1}}],["send",{"2":{"169":1,"364":1,"365":1,"367":1,"368":1}}],["senderc20op",{"2":{"366":1,"367":1}}],["sender",{"0":{"173":1},"1":{"174":1},"2":{"157":1,"163":1,"165":1,"173":1}}],["sending",{"0":{"371":1},"2":{"109":1,"285":1}}],["sendtransaction",{"2":{"108":1}}],["sent",{"2":{"23":1,"28":1,"149":1,"258":1,"288":1}}],["setup",{"2":{"364":2}}],["set",{"2":{"73":1,"85":1,"287":1,"369":1}}],["see",{"0":{"50":1,"57":1,"65":1,"74":1,"83":1,"91":1,"101":1,"110":1,"295":1,"327":1},"2":{"295":1,"361":1,"363":1}}],["serving",{"2":{"199":1}}],["service",{"2":{"16":2,"25":1,"30":1,"88":1,"98":1,"121":1,"127":1,"131":1,"277":1,"284":1,"289":1,"296":1,"303":1,"309":1,"314":1,"319":1,"329":1,"335":1,"346":1,"353":1}}],["serves",{"2":{"181":1,"221":1,"242":1,"336":1}}],["series",{"2":{"3":1,"365":1,"376":2}}],["selected",{"2":{"7":1}}],["selects",{"2":{"7":1}}],["selection",{"2":{"7":1}}],["seamless",{"2":{"1":1,"234":1}}],["situation",{"2":{"365":1}}],["since",{"2":{"360":1,"362":2,"382":1}}],["singletx",{"2":{"367":1}}],["single",{"2":{"1":1,"6":1,"11":1,"16":2,"21":1,"26":1,"101":1,"201":1,"207":1,"250":1,"304":1,"306":1,"361":1,"379":1}}],["simplistic",{"2":{"364":1}}],["simplifies",{"2":{"67":1}}],["simply",{"2":{"361":1,"365":1,"379":1,"382":2}}],["simpler",{"2":{"364":1}}],["simple",{"2":{"252":1,"256":1,"362":2,"376":2,"381":1,"382":1}}],["simulations",{"2":{"9":1}}],["simulation",{"2":{"9":1}}],["signers",{"2":{"375":4,"380":1}}],["signeraccount",{"2":{"358":1,"370":1}}],["signer",{"0":{"358":1},"2":{"358":4,"359":2,"370":1}}],["signedhash",{"2":{"48":1,"76":1,"77":1,"82":2}}],["signed",{"2":{"7":1,"44":1,"49":1,"76":2,"77":1,"80":1,"81":1,"83":1,"287":1,"288":1,"348":2,"370":1,"371":3,"378":1}}],["signwithinjectedwallet",{"0":{"347":1},"1":{"348":1,"349":1,"350":1,"351":1,"352":1,"353":1},"2":{"347":1,"351":1}}],["signmessage",{"2":{"108":1,"370":1}}],["sign",{"2":{"44":1,"347":1,"348":1,"358":2,"370":2}}],["signitxhashaction",{"2":{"104":1,"108":1,"109":1,"110":1}}],["signing",{"0":{"370":1},"2":{"43":1,"47":2,"48":1,"49":1,"81":2,"107":1,"108":1,"109":2,"348":1,"350":1,"351":1,"370":1}}],["significant",{"2":{"21":1}}],["signhash",{"2":{"43":1,"44":1,"48":2,"49":1}}],["signs",{"2":{"7":1,"347":1,"378":1}}],["signature",{"0":{"175":1},"1":{"176":1},"2":{"1":1,"6":1,"175":2,"347":1,"349":2,"350":1,"351":3,"370":1}}],["circle",{"2":{"361":2}}],["certain",{"2":{"360":1,"381":1,"382":1}}],["c",{"2":{"355":1}}],["click",{"2":{"364":1}}],["client",{"0":{"360":1,"381":1},"2":{"320":1,"327":1,"360":2,"361":1,"365":1,"381":1}}],["class",{"2":{"112":2,"336":1}}],["classes",{"0":{"15":1},"1":{"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"108":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1}}],["currency",{"2":{"258":1}}],["current",{"2":{"67":1,"73":1,"74":1,"85":1,"86":1,"90":1,"100":1,"189":1}}],["customsalt",{"2":{"125":2}}],["custom",{"2":{"122":1,"123":1,"124":1,"126":2,"358":2}}],["customaccount",{"0":{"122":1},"1":{"123":1,"124":1,"125":1,"126":1,"127":1},"2":{"122":1,"125":1}}],["customization",{"2":{"13":1}}],["cream",{"2":{"355":1}}],["creation",{"2":{"236":1}}],["creating",{"0":{"367":1},"2":{"67":1,"297":1,"310":2}}],["createwalletclient",{"2":{"358":3}}],["created",{"2":{"295":1,"363":1,"367":1}}],["createtokenmapping",{"0":{"290":1},"1":{"291":1,"292":1,"293":1,"294":1,"295":1,"296":1},"2":{"290":1,"294":2,"334":2}}],["create2",{"2":{"234":1,"379":1}}],["create",{"0":{"358":1,"362":1},"2":{"67":1,"294":1,"334":1,"347":1,"358":2,"361":1,"362":1,"367":1,"375":1}}],["creates",{"2":{"31":1,"290":1,"320":1,"336":1}}],["crusdc",{"2":{"276":1,"355":1}}],["crucial",{"2":{"112":1}}],["cryptographically",{"2":{"370":1}}],["cryptographic",{"2":{"219":1,"240":1}}],["cross",{"2":{"1":1,"234":1,"367":1}}],["case",{"2":{"364":1,"365":1,"367":1}}],["cases",{"0":{"11":1},"2":{"333":1,"364":2,"365":1}}],["calculations",{"2":{"365":1}}],["calculated",{"2":{"366":1,"367":1}}],["calculate",{"2":{"139":1,"153":1,"365":3,"376":2}}],["calls",{"2":{"376":1}}],["callgaslimit",{"0":{"147":1,"159":1},"1":{"148":1,"160":1},"2":{"147":1,"159":1}}],["calldata",{"0":{"145":1,"157":1},"1":{"146":1,"158":1},"2":{"145":1,"147":1,"157":1,"171":1,"187":1}}],["called",{"2":{"76":1,"207":2,"365":2,"378":1,"379":1}}],["calling",{"2":{"73":1,"77":1,"90":1,"360":1,"361":1,"384":1}}],["call",{"2":{"21":1,"26":1,"145":1,"157":1,"159":1,"252":1,"287":1,"359":1,"365":2,"366":2,"369":1,"376":3}}],["catch",{"2":{"48":1,"72":1,"82":1,"89":1,"99":1,"308":1,"325":1,"334":1,"351":1}}],["cannonical",{"2":{"361":2}}],["cannot",{"2":{"345":1}}],["canonical",{"2":{"361":1}}],["can",{"2":{"12":1,"16":1,"21":1,"23":1,"28":1,"85":1,"147":1,"181":1,"201":1,"205":1,"232":1,"252":1,"254":1,"256":1,"276":1,"288":1,"294":1,"339":1,"356":1,"358":1,"359":1,"360":1,"361":3,"362":3,"363":2,"364":1,"365":1,"366":1,"367":1,"368":1,"370":1,"372":1,"375":1,"376":2,"378":1,"381":1,"382":1,"384":1}}],["check",{"2":{"356":1,"359":1,"361":1,"372":1}}],["checkout",{"2":{"11":1,"364":1}}],["charge",{"2":{"369":1}}],["changing",{"2":{"52":1,"56":2,"59":1,"64":2}}],["change",{"2":{"91":2,"375":1}}],["changemasteraddress",{"0":{"59":1},"1":{"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1},"2":{"59":1,"63":1,"90":1,"91":1}}],["changes",{"2":{"52":1,"59":1}}],["changeaccountsalt",{"0":{"52":1},"1":{"53":1,"54":1,"55":1,"56":1,"57":1,"58":1},"2":{"52":1,"55":1,"90":1,"91":1}}],["chain56bnb0x0000000000000000000000000000000000000000wrapped",{"2":{"355":1}}],["chain43114avax0x0000000000000000000000000000000000000000wrapped",{"2":{"355":1}}],["chainconfig",{"2":{"331":1}}],["chainconfigs",{"2":{"283":2,"294":1,"331":1,"334":1}}],["chaintokenpair",{"2":{"74":1}}],["chainid",{"0":{"135":1,"149":1,"185":1,"203":1,"300":1},"1":{"136":1,"150":1,"186":1,"204":1},"2":{"21":1,"22":1,"26":1,"27":1,"67":1,"68":2,"69":1,"99":1,"104":1,"108":1,"135":1,"149":1,"185":1,"203":1,"281":1,"283":4,"286":1,"288":1,"297":1,"298":1,"300":1,"308":2,"331":1,"334":2,"342":1,"343":1,"360":1,"361":3,"381":1,"384":1}}],["chainsrpcinfo",{"2":{"361":1}}],["chains",{"0":{"264":1},"1":{"265":1},"2":{"1":1,"3":1,"8":1,"11":1,"12":1,"181":1,"230":1,"236":1,"238":1,"248":1,"264":1,"279":1,"281":1,"282":1,"283":1,"290":1,"294":1,"304":2,"332":1,"333":1,"358":1,"360":1,"361":2,"363":2,"365":1,"381":1,"382":2}}],["chain",{"0":{"356":1},"1":{"357":1,"358":1,"359":1,"360":1,"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1},"2":{"1":2,"8":1,"10":1,"11":2,"68":1,"69":1,"189":1,"201":1,"207":1,"234":1,"246":1,"281":1,"290":1,"291":3,"292":1,"293":1,"294":3,"297":1,"299":1,"304":2,"306":1,"307":1,"308":1,"331":1,"334":2,"342":1,"345":1,"355":1,"356":4,"360":3,"361":1,"363":2,"364":2,"365":2,"366":2,"367":4,"370":1,"373":1,"376":6,"382":2,"383":1}}],["chooses",{"2":{"16":1}}],["couples",{"2":{"379":1}}],["counts",{"2":{"381":1}}],["count",{"2":{"376":1}}],["could",{"2":{"47":1,"364":1}}],["covers",{"2":{"364":1}}],["coin",{"2":{"355":6}}],["coding",{"2":{"297":1,"310":1,"315":1}}],["code",{"2":{"161":1}}],["collisions",{"2":{"126":1}}],["correspond",{"2":{"276":1}}],["corresponding",{"2":{"119":1}}],["correctly",{"2":{"73":1}}],["correct",{"2":{"49":1,"81":1,"109":1}}],["core",{"0":{"5":1},"1":{"6":1,"7":1,"8":1,"9":1},"2":{"382":1}}],["costs",{"2":{"133":1,"254":1}}],["cost",{"2":{"7":1,"135":1,"141":1}}],["congrats",{"2":{"373":1}}],["conclusion",{"0":{"373":1}}],["concat",{"2":{"367":1}}],["concept",{"2":{"362":1}}],["concepts",{"0":{"2":1},"1":{"3":1,"4":1},"2":{"356":1}}],["conjuction",{"2":{"356":1}}],["conjunction",{"2":{"22":1,"27":1,"139":1,"153":1}}],["converted",{"2":{"348":1}}],["convenient",{"2":{"49":1}}],["connecting",{"2":{"324":1}}],["connected",{"2":{"52":1,"325":1}}],["conditions",{"2":{"189":2}}],["confirmed",{"2":{"103":1}}],["configured",{"2":{"336":1}}],["configuration",{"2":{"67":1,"271":1,"336":1,"337":1,"340":1}}],["config",{"0":{"271":1},"1":{"272":1,"273":1,"274":1,"275":1},"2":{"33":1,"34":2,"271":1,"336":1,"337":2,"339":4}}],["continue",{"2":{"365":1}}],["contained",{"2":{"378":1}}],["contain",{"2":{"94":1,"291":1,"367":1}}],["contains",{"2":{"77":1,"86":1,"93":1,"207":2,"225":1,"246":1,"384":1}}],["containing",{"2":{"44":1,"45":1,"69":1,"78":1,"95":1,"104":1,"281":1,"299":1,"306":1,"331":1,"332":1,"362":1,"367":1,"377":1}}],["context",{"2":{"56":1,"64":1}}],["controls",{"2":{"348":1}}],["control",{"2":{"12":1}}],["contracts",{"2":{"370":1}}],["contractanyways",{"2":{"365":1}}],["contract",{"0":{"379":1},"1":{"380":1},"2":{"6":1,"16":1,"21":2,"22":2,"26":2,"27":2,"52":2,"59":2,"85":1,"86":1,"103":2,"112":1,"173":1,"207":2,"232":2,"234":1,"250":1,"252":1,"256":2,"285":2,"286":1,"287":1,"291":1,"359":1,"376":2,"379":1,"380":1}}],["considers",{"2":{"361":1}}],["consider",{"2":{"361":2}}],["considerations",{"0":{"12":1}}],["consistent",{"2":{"234":2,"297":1,"310":1,"315":1}}],["consult",{"2":{"109":1}}],["console",{"2":{"48":2,"72":2,"82":2,"89":3,"99":2,"120":1,"125":1,"130":1,"283":2,"294":1,"308":2,"325":3,"334":2,"351":2}}],["constants",{"2":{"361":1}}],["constructs",{"2":{"285":1}}],["construct",{"2":{"110":1}}],["constructors",{"0":{"17":1,"32":1,"113":1},"1":{"18":1,"19":1,"33":1,"34":1,"35":1,"36":1,"114":1,"115":1}}],["const",{"2":{"24":1,"29":1,"48":3,"72":1,"82":3,"89":1,"99":2,"108":1,"120":1,"125":1,"130":1,"283":3,"288":2,"294":2,"302":1,"308":4,"313":2,"318":1,"325":1,"334":2,"339":2,"351":3,"358":4,"359":2,"360":2,"361":3,"362":6,"363":1,"366":1,"367":1,"369":1,"370":1,"371":1,"374":1,"375":1,"376":5,"381":1,"382":1}}],["com",{"2":{"334":2,"339":1,"354":1}}],["combines",{"2":{"67":1,"297":1}}],["combined",{"2":{"53":1,"236":1}}],["combination",{"2":{"52":1,"59":1}}],["combining",{"2":{"43":1}}],["commonly",{"2":{"285":1}}],["communicating",{"2":{"88":1}}],["communicate",{"2":{"31":2}}],["committed",{"2":{"12":1,"244":1,"248":1}}],["committing",{"2":{"7":1}}],["commits",{"2":{"7":1}}],["commitment",{"0":{"4":1,"219":1,"240":1},"1":{"220":1,"241":1},"2":{"1":1,"219":2,"238":1,"240":3}}],["compensate",{"2":{"171":1}}],["comply",{"2":{"382":1}}],["completed",{"2":{"366":1}}],["complete",{"2":{"67":1,"364":1}}],["complex",{"2":{"1":1,"364":1,"365":1}}],["compliant",{"2":{"52":1,"59":1,"85":1,"143":1,"250":1}}],["compared",{"2":{"21":1}}],["compatible",{"2":{"6":1,"10":1}}],["components",{"0":{"5":1},"1":{"6":1,"7":1,"8":1,"9":1}}],["omitted",{"2":{"364":1}}],["okay",{"2":{"364":1}}],["our",{"2":{"356":1,"364":1,"367":1}}],["out",{"2":{"356":1}}],["outputamount",{"2":{"376":3}}],["output",{"2":{"283":1,"294":1,"308":1,"365":1}}],["outputs",{"2":{"120":1,"125":1,"130":1}}],["outcome",{"2":{"181":1,"365":1}}],["occur",{"2":{"135":1,"246":1}}],["occurs",{"2":{"71":1}}],["owner",{"2":{"236":1,"359":1,"374":2,"380":1}}],["owned",{"2":{"52":1,"137":1,"151":1,"285":1}}],["own",{"2":{"122":1,"361":1,"365":2}}],["obtain",{"2":{"83":1,"93":1}}],["objects",{"2":{"230":1,"281":1,"290":1,"291":1,"297":1,"298":1,"306":1,"308":1,"310":2,"315":2,"331":1,"360":1,"361":2,"363":1,"382":1}}],["object",{"0":{"358":1},"2":{"23":1,"28":1,"44":1,"45":1,"67":2,"69":1,"77":1,"78":1,"86":2,"93":1,"94":2,"95":1,"99":1,"104":1,"108":1,"155":1,"197":1,"225":1,"264":1,"266":1,"271":1,"285":1,"287":2,"290":1,"292":1,"297":2,"299":2,"304":1,"306":1,"311":1,"312":1,"316":1,"317":1,"331":1,"332":1,"358":1,"361":1,"362":2,"367":1,"368":1,"370":2,"377":1,"379":2,"381":3,"382":2,"383":1,"384":2}}],["other",{"2":{"71":1,"234":1,"236":1,"290":1,"294":1,"350":1,"364":1,"376":1,"379":1}}],["op",{"2":{"360":1,"365":1,"380":1}}],["opt",{"2":{"334":1}}],["options",{"2":{"271":1,"304":1,"305":2,"336":1,"337":1,"362":1}}],["optional",{"2":{"205":2,"209":2}}],["optimism",{"2":{"72":1,"283":2,"294":1,"308":1,"358":1,"360":3,"361":3,"365":1,"367":2,"381":2,"382":3}}],["optimistic",{"0":{"9":1}}],["optimize",{"2":{"16":1}}],["optimal",{"2":{"9":1}}],["opcode",{"2":{"234":1,"379":1}}],["opcodes",{"2":{"9":1}}],["operate",{"2":{"232":1}}],["operation",{"2":{"141":1,"143":1,"145":1,"149":1,"155":1,"183":1,"187":1,"189":2,"199":1,"230":1,"242":1,"250":1}}],["operations",{"0":{"365":1},"2":{"16":1,"52":1,"56":1,"59":1,"64":1,"100":1,"103":1,"133":1,"143":1,"234":1,"238":1}}],["oriented",{"2":{"362":1}}],["org",{"2":{"83":1,"283":1}}],["or",{"2":{"47":2,"56":1,"64":1,"71":1,"80":1,"85":1,"88":1,"90":1,"98":2,"107":1,"181":1,"256":1,"282":1,"287":1,"307":1,"321":1,"325":1,"328":1,"340":1,"350":1,"352":1,"360":1,"365":1,"367":3,"377":3,"380":1,"381":1,"382":2}}],["order",{"2":{"9":1,"360":1,"362":1,"363":3,"376":3,"378":1,"381":1}}],["orchestrates",{"2":{"4":1}}],["over",{"2":{"175":1}}],["overpaid",{"2":{"8":1}}],["overview",{"0":{"1":1}}],["onto",{"2":{"365":1}}],["only",{"2":{"360":1,"361":2,"383":1}}],["once",{"2":{"76":1,"365":1}}],["ongoing",{"2":{"56":1,"64":1}}],["onboarding",{"2":{"11":1}}],["ones",{"2":{"361":1}}],["one42161eth0x0000000000000000000000000000000000000000wrapped",{"2":{"355":1}}],["one",{"2":{"8":1,"308":1,"361":3,"364":2,"365":1,"366":1,"367":2,"377":1,"382":1,"383":1}}],["on",{"2":{"7":1,"21":2,"26":2,"57":1,"65":1,"67":1,"68":1,"76":2,"109":1,"110":1,"133":1,"135":1,"145":1,"147":1,"185":1,"189":2,"191":1,"195":1,"201":1,"203":1,"207":3,"234":1,"246":1,"248":1,"283":2,"288":1,"291":1,"308":2,"342":1,"356":1,"359":1,"361":3,"362":1,"364":1,"365":10,"366":3,"367":4,"370":1,"376":6,"377":1,"379":2,"381":1,"382":4,"384":1}}],["offical",{"2":{"361":1}}],["offers",{"2":{"31":1}}],["of",{"2":{"1":1,"3":2,"4":1,"10":1,"11":1,"12":2,"16":1,"22":3,"27":2,"31":1,"43":2,"45":1,"48":1,"49":1,"52":1,"55":1,"56":2,"59":1,"63":1,"64":2,"67":1,"68":2,"69":2,"72":1,"73":1,"76":1,"78":1,"89":1,"90":1,"94":1,"100":1,"105":1,"109":2,"117":1,"118":1,"122":1,"129":1,"135":1,"137":1,"141":1,"147":3,"149":1,"151":1,"155":1,"169":1,"171":1,"173":1,"179":3,"181":1,"183":1,"185":1,"187":1,"189":2,"193":1,"199":1,"203":1,"207":1,"217":2,"219":1,"221":1,"223":1,"230":3,"232":1,"234":1,"240":1,"242":1,"244":1,"248":2,"250":2,"252":1,"254":1,"256":1,"258":1,"276":1,"279":1,"281":1,"282":1,"285":1,"286":4,"287":1,"290":3,"291":2,"297":1,"298":2,"306":1,"308":1,"310":1,"313":1,"315":1,"320":1,"331":1,"332":1,"333":1,"336":1,"338":1,"343":2,"356":3,"360":1,"361":6,"362":4,"363":4,"364":5,"365":4,"366":1,"367":1,"369":3,"372":1,"376":9,"377":1,"378":4,"379":3,"380":1,"381":4,"382":5,"383":2,"384":4}}],["ecnoded",{"2":{"376":1}}],["ecosystem",{"2":{"16":1,"112":1,"234":2,"339":1,"379":1,"382":1}}],["evm",{"2":{"365":1,"382":1}}],["everything",{"2":{"368":1}}],["every",{"2":{"360":1,"362":2,"370":1,"378":1,"380":2}}],["etc",{"2":{"362":1}}],["ethers",{"2":{"356":1}}],["ether",{"2":{"355":10}}],["ethereum",{"2":{"60":1,"83":1,"108":1,"155":1,"234":1,"288":1,"294":1,"308":1,"320":2,"321":1,"324":3,"328":2,"347":3,"348":1,"350":1,"351":1,"352":2,"356":1,"358":1,"379":1}}],["eth",{"2":{"68":1,"258":1,"276":1,"286":1,"334":1,"380":1}}],["equivalent",{"2":{"361":2}}],["else",{"2":{"283":1,"325":1}}],["either",{"2":{"281":1}}],["eip",{"2":{"83":2}}],["eips",{"2":{"83":2}}],["essential",{"2":{"232":1}}],["estimating",{"2":{"7":1}}],["earlier",{"2":{"363":1}}],["earliest",{"2":{"191":1,"205":1}}],["easily",{"2":{"381":1}}],["easier",{"2":{"11":1}}],["easy",{"2":{"290":1}}],["eachother",{"2":{"361":1,"382":1}}],["each",{"2":{"230":1,"248":1,"281":1,"291":1,"304":1,"306":1,"308":1,"331":1,"363":1,"380":1}}],["empty",{"2":{"97":1,"161":1,"169":1,"252":1}}],["eoa",{"2":{"52":1,"53":1,"137":1,"139":1,"151":1,"153":1,"256":1,"285":2}}],["error",{"2":{"48":3,"62":1,"71":2,"72":3,"80":1,"81":1,"82":3,"88":1,"89":3,"97":1,"99":3,"282":1,"293":1,"307":1,"308":4,"324":1,"325":4,"333":1,"334":4,"340":1,"350":1,"351":4,"362":3,"370":1}}],["errors",{"2":{"47":2,"49":1,"98":1,"107":1}}],["erc721",{"2":{"382":1}}],["erc20abi",{"2":{"366":1}}],["erc20",{"2":{"103":2,"104":1,"108":1,"141":1,"285":2,"286":1,"287":3,"363":1,"376":1,"381":1,"382":1,"384":1}}],["erc4337userop",{"0":{"155":1},"1":{"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1},"2":{"155":1,"197":1,"248":1}}],["erc4337",{"2":{"52":2,"57":1,"59":2,"65":1,"85":2,"359":1,"379":1}}],["erc",{"2":{"6":1,"8":1,"143":1,"147":1,"155":2,"197":1,"250":1}}],["efficiency",{"2":{"16":1}}],["efficient",{"2":{"10":1}}],["e",{"2":{"11":1,"49":1,"68":1,"258":1,"286":1,"320":1,"324":1,"347":1,"358":1,"365":1,"376":1,"380":5}}],["exact",{"2":{"365":1}}],["example",{"0":{"24":1,"29":1,"48":1,"55":1,"63":1,"72":1,"82":1,"89":1,"99":1,"108":1,"120":1,"125":1,"130":1,"283":1,"288":1,"294":1,"302":1,"308":1,"313":1,"318":1,"325":1,"334":1,"339":1,"351":1},"2":{"339":1,"361":1,"362":1,"363":1,"365":1,"376":1}}],["exists",{"2":{"307":1}}],["existing",{"2":{"6":1,"11":1,"376":1}}],["exceptions",{"2":{"234":1}}],["explicit",{"2":{"370":1}}],["explore",{"2":{"356":1}}],["explorer",{"2":{"217":1,"372":2}}],["expressed",{"2":{"363":1}}],["experiences",{"2":{"376":1}}],["experience",{"2":{"362":1}}],["expects",{"2":{"362":1}}],["expected",{"2":{"143":1,"250":1}}],["export",{"2":{"362":1,"376":1}}],["exported",{"2":{"361":2}}],["expose",{"2":{"361":1,"376":1}}],["exposes",{"2":{"361":1,"380":1,"381":1}}],["extra",{"2":{"169":1}}],["externally",{"2":{"52":1,"137":1,"151":1,"285":1}}],["executetxaction",{"2":{"104":1,"108":1,"109":1,"110":1}}],["executeitx",{"2":{"104":3,"108":1}}],["executeresponse",{"0":{"179":1},"1":{"180":1,"181":1,"182":1},"2":{"43":1,"45":2,"76":1,"78":2,"82":2,"103":1,"105":1,"179":1}}],["executebatch",{"2":{"21":1}}],["executedaction",{"0":{"183":1},"1":{"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1,"199":1,"200":1},"2":{"183":1,"230":2}}],["executed",{"2":{"21":2,"22":1,"26":1,"27":1,"45":1,"48":2,"78":1,"145":1,"149":1,"183":1,"185":1,"187":1,"189":1,"191":1,"195":1,"197":1,"203":1,"205":1,"207":1,"209":1,"230":1,"238":1,"250":1,"285":1,"286":1,"362":1,"365":1,"370":1,"373":1,"376":2,"377":1,"378":1}}],["execute",{"0":{"76":1},"1":{"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1},"2":{"12":1,"26":1,"44":1,"50":2,"68":1,"76":1,"82":1,"110":2,"179":1,"207":1,"250":1,"362":1,"369":1,"370":2,"371":2,"372":1,"378":1}}],["executes",{"2":{"7":1,"9":1,"43":1,"76":1,"103":2}}],["executing",{"0":{"368":1},"1":{"369":1,"370":1,"371":1,"372":1},"2":{"7":1,"8":1,"21":1,"43":2,"49":1,"93":1,"104":1,"223":1,"244":1,"248":1,"254":1,"369":1}}],["executiondata",{"0":{"187":1},"1":{"188":1},"2":{"187":1}}],["executionstatus",{"0":{"189":1},"1":{"190":1},"2":{"189":1}}],["executions",{"2":{"49":1}}],["execution",{"0":{"9":1,"364":1,"371":1,"372":1},"1":{"365":1,"366":1,"367":1},"2":{"1":1,"4":2,"7":3,"9":1,"16":1,"21":1,"22":1,"23":2,"26":1,"28":1,"43":1,"47":2,"49":1,"76":2,"77":1,"80":1,"82":2,"104":1,"105":1,"107":1,"108":1,"109":1,"147":1,"157":1,"159":1,"171":1,"179":1,"181":1,"183":1,"189":4,"193":1,"217":1,"219":1,"225":1,"240":1,"362":1,"367":1,"368":1,"369":1,"370":1}}],["end",{"2":{"376":1}}],["endpoint",{"2":{"77":1,"380":1}}],["enabled",{"2":{"328":1,"347":1,"352":1}}],["enables",{"2":{"1":1,"6":1,"10":1,"376":1}}],["environment",{"2":{"328":2,"352":2,"358":2,"382":1}}],["enough",{"2":{"283":1,"365":1}}],["encapsulates",{"2":{"179":1}}],["encounter",{"2":{"81":1}}],["encodeacrosscalldata",{"2":{"376":1}}],["encodeaction",{"0":{"297":1},"1":{"298":1,"299":1,"300":1,"301":1,"302":1,"303":1},"2":{"297":1,"302":1}}],["encodeapprovetx",{"2":{"376":1}}],["encodepaymentfee",{"2":{"367":1}}],["encodefunctiondata",{"2":{"366":1}}],["encodetx",{"0":{"315":1},"1":{"316":1,"317":1,"318":1,"319":1},"2":{"315":1,"318":1}}],["encodetxfee",{"0":{"67":1},"1":{"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1},"2":{"67":1,"72":1}}],["encodeitx",{"0":{"310":1},"1":{"311":1,"312":1,"313":1,"314":1},"2":{"310":1,"313":1}}],["encodebridgingdata",{"2":{"382":1}}],["encodebridgingdatafromstrategyoptions",{"2":{"305":1}}],["encodebridgingdatafromstrategy",{"0":{"304":1},"1":{"305":1,"306":1,"307":1,"308":1,"309":1},"2":{"304":1,"308":1}}],["encodebridgingops",{"2":{"365":2,"367":1}}],["encodebatchcall",{"0":{"21":1},"1":{"22":1,"23":1,"24":1,"25":1},"2":{"21":1,"24":1,"101":1}}],["encodeuseropcall",{"0":{"26":1},"1":{"27":1,"28":1,"29":1,"30":1},"2":{"26":1,"29":1,"101":1}}],["encoded",{"2":{"22":1,"27":1,"145":1,"252":1,"287":1,"306":1,"308":1,"311":1,"316":1,"368":1,"376":1,"377":1,"380":1}}],["encodesinglebridgedata",{"2":{"304":1,"308":2}}],["encodes",{"2":{"21":1,"26":1,"304":2}}],["encode",{"2":{"16":1,"72":1,"362":2,"365":2,"366":1,"367":1,"376":4}}],["encoding",{"0":{"364":1,"365":1,"366":1},"1":{"365":1,"366":1,"367":1},"2":{"16":2,"25":1,"30":1,"31":1,"98":1,"100":1,"101":2,"305":1,"308":3,"360":1,"381":1}}],["encodingservice",{"0":{"16":1,"18":1},"1":{"17":1,"18":1,"19":2,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1},"2":{"18":2,"19":1,"24":1,"29":1,"98":1,"101":2}}],["ensures",{"2":{"139":1,"153":1,"236":1,"279":1}}],["ensure",{"2":{"16":1,"49":1,"56":1,"64":1,"81":1,"109":1,"126":1}}],["entry",{"2":{"336":1}}],["entrypoint",{"2":{"8":1}}],["entire",{"2":{"6":1,"175":1,"242":1,"364":1,"365":1}}],["tutorial",{"2":{"356":1,"359":1,"360":3,"362":2,"364":1}}],["tell",{"2":{"369":1}}],["tells",{"2":{"362":1,"376":1}}],["te",{"2":{"365":1}}],["templates",{"2":{"362":1}}],["team",{"2":{"354":1}}],["technical",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1}}],["tightly",{"2":{"379":1}}],["timestamp",{"2":{"191":1,"195":1,"205":1,"209":1}}],["tips",{"2":{"9":1}}],["typically",{"2":{"167":1,"252":1,"285":1,"304":1}}],["type",{"0":{"226":1,"270":1,"272":1},"1":{"271":1,"272":1,"273":2,"274":2,"275":1,"276":1,"277":1},"2":{"321":1,"362":1,"376":4,"384":1}}],["types",{"2":{"31":1,"136":1,"138":1,"140":1,"142":1,"146":1,"148":1,"150":1,"152":1,"154":1,"158":1,"160":1,"162":1,"164":1,"166":1,"168":1,"170":1,"172":1,"174":1,"176":1,"178":1,"182":1,"186":1,"188":1,"190":1,"192":1,"194":1,"196":1,"198":1,"200":1,"204":1,"206":1,"208":1,"210":1,"214":1,"216":1,"220":1,"222":1,"224":1,"229":1,"231":1,"235":1,"237":1,"241":1,"243":1,"245":1,"247":1,"249":1,"253":1,"255":1,"257":1,"259":1,"263":1,"265":1,"267":1,"269":1}}],["typed",{"2":{"31":1}}],["t",{"2":{"161":1,"234":1,"258":1,"360":2,"365":1,"379":1}}],["target",{"2":{"147":1,"191":1,"195":1}}],["tailored",{"2":{"143":1}}],["takes",{"2":{"304":1}}],["take",{"2":{"44":1,"365":1,"367":1}}],["two",{"2":{"103":1,"369":1,"377":1,"382":1}}],["txbatch",{"2":{"362":1,"376":2}}],["txparams",{"2":{"288":2}}],["tx",{"2":{"26":1,"27":1,"108":2,"315":1,"316":1,"318":1,"367":1}}],["txs",{"0":{"207":1,"301":1},"1":{"208":1},"2":{"21":1,"22":1,"99":1,"207":1,"297":1,"298":1,"301":1}}],["ts",{"2":{"25":1,"30":1,"36":1,"39":1,"41":1,"51":1,"58":1,"66":1,"75":1,"84":1,"92":1,"102":1,"111":1,"121":1,"127":1,"131":1,"136":1,"138":1,"140":1,"142":1,"146":1,"148":1,"150":1,"152":1,"154":1,"158":1,"160":1,"162":1,"164":1,"166":1,"168":1,"170":1,"172":1,"174":1,"176":1,"178":1,"182":1,"186":1,"188":1,"190":1,"192":1,"194":1,"196":1,"198":1,"200":1,"204":1,"206":1,"208":1,"210":1,"214":1,"216":1,"220":1,"222":1,"224":1,"229":1,"231":1,"235":1,"237":1,"241":1,"243":1,"245":1,"247":1,"249":1,"253":1,"255":1,"257":1,"259":1,"263":1,"265":1,"267":1,"269":1,"275":1,"277":1,"284":1,"289":1,"296":1,"303":1,"309":1,"314":1,"319":1,"329":1,"335":1,"341":1,"346":1,"353":1}}],["top",{"2":{"379":1}}],["togehter",{"2":{"378":1}}],["together",{"2":{"361":1,"371":1}}],["took",{"2":{"365":1}}],["toamountmin",{"2":{"362":1}}],["tostring",{"2":{"362":1}}],["totokenaddress",{"2":{"362":1}}],["totalrelayfee",{"2":{"376":1}}],["totalreceivedondestination",{"2":{"366":2}}],["total",{"2":{"163":1,"281":1,"332":1,"363":1,"365":3,"366":2,"376":2,"384":1}}],["tochainid",{"2":{"362":1}}],["tokenaddress",{"2":{"308":1,"376":1}}],["tokenamount",{"0":{"227":1},"2":{"227":1}}],["tokeninfo",{"2":{"290":1,"291":3,"342":1,"344":1}}],["tokenmappings",{"2":{"361":1}}],["tokenmapping",{"2":{"283":2,"290":2,"292":1,"308":2,"331":1,"363":2,"365":1,"381":1}}],["tokenvalue",{"0":{"228":1},"2":{"228":1,"369":1}}],["tokentotransfer",{"2":{"104":1,"108":1}}],["tokenstoken",{"2":{"355":1}}],["tokenstrategy",{"2":{"279":1,"281":1}}],["tokens",{"0":{"266":1,"355":1},"1":{"267":1},"2":{"31":1,"103":2,"104":1,"266":1,"276":1,"279":2,"282":1,"283":1,"285":3,"286":3,"287":1,"290":1,"291":1,"304":1,"333":2,"361":5,"365":2,"376":1,"382":3}}],["token",{"0":{"141":1,"361":1,"382":1},"1":{"142":1,"383":1},"2":{"8":1,"67":1,"68":1,"69":2,"71":1,"74":1,"107":1,"108":1,"141":2,"189":1,"225":1,"246":1,"276":1,"277":1,"282":1,"286":3,"287":1,"288":1,"290":2,"291":2,"292":1,"304":2,"307":1,"330":1,"331":2,"332":1,"334":1,"342":1,"343":1,"344":1,"345":1,"346":1,"355":9,"360":1,"361":10,"363":2,"365":1,"369":1,"381":1,"382":3,"383":1,"384":2}}],["to",{"0":{"256":1,"356":1},"1":{"257":1,"357":1,"358":1,"359":1,"360":1,"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1},"2":{"7":3,"11":1,"12":2,"16":2,"21":3,"22":2,"23":1,"24":2,"27":2,"28":1,"29":1,"31":2,"44":3,"45":1,"48":1,"49":1,"50":2,"52":1,"53":1,"59":1,"60":1,"67":2,"68":1,"69":2,"72":1,"74":2,"78":1,"81":1,"83":1,"86":1,"89":1,"90":1,"91":2,"93":1,"95":1,"99":2,"103":2,"104":1,"105":1,"109":2,"110":3,"112":1,"119":1,"122":1,"126":2,"133":1,"139":1,"141":1,"145":2,"149":2,"153":1,"157":2,"163":1,"165":1,"167":1,"169":2,"171":1,"175":1,"181":1,"189":1,"207":1,"234":1,"238":1,"244":1,"246":1,"248":1,"250":1,"256":1,"258":1,"276":1,"279":1,"281":3,"285":4,"286":1,"287":3,"288":1,"290":1,"297":1,"304":2,"306":1,"308":1,"310":1,"311":1,"315":1,"316":1,"321":1,"324":2,"328":1,"331":2,"332":1,"339":1,"340":1,"343":1,"344":1,"347":1,"348":3,"349":1,"352":1,"356":4,"358":2,"359":2,"360":8,"361":10,"362":9,"363":3,"364":2,"365":11,"366":2,"367":4,"368":1,"369":3,"370":5,"371":1,"372":2,"374":1,"375":3,"376":18,"377":1,"378":2,"379":2,"380":1,"381":5,"382":7,"383":1}}],["trigger",{"2":{"376":1}}],["triggered",{"2":{"376":1}}],["triggers",{"2":{"76":1}}],["true",{"2":{"363":1}}],["truncate",{"2":{"361":1}}],["treat",{"2":{"361":1}}],["tree",{"2":{"3":1,"377":1,"378":2}}],["tracking",{"0":{"372":1}}],["track",{"2":{"181":1}}],["transcation",{"2":{"376":1,"378":1}}],["transport",{"2":{"358":2}}],["transferring",{"2":{"104":1}}],["transfertosmartaccount",{"2":{"104":5,"108":1}}],["transfer",{"2":{"103":1,"104":1,"107":1,"109":2,"110":1,"258":1,"285":2,"286":1,"287":1,"362":1,"366":2}}],["transferandexecute",{"0":{"103":1},"1":{"104":1,"105":1,"106":1,"107":1,"108":1,"109":1,"110":1,"111":1},"2":{"103":1,"108":1}}],["transfers",{"2":{"12":1,"103":2,"252":1,"256":1,"287":1}}],["transactionrequest",{"2":{"362":2}}],["transactions",{"2":{"3":1,"8":2,"16":2,"21":3,"22":2,"31":1,"44":1,"56":1,"64":1,"207":2,"258":1,"299":1,"358":1,"362":1,"365":1,"367":3,"370":1,"376":3,"377":1,"378":2}}],["transaction",{"0":{"3":1,"4":1,"367":1,"368":1,"377":1},"1":{"369":1,"370":1,"371":1,"372":1,"378":1},"2":{"1":2,"26":1,"27":2,"43":2,"44":1,"45":1,"50":1,"67":2,"72":1,"76":1,"78":1,"93":2,"94":1,"101":2,"103":1,"104":1,"108":2,"109":2,"110":1,"133":1,"135":2,"141":1,"169":1,"173":1,"179":1,"181":3,"201":2,"203":1,"205":1,"207":1,"209":1,"217":1,"219":1,"221":2,"223":1,"225":1,"230":1,"238":2,"240":1,"242":1,"244":1,"246":1,"248":2,"250":2,"252":1,"254":1,"256":1,"258":1,"285":1,"286":2,"362":1,"367":2,"369":2,"373":1,"376":1,"378":4}}],["trying",{"2":{"365":1}}],["try",{"2":{"48":1,"72":1,"82":1,"89":1,"99":1,"308":1,"325":1,"334":1,"351":1}}],["threshold",{"2":{"375":1,"380":1}}],["throw",{"2":{"47":1,"62":1,"71":1,"80":1,"88":1,"98":1,"107":1,"362":3}}],["throws",{"0":{"47":1,"62":1,"71":1,"80":1,"88":1,"97":1,"98":1,"107":1,"282":1,"293":1,"307":1,"324":1,"333":1,"340":1,"345":1,"350":1},"2":{"97":1,"282":1,"293":1,"307":1,"324":1,"333":1,"340":1,"350":1}}],["through",{"2":{"9":1,"12":1,"382":1}}],["thing",{"2":{"366":1}}],["things",{"2":{"362":1,"382":1,"383":1}}],["think",{"2":{"362":1}}],["thirdaccountsalt",{"2":{"120":2}}],["this",{"2":{"16":1,"21":2,"26":1,"43":1,"44":2,"49":1,"52":2,"53":1,"56":1,"59":2,"60":1,"64":1,"67":1,"73":2,"76":1,"77":1,"85":1,"90":2,"93":1,"94":1,"100":1,"103":1,"109":2,"112":1,"117":1,"122":1,"133":1,"135":1,"139":1,"143":1,"145":1,"147":1,"149":1,"153":1,"155":1,"179":1,"181":1,"183":1,"189":1,"193":1,"201":1,"207":2,"217":1,"230":1,"232":1,"234":1,"238":1,"240":1,"242":1,"248":1,"250":1,"252":1,"254":2,"256":1,"285":1,"290":1,"294":1,"297":1,"298":1,"304":1,"308":1,"310":1,"315":1,"320":1,"328":1,"336":1,"347":1,"348":2,"352":1,"356":2,"359":1,"360":8,"361":1,"362":2,"363":1,"364":4,"365":1,"366":3,"367":1,"370":1,"376":2,"379":1,"380":1,"381":2,"382":1}}],["them",{"2":{"361":3,"362":1,"365":1,"376":1}}],["then",{"2":{"294":1,"320":1,"362":1,"363":1,"366":2,"376":1,"382":1}}],["they",{"2":{"126":1,"361":4,"378":1}}],["their",{"2":{"122":1,"324":1,"348":1,"378":1,"380":1}}],["there",{"2":{"71":1,"80":1,"88":1,"98":1,"169":1,"282":1,"324":1,"350":1,"365":1}}],["these",{"2":{"47":1,"73":1,"276":1,"361":3,"364":1,"379":1,"382":2}}],["the",{"0":{"364":1,"365":1,"366":1,"368":1,"370":1,"371":1,"372":1},"1":{"365":1,"366":1,"367":1,"369":1,"370":1,"371":1,"372":1},"2":{"1":1,"7":2,"12":1,"16":2,"21":2,"22":8,"23":2,"26":3,"27":9,"28":1,"31":4,"43":6,"44":5,"45":2,"47":1,"49":3,"50":2,"52":5,"53":2,"55":1,"56":3,"59":4,"60":1,"62":1,"63":1,"64":3,"67":5,"68":5,"69":9,"71":3,"72":1,"73":3,"74":3,"76":4,"77":5,"78":2,"80":2,"81":3,"83":1,"85":6,"86":3,"88":2,"89":1,"90":1,"91":2,"93":6,"94":1,"95":1,"97":2,"98":4,"100":2,"103":4,"104":3,"105":2,"107":1,"109":12,"110":4,"112":1,"118":2,"119":1,"122":1,"124":1,"128":1,"129":1,"133":4,"135":6,"137":3,"139":3,"141":4,"143":3,"145":4,"147":5,"149":4,"151":3,"153":3,"155":3,"157":3,"159":2,"161":3,"163":3,"165":2,"167":1,"169":4,"171":2,"173":3,"175":2,"177":2,"179":5,"181":4,"183":3,"185":3,"187":3,"189":7,"191":3,"193":2,"195":3,"197":1,"199":3,"201":2,"203":3,"205":2,"207":5,"209":2,"217":4,"219":4,"221":3,"223":3,"225":5,"230":1,"232":1,"234":6,"236":4,"238":5,"240":4,"242":3,"244":4,"246":5,"248":2,"250":3,"252":3,"254":1,"256":2,"258":2,"271":1,"276":2,"279":1,"281":2,"282":1,"285":3,"286":12,"287":5,"288":1,"291":5,"293":1,"295":2,"297":2,"298":2,"299":1,"304":3,"305":1,"306":2,"307":2,"308":1,"310":2,"311":1,"312":1,"315":2,"316":1,"317":1,"320":6,"321":3,"324":2,"331":4,"332":3,"333":2,"334":1,"336":6,"337":2,"338":1,"339":1,"340":2,"342":1,"343":4,"344":1,"345":2,"347":4,"348":4,"349":2,"350":4,"356":5,"358":1,"359":6,"360":9,"361":23,"362":7,"363":10,"364":5,"365":14,"366":9,"367":10,"368":2,"369":13,"370":17,"371":5,"372":7,"374":1,"375":7,"376":32,"377":3,"378":18,"379":16,"380":4,"381":10,"382":11,"383":3,"384":6}}],["that",{"2":{"1":1,"16":1,"21":1,"26":1,"28":1,"45":1,"53":1,"67":1,"69":1,"78":1,"85":1,"86":1,"95":1,"105":1,"141":1,"147":1,"173":1,"181":1,"197":1,"201":1,"223":1,"232":1,"236":1,"244":1,"248":1,"254":1,"258":1,"276":1,"281":2,"285":1,"306":1,"321":1,"332":1,"344":1,"348":1,"349":1,"360":1,"361":2,"362":2,"363":1,"364":1,"365":1,"368":1,"369":1,"370":1,"372":1,"376":1,"379":4}}],["aggregation",{"2":{"362":1}}],["aggregates",{"2":{"330":1}}],["agnostic",{"2":{"362":1}}],["axelar",{"2":{"355":2}}],["axlusdc",{"2":{"276":1,"355":2,"361":1}}],["audits",{"0":{"354":1},"2":{"354":1}}],["automatically",{"2":{"43":2}}],["autoexecute",{"0":{"43":1},"1":{"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1},"2":{"43":1,"48":2}}],["add",{"2":{"381":1,"382":1}}],["added",{"2":{"367":1}}],["additional",{"2":{"365":1}}],["addressethereum1eth0x0000000000000000000000000000000000000000wrapped",{"2":{"355":1}}],["addresses",{"2":{"139":1,"153":1,"282":1,"290":2,"292":1,"320":1,"321":1,"331":1,"382":1}}],["address",{"0":{"234":1},"1":{"235":1},"2":{"22":2,"27":2,"53":2,"59":3,"60":2,"62":1,"64":2,"69":2,"73":1,"74":1,"86":2,"89":1,"91":1,"108":1,"137":1,"139":2,"141":1,"151":1,"153":2,"169":1,"173":1,"223":1,"234":4,"236":2,"244":1,"256":2,"273":1,"285":1,"286":2,"287":1,"291":2,"294":4,"307":1,"320":3,"321":3,"325":6,"330":1,"331":2,"334":3,"347":1,"348":3,"351":2,"359":3,"361":4,"362":2,"364":2,"375":1,"376":2,"379":2,"380":4,"382":3}}],["adjust",{"2":{"287":1}}],["ability",{"2":{"379":1,"381":1}}],["abilty",{"2":{"360":1}}],["abi",{"2":{"366":1}}],["able",{"2":{"365":2,"376":1}}],["above",{"2":{"361":1}}],["about",{"2":{"183":1,"217":1,"225":1,"238":1,"246":1,"376":1}}],["abstraktaave",{"2":{"356":1,"363":1}}],["abstract",{"2":{"380":1}}],["abstracts",{"2":{"49":1}}],["abstracted",{"0":{"356":1},"1":{"357":1,"358":1,"359":1,"360":1,"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1},"2":{"10":1,"11":1,"356":4,"364":1,"376":1}}],["abstraction",{"0":{"385":1},"2":{"1":1,"57":2,"65":2,"85":1,"147":1,"155":1,"250":1,"360":1,"363":1,"367":1,"373":1,"379":1}}],["also",{"2":{"356":1,"382":1}}],["alchemy",{"2":{"334":2}}],["always",{"2":{"287":1,"365":1,"378":1}}],["aliases",{"0":{"270":1},"1":{"271":1,"272":1,"273":1,"274":1,"275":1,"276":1,"277":1}}],["already",{"2":{"161":1}}],["allowed",{"2":{"193":1}}],["allows",{"2":{"117":1,"122":1,"290":1}}],["allowing",{"2":{"21":1,"234":1,"310":1,"315":1}}],["all",{"2":{"31":1,"44":1,"52":1,"56":1,"59":1,"64":1,"234":1,"236":1,"248":2,"279":1,"281":1,"283":1,"332":1,"356":3,"361":2,"363":3,"365":2,"367":2,"376":3,"378":1,"379":2,"380":1,"382":1,"383":1,"384":2}}],["amount",{"2":{"108":1,"147":1,"171":1,"225":1,"254":1,"258":1,"279":1,"281":2,"283":2,"285":1,"286":2,"288":1,"308":3,"332":1,"334":1,"362":2,"364":2,"365":3,"366":1,"369":1,"376":6}}],["amounttotransfer",{"2":{"104":1,"108":1}}],["amp",{"2":{"7":1,"225":1,"234":1}}],["after",{"2":{"103":1,"183":1,"365":1,"366":1,"371":1,"372":1,"376":2}}],["affect",{"2":{"56":2,"64":2}}],["args",{"2":{"366":1}}],["arrive",{"2":{"365":1}}],["array",{"2":{"22":1,"48":1,"94":1,"97":1,"207":3,"230":1,"248":1,"281":1,"290":1,"291":1,"293":1,"297":1,"298":1,"306":1,"308":1,"331":1,"360":1,"361":1}}],["arbitrarily",{"2":{"365":1}}],["arbitrum",{"2":{"358":1,"360":2,"382":2}}],["are",{"2":{"73":1,"80":1,"98":1,"112":1,"126":1,"234":1,"282":1,"292":2,"293":1,"321":1,"333":1,"361":2,"370":1,"376":2,"378":1,"382":2}}],["away",{"2":{"49":1}}],["await",{"2":{"48":1,"72":1,"82":3,"89":1,"99":1,"108":3,"283":1,"294":1,"308":1,"325":1,"334":1,"351":1,"359":2,"362":1,"363":1,"365":1,"369":1,"370":1,"371":1,"374":1,"375":1,"376":1}}],["availble",{"2":{"376":1}}],["available",{"2":{"10":1,"283":1,"321":1,"350":1,"361":3,"362":1,"366":4}}],["avax",{"2":{"276":1,"355":1,"380":1}}],["avoid",{"2":{"49":1,"126":1}}],["another",{"2":{"285":1}}],["anything",{"2":{"370":1}}],["any",{"2":{"71":1,"234":1,"340":1,"350":1,"358":1,"365":1,"382":2}}],["an",{"0":{"367":1},"2":{"22":1,"31":1,"43":1,"45":1,"55":1,"62":1,"63":1,"67":2,"69":1,"71":2,"72":1,"76":1,"78":1,"80":1,"81":1,"88":2,"89":1,"93":1,"94":1,"97":1,"103":1,"117":1,"179":1,"183":1,"207":1,"217":1,"230":1,"238":1,"248":1,"252":1,"256":1,"281":2,"282":2,"285":1,"290":1,"291":1,"292":1,"293":1,"297":2,"298":1,"299":1,"306":1,"307":1,"308":1,"320":1,"324":2,"328":2,"331":3,"332":1,"333":1,"340":1,"347":1,"348":1,"350":1,"352":2,"362":2,"364":1,"365":1,"367":5,"369":2,"370":1,"376":3,"377":1,"379":1,"381":1}}],["and",{"0":{"8":1,"357":1},"2":{"1":1,"7":1,"8":1,"10":1,"13":2,"16":3,"23":1,"26":1,"28":1,"31":1,"43":3,"44":2,"49":1,"56":1,"57":1,"64":1,"65":1,"67":1,"76":1,"85":3,"90":1,"94":1,"95":1,"100":1,"103":1,"104":1,"110":1,"126":1,"133":1,"135":1,"141":1,"171":1,"181":2,"183":1,"189":1,"217":1,"225":1,"230":1,"234":1,"236":1,"238":1,"244":1,"246":1,"250":1,"281":1,"287":1,"288":1,"292":1,"299":1,"304":1,"310":1,"320":2,"328":1,"330":1,"331":1,"336":1,"342":1,"348":1,"352":1,"356":2,"360":2,"361":5,"362":3,"363":2,"364":1,"365":4,"373":1,"376":3,"378":1,"379":1,"380":1,"382":2}}],["api",{"2":{"133":1,"143":1,"179":1,"183":1,"217":1,"238":1,"334":2,"376":2}}],["apipaymentdata",{"0":{"133":1},"1":{"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1},"2":{"67":3,"69":2,"99":1,"133":1,"215":1,"225":1,"246":1}}],["apiuserop",{"0":{"143":1},"1":{"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1},"2":{"21":1,"23":1,"26":1,"28":1,"143":1}}],["app",{"2":{"356":1,"363":2,"364":1}}],["application",{"0":{"356":1},"1":{"357":1,"358":1,"359":1,"360":1,"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1},"2":{"56":1,"64":1,"356":2,"381":1}}],["applications",{"2":{"10":1}}],["apps",{"2":{"11":1,"356":1}}],["approving",{"2":{"376":1}}],["approve",{"2":{"367":1,"376":1}}],["approval",{"2":{"6":1,"370":2}}],["approach",{"2":{"10":1}}],["attacks",{"2":{"167":1}}],["attracting",{"2":{"11":1}}],["at",{"2":{"117":1,"191":1,"205":1,"356":1,"362":1,"376":1}}],["atomically",{"2":{"21":1}}],["atomic",{"2":{"16":1}}],["aave",{"2":{"11":1,"356":2,"365":2}}],["aa",{"2":{"10":1,"12":1}}],["achieved",{"2":{"382":1}}],["achieve",{"2":{"360":1,"363":2,"381":2,"382":1}}],["according",{"2":{"380":1}}],["accoount",{"2":{"376":1}}],["accountinitdata",{"2":{"359":1,"374":1,"375":1}}],["accountat",{"0":{"117":1},"1":{"118":1,"119":1,"120":1,"121":1},"2":{"117":1,"120":1}}],["account",{"0":{"374":1,"375":1,"379":1},"1":{"380":1},"2":{"6":1,"21":2,"22":2,"26":2,"27":2,"52":2,"53":2,"56":2,"57":2,"60":1,"64":1,"65":2,"67":1,"69":1,"71":1,"74":1,"85":4,"86":2,"88":1,"89":5,"90":1,"91":1,"103":2,"104":1,"112":1,"117":1,"118":1,"126":2,"128":1,"129":1,"137":2,"139":2,"147":1,"151":2,"153":2,"155":1,"161":2,"167":1,"173":1,"207":2,"232":2,"234":1,"236":2,"250":1,"285":3,"286":1,"347":1,"359":5,"363":2,"365":2,"370":1,"374":1,"375":3,"376":1,"379":6,"380":6}}],["accounts",{"0":{"6":1,"380":1},"2":{"6":1,"16":1,"31":1,"52":2,"56":1,"59":3,"64":1,"112":1,"117":1,"143":1,"285":1,"324":1,"358":1,"379":3}}],["access",{"2":{"324":1}}],["accept",{"2":{"362":1}}],["accepted",{"2":{"109":1}}],["accepting",{"2":{"8":1}}],["actual",{"2":{"109":1,"145":1,"187":1,"225":1}}],["action",{"0":{"366":1},"2":{"183":1,"187":1,"248":1,"297":1,"298":1,"302":1,"362":1,"376":1}}],["actions",{"0":{"213":1,"364":1},"1":{"214":1,"365":1,"366":1,"367":1},"2":{"44":1,"48":2,"94":1,"97":1,"98":1,"99":1,"101":2,"103":1,"189":1,"201":1,"213":1,"297":1,"360":1,"365":1,"376":1,"378":1}}],["active",{"2":{"86":1}}],["activeaccountsalt",{"0":{"38":1},"1":{"39":1},"2":{"38":1,"52":1,"100":1}}],["act",{"2":{"8":1,"379":1}}],["acrosscalltx",{"2":{"376":2}}],["acrossapprovetx",{"2":{"376":2}}],["acrossbridgeplugin",{"2":{"376":1}}],["across",{"0":{"361":1},"2":{"1":1,"3":1,"4":1,"8":1,"85":1,"103":1,"181":1,"230":1,"232":1,"234":1,"236":1,"238":1,"248":1,"276":1,"279":1,"281":1,"282":1,"283":1,"290":1,"294":1,"330":1,"332":1,"333":1,"360":1,"361":2,"363":3,"365":1,"367":1,"376":5,"379":1,"382":1,"384":3}}],["aspects",{"2":{"382":1}}],["ascending",{"2":{"283":1}}],["assume",{"2":{"365":1}}],["assuming",{"2":{"55":1,"63":1,"72":1,"89":1}}],["associated",{"2":{"141":1,"320":1,"321":1}}],["assets",{"2":{"366":1,"376":1}}],["asset",{"2":{"12":1}}],["asynchronous",{"2":{"67":1,"85":1,"93":1}}],["async",{"0":{"46":1,"70":1,"79":1,"87":1,"96":1,"106":1,"322":1},"2":{"48":1,"108":2,"308":1,"362":1,"376":1}}],["as",{"2":{"3":1,"8":1,"31":2,"44":1,"93":2,"109":1,"143":1,"155":1,"181":1,"199":1,"221":1,"230":1,"234":1,"236":1,"242":1,"248":1,"250":2,"254":1,"258":1,"332":1,"336":1,"356":1,"358":1,"359":1,"360":3,"361":4,"362":7,"364":1,"365":1,"367":2,"376":4,"379":1,"380":1,"381":2,"382":2}}],["a",{"0":{"356":1,"358":1,"360":1,"362":1,"363":1,"369":1,"374":1,"375":1},"1":{"357":1,"358":1,"359":1,"360":1,"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1},"2":{"1":3,"3":2,"16":1,"21":3,"22":1,"23":1,"26":4,"27":1,"28":1,"43":2,"44":4,"45":1,"49":1,"52":1,"53":2,"59":1,"60":1,"67":2,"68":1,"69":1,"76":2,"78":1,"81":1,"86":2,"90":1,"93":2,"95":2,"105":1,"117":2,"119":1,"122":1,"123":1,"128":1,"129":1,"139":1,"153":1,"155":1,"167":1,"181":1,"183":1,"199":1,"201":3,"207":1,"221":1,"230":1,"232":2,"236":1,"238":2,"242":1,"248":2,"250":3,"254":1,"256":1,"258":1,"276":1,"279":2,"281":2,"285":3,"287":2,"290":2,"294":1,"297":3,"304":3,"306":2,"307":2,"308":1,"310":3,"315":3,"320":1,"321":1,"328":3,"330":1,"331":1,"332":2,"334":1,"336":1,"338":1,"342":1,"344":1,"347":3,"349":1,"352":3,"356":4,"358":2,"360":7,"361":5,"362":9,"363":1,"364":4,"365":4,"366":1,"369":2,"372":1,"374":1,"375":1,"376":11,"377":1,"378":1,"379":1,"380":3,"381":5,"382":7,"384":1}}]],"serializationVersion":2} diff --git a/docs/dist/accounts/biconomy/index.html b/docs/dist/accounts/biconomy/index.html index 9d85335..63dbbd3 100644 --- a/docs/dist/accounts/biconomy/index.html +++ b/docs/dist/accounts/biconomy/index.html @@ -19,7 +19,7 @@
Skip to content

Initializing a Biconomy account

To initialize a Biconomy account, you use the following function

const klaster = await initKlaster({
-  accountInitData: loadBicoV2Account({
+  accountInitData: loadBiconomyV2Account({
     owner: '0xEOA_OWNER',
   }),
   nodeUrl: 'https://node-url',
diff --git a/docs/dist/assets/biconomy-CEkW8c3B.js b/docs/dist/assets/biconomy-CEkW8c3B.js
index 86610ee..3c4c7ed 100644
--- a/docs/dist/assets/biconomy-CEkW8c3B.js
+++ b/docs/dist/assets/biconomy-CEkW8c3B.js
@@ -1,7 +1,7 @@
 import{u as a,j as s}from"./index-CMKOqEG3.js";const r=void 0;function e(i){const n={a:"a",code:"code",div:"div",h2:"h2",p:"p",pre:"pre",span:"span",...a(),...i.components};return s.jsxs(s.Fragment,{children:[s.jsxs(n.h2,{id:"initializing-a-biconomy-account",children:["Initializing a Biconomy account",s.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#initializing-a-biconomy-account",children:s.jsx(n.div,{"data-autolink-icon":!0})})]}),`
 `,s.jsx(n.p,{children:"To initialize a Biconomy account, you use the following function"}),`
 `,s.jsx(n.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0",children:s.jsxs(n.code,{children:[s.jsxs(n.span,{className:"line",children:[s.jsx(n.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:"const"}),s.jsx(n.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:" klaster"}),s.jsx(n.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:" ="}),s.jsx(n.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:" await"}),s.jsx(n.span,{style:{color:"#6F42C1","--shiki-dark":"#DCBDFB"},children:" initKlaster"}),s.jsx(n.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"({"})]}),`
-`,s.jsxs(n.span,{className:"line",children:[s.jsx(n.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"  accountInitData: "}),s.jsx(n.span,{style:{color:"#6F42C1","--shiki-dark":"#DCBDFB"},children:"loadBicoV2Account"}),s.jsx(n.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"({"})]}),`
+`,s.jsxs(n.span,{className:"line",children:[s.jsx(n.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"  accountInitData: "}),s.jsx(n.span,{style:{color:"#6F42C1","--shiki-dark":"#DCBDFB"},children:"loadBiconomyV2Account"}),s.jsx(n.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"({"})]}),`
 `,s.jsxs(n.span,{className:"line",children:[s.jsx(n.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"    owner: "}),s.jsx(n.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:"'0xEOA_OWNER'"}),s.jsx(n.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),`
 `,s.jsx(n.span,{className:"line",children:s.jsx(n.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"  }),"})}),`
 `,s.jsxs(n.span,{className:"line",children:[s.jsx(n.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"  nodeUrl: "}),s.jsx(n.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:"'https://node-url'"}),s.jsx(n.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),`
diff --git a/docs/dist/assets/getting-started-ES79u9G9.js b/docs/dist/assets/getting-started-ES79u9G9.js
index a0b0c90..f7ca3d4 100644
--- a/docs/dist/assets/getting-started-ES79u9G9.js
+++ b/docs/dist/assets/getting-started-ES79u9G9.js
@@ -16,7 +16,7 @@ Transaction (or `,s.jsx(e.code,{children:"iTx"}),")."]}),`
 information which Klaster needs to derive a counterfactural `,s.jsx(e.code,{children:"ERC4337"}),` Smart Contract Accounts. Klaster supports various Account
 Vendors and you can check the supported options in the `,s.jsx(e.em,{children:"Accounts"})," section of the docs."]}),s.jsx(e.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0",children:s.jsxs(e.code,{children:[s.jsx(e.span,{className:"line",children:s.jsx(e.span,{style:{color:"#6A737D","--shiki-dark":"#768390"},children:"// Intialize Klaster with a Biconomy account"})}),`
 `,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:"const"}),s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:" klaster"}),s.jsx(e.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:" ="}),s.jsx(e.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:" await"}),s.jsx(e.span,{style:{color:"#6F42C1","--shiki-dark":"#DCBDFB"},children:" initKlaster"}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"({"})]}),`
-`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"  accountInitData: "}),s.jsx(e.span,{style:{color:"#6F42C1","--shiki-dark":"#DCBDFB"},children:"loadBicoV2Account"}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"({"})]}),`
+`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"  accountInitData: "}),s.jsx(e.span,{style:{color:"#6F42C1","--shiki-dark":"#DCBDFB"},children:"loadBiconomyV2Account"}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"({"})]}),`
 `,s.jsx(e.span,{className:"line",children:s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"    owner: account.address,"})}),`
 `,s.jsx(e.span,{className:"line",children:s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"  }),"})}),`
 `,s.jsx(e.span,{className:"line",children:s.jsx(e.span,{style:{color:"#6A737D","--shiki-dark":"#768390"},children:"  // NodeURL provided by the SDK is hosted by Klaster"})}),`
diff --git a/docs/dist/assets/zero-to-hero-klaster-guide-1gHVXvjV.js b/docs/dist/assets/zero-to-hero-klaster-guide-1gHVXvjV.js
index a52adf8..3b334e3 100644
--- a/docs/dist/assets/zero-to-hero-klaster-guide-1gHVXvjV.js
+++ b/docs/dist/assets/zero-to-hero-klaster-guide-1gHVXvjV.js
@@ -18,7 +18,7 @@ in conjuction with viem.`})}),`
 `,s.jsx(e.span,{className:"line",children:s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"  buildRpcInfo,"})}),`
 `,s.jsx(e.span,{className:"line",children:s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"  initKlaster,"})}),`
 `,s.jsx(e.span,{className:"line",children:s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"  klasterNodeHost,"})}),`
-`,s.jsx(e.span,{className:"line",children:s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"  loadBicoV2Account,"})}),`
+`,s.jsx(e.span,{className:"line",children:s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"  loadBiconomyV2Account,"})}),`
 `,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"} "}),s.jsx(e.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:"from"}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:' "klaster-sdk"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:";"})]}),`
 `,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:"import"}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:" { createWalletClient, custom, http } "}),s.jsx(e.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:"from"}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:' "viem"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:";"})]}),`
 `,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:"import"}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:" { generatePrivateKey, privateKeyToAccount } "}),s.jsx(e.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:"from"}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:' "viem/accounts"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:";"})]}),`
@@ -52,7 +52,7 @@ we will use the Biconomy account provider:`}),`
 `,s.jsx(e.span,{className:"line",children:s.jsx(e.span,{style:{color:"#6A737D","--shiki-dark":"#768390"},children:"// Initializing the Klaster SDK with Biconomy as the smart contract account"})}),`
 `,s.jsx(e.span,{className:"line",children:s.jsx(e.span,{style:{color:"#6A737D","--shiki-dark":"#768390"},children:"// provider."})}),`
 `,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:"const"}),s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:" klaster"}),s.jsx(e.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:" ="}),s.jsx(e.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:" await"}),s.jsx(e.span,{style:{color:"#6F42C1","--shiki-dark":"#DCBDFB"},children:" initKlaster"}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"({"})]}),`
-`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"  accountInitData: "}),s.jsx(e.span,{style:{color:"#6F42C1","--shiki-dark":"#DCBDFB"},children:"loadBicoV2Account"}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"({"})]}),`
+`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"  accountInitData: "}),s.jsx(e.span,{style:{color:"#6F42C1","--shiki-dark":"#DCBDFB"},children:"loadBiconomyV2Account"}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"({"})]}),`
 `,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"    owner: address, "}),s.jsx(e.span,{style:{color:"#6A737D","--shiki-dark":"#768390"},children:"// Fetch"})]}),`
 `,s.jsx(e.span,{className:"line",children:s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"  }),"})}),`
 `,s.jsx(e.span,{className:"line",children:s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"  nodeUrl: klasterNodeHost.default,"})}),`
diff --git a/docs/dist/getting-started/index.html b/docs/dist/getting-started/index.html
index 505ab2a..ffda72c 100644
--- a/docs/dist/getting-started/index.html
+++ b/docs/dist/getting-started/index.html
@@ -34,7 +34,7 @@ 

ERC4337 Smart Contract Accounts. Klaster supports various Account Vendors and you can check the supported options in the Accounts section of the docs.

// Intialize Klaster with a Biconomy account
 const klaster = await initKlaster({
-  accountInitData: loadBicoV2Account({
+  accountInitData: loadBiconomyV2Account({
     owner: account.address,
   }),
   // NodeURL provided by the SDK is hosted by Klaster
diff --git a/docs/dist/zero-to-hero-klaster-guide/index.html b/docs/dist/zero-to-hero-klaster-guide/index.html
index 7fec517..628e1c4 100644
--- a/docs/dist/zero-to-hero-klaster-guide/index.html
+++ b/docs/dist/zero-to-hero-klaster-guide/index.html
@@ -36,7 +36,7 @@ 

buildRpcInfo, initKlaster, klasterNodeHost, - loadBicoV2Account, + loadBiconomyV2Account, } from "klaster-sdk"; import { createWalletClient, custom, http } from "viem"; import { generatePrivateKey, privateKeyToAccount } from "viem/accounts"; @@ -70,7 +70,7 @@

// Initializing the Klaster SDK with Biconomy as the smart contract account // provider. const klaster = await initKlaster({ - accountInitData: loadBicoV2Account({ + accountInitData: loadBiconomyV2Account({ owner: address, // Fetch }), nodeUrl: klasterNodeHost.default, diff --git a/docs/pages/accounts/biconomy.mdx b/docs/pages/accounts/biconomy.mdx index 839e92a..a64f8b3 100644 --- a/docs/pages/accounts/biconomy.mdx +++ b/docs/pages/accounts/biconomy.mdx @@ -4,7 +4,7 @@ To initialize a Biconomy account, you use the following function ```ts const klaster = await initKlaster({ - accountInitData: loadBicoV2Account({ + accountInitData: loadBiconomyV2Account({ owner: '0xEOA_OWNER', }), nodeUrl: 'https://node-url', diff --git a/docs/pages/zero-to-hero-klaster-guide.mdx b/docs/pages/zero-to-hero-klaster-guide.mdx index 21dca37..434b78c 100644 --- a/docs/pages/zero-to-hero-klaster-guide.mdx +++ b/docs/pages/zero-to-hero-klaster-guide.mdx @@ -35,7 +35,7 @@ import { buildRpcInfo, initKlaster, klasterNodeHost, - loadBicoV2Account, + loadBiconomyV2Account, } from "klaster-sdk"; import { createWalletClient, custom, http } from "viem"; import { generatePrivateKey, privateKeyToAccount } from "viem/accounts"; @@ -74,7 +74,7 @@ const [address] = await signer.getAddresses(); // Initializing the Klaster SDK with Biconomy as the smart contract account // provider. const klaster = await initKlaster({ - accountInitData: loadBicoV2Account({ + accountInitData: loadBiconomyV2Account({ owner: address, // Fetch }), nodeUrl: klasterNodeHost.default, diff --git a/docs/snippets/itx.ts b/docs/snippets/itx.ts index 9156565..e605ae6 100644 --- a/docs/snippets/itx.ts +++ b/docs/snippets/itx.ts @@ -3,7 +3,7 @@ import { buildItx, initKlaster, klasterNodeHost, - loadBicoV2Account, + loadBiconomyV2Account, rawTx, singleTx, } from "klaster-sdk"; @@ -22,7 +22,7 @@ const account = privateKeyToAccount(privKey); // [!region initKlaster] // Intialize Klaster with a Biconomy account const klaster = await initKlaster({ - accountInitData: loadBicoV2Account({ + accountInitData: loadBiconomyV2Account({ owner: account.address, }), // NodeURL provided by the SDK is hosted by Klaster