[{"data":1,"prerenderedAt":1547},["ShallowReactive",2],{"navigation_docs":3,"-mini-apps-provider-runtime":137,"-mini-apps-provider-runtime-surround":1542},[4,27,57,79,97,115],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":26},"Getting Started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18,22],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":19,"path":20,"stem":21},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",{"title":23,"path":24,"stem":25},"Architecture","\u002Fgetting-started\u002Farchitecture","1.getting-started\u002F4.architecture",false,{"title":28,"icon":29,"path":30,"stem":31,"children":32,"page":26},"Mini Apps","i-lucide-smartphone","\u002Fmini-apps","2.mini-apps",[33,37,41,45,49,53],{"title":34,"path":35,"stem":36},"Provider runtime","\u002Fmini-apps\u002Fprovider-runtime","2.mini-apps\u002F1.provider-runtime",{"title":38,"path":39,"stem":40},"Ethereum provider","\u002Fmini-apps\u002Fethereum-provider","2.mini-apps\u002F2.ethereum-provider",{"title":42,"path":43,"stem":44},"Language and i18n","\u002Fmini-apps\u002Flanguage-i18n","2.mini-apps\u002F3.language-i18n",{"title":46,"path":47,"stem":48},"Local simulator","\u002Fmini-apps\u002Flocal-simulator","2.mini-apps\u002F4.local-simulator",{"title":50,"path":51,"stem":52},"Nuxt module","\u002Fmini-apps\u002Fnuxt-module","2.mini-apps\u002F5.nuxt-module",{"title":54,"path":55,"stem":56},"Host runtime","\u002Fmini-apps\u002Fhost-runtime","2.mini-apps\u002F6.host-runtime",{"title":58,"icon":59,"path":60,"stem":61,"children":62,"page":26},"Auth","i-lucide-key-round","\u002Fauth","3.auth",[63,67,71,75],{"title":64,"path":65,"stem":66},"Nimiq Better Auth","\u002Fauth\u002Fnimiq-better-auth","3.auth\u002F1.nimiq-better-auth",{"title":68,"path":69,"stem":70},"Cross-device approval","\u002Fauth\u002Fcross-device","3.auth\u002F2.cross-device",{"title":72,"path":73,"stem":74},"Nimiq cross-device adapter","\u002Fauth\u002Fnimiq-adapter","3.auth\u002F3.nimiq-adapter",{"title":76,"path":77,"stem":78},"Security model","\u002Fauth\u002Fsecurity-model","3.auth\u002F4.security-model",{"title":80,"icon":81,"path":82,"stem":83,"children":84,"page":26},"Utilities","i-lucide-wrench","\u002Futilities","4.utilities",[85,89,93],{"title":86,"path":87,"stem":88},"Universal Nimiq facade","\u002Futilities\u002Funimiq","4.utilities\u002F1.unimiq",{"title":90,"path":91,"stem":92},"ERC-20 helpers","\u002Futilities\u002Funerc20","4.utilities\u002F2.unerc20",{"title":94,"path":95,"stem":96},"Better Auth ledger","\u002Futilities\u002Fledger","4.utilities\u002F3.ledger",{"title":98,"icon":99,"path":100,"stem":101,"children":102,"page":26},"Testing","i-lucide-test-tube-2","\u002Ftesting","5.testing",[103,107,111],{"title":104,"path":105,"stem":106},"Local scenarios","\u002Ftesting\u002Flocal-scenarios","5.testing\u002F1.local-scenarios",{"title":108,"path":109,"stem":110},"Vitest helpers","\u002Ftesting\u002Fvitest-helpers","5.testing\u002F2.vitest-helpers",{"title":112,"path":113,"stem":114},"Bridge mode","\u002Ftesting\u002Fbridge-mode","5.testing\u002F3.bridge-mode",{"title":116,"icon":117,"path":118,"stem":119,"children":120,"page":26},"Reference","i-lucide-book-open","\u002Freference","6.reference",[121,125,129,133],{"title":122,"path":123,"stem":124},"Packages","\u002Freference\u002Fpackages","6.reference\u002F1.packages",{"title":126,"path":127,"stem":128},"Endpoints","\u002Freference\u002Fendpoints","6.reference\u002F2.endpoints",{"title":130,"path":131,"stem":132},"Runtime support","\u002Freference\u002Fruntime-support","6.reference\u002F3.runtime-support",{"title":134,"path":135,"stem":136},"Public API exports","\u002Freference\u002Fpublic-api","6.reference\u002F4.public-api",{"id":138,"title":34,"body":139,"description":1536,"extension":1537,"links":1538,"meta":1539,"navigation":268,"path":35,"seo":1540,"stem":36,"__hash__":1541},"docs\u002F2.mini-apps\u002F1.provider-runtime.md",{"type":140,"value":141,"toc":1527},"minimark",[142,155,162,167,173,179,189,193,204,495,498,508,512,515,636,639,686,690,696,1017,1019,1034,1038,1041,1225,1229,1234,1495,1499,1523],[143,144,145,146,150,151,154],"p",{},"Use ",[147,148,149],"code",{},"@onmax\u002Fnimiq-mini-app-kit"," when your app needs the Nimiq Pay ",[147,152,153],{},"window.nimiq"," provider. The helpers give you one typed entry point for the real host, the Nuxt simulator, and tests with custom sources.",[143,156,157,158,161],{},"Do not use these helpers for generic Nimiq RPC access. Use ",[147,159,160],{},"@onmax\u002Funimiq"," when the app is not running as a Nimiq Pay mini app.",[163,164,166],"h2",{"id":165},"choose-the-provider-path","Choose the provider path",[143,168,145,169,172],{},[147,170,171],{},"initMiniAppProvider()"," when an action cannot continue without the provider.",[143,174,145,175,178],{},[147,176,177],{},"getMiniAppProvider()"," when you only need to render an available, loading, or unavailable state.",[143,180,145,181,184,185,188],{},[147,182,183],{},"source"," or ",[147,186,187],{},"target"," only in tests, embedded shells, or non-window runtimes.",[163,190,192],{"id":191},"wait-before-a-wallet-action","Wait before a wallet action",[143,194,195,196,199,200,203],{},"Put confirmation-requiring calls behind a user action. ",[147,197,198],{},"listAccounts()",", ",[147,201,202],{},"sign()",", and transaction methods can open host approval UI.",[205,206,212],"pre",{"className":207,"code":208,"filename":209,"language":210,"meta":211,"style":211},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import {\n  initMiniAppProvider,\n  isMiniAppProviderError,\n} from '@onmax\u002Fnimiq-mini-app-kit'\n\nexport async function signCheckout(orderId: string) {\n  const provider = await initMiniAppProvider({ timeout: 10_000 })\n  const result = await provider.sign(`Confirm checkout ${orderId}`)\n\n  if (isMiniAppProviderError(result))\n    throw new Error(result.error.message)\n\n  return {\n    publicKey: result.publicKey,\n    signature: result.signature,\n  }\n}\n","app\u002Fnimiq-pay.ts","ts","",[147,213,214,227,237,245,263,270,306,345,383,388,408,436,441,449,466,483,489],{"__ignoreMap":211},[215,216,219,223],"span",{"class":217,"line":218},"line",1,[215,220,222],{"class":221},"s7zQu","import",[215,224,226],{"class":225},"sMK4o"," {\n",[215,228,230,234],{"class":217,"line":229},2,[215,231,233],{"class":232},"sTEyZ","  initMiniAppProvider",[215,235,236],{"class":225},",\n",[215,238,240,243],{"class":217,"line":239},3,[215,241,242],{"class":232},"  isMiniAppProviderError",[215,244,236],{"class":225},[215,246,248,251,254,257,260],{"class":217,"line":247},4,[215,249,250],{"class":225},"}",[215,252,253],{"class":221}," from",[215,255,256],{"class":225}," '",[215,258,149],{"class":259},"sfazB",[215,261,262],{"class":225},"'\n",[215,264,266],{"class":217,"line":265},5,[215,267,269],{"emptyLinePlaceholder":268},true,"\n",[215,271,273,276,280,283,287,290,294,297,301,304],{"class":217,"line":272},6,[215,274,275],{"class":221},"export",[215,277,279],{"class":278},"spNyl"," async",[215,281,282],{"class":278}," function",[215,284,286],{"class":285},"s2Zo4"," signCheckout",[215,288,289],{"class":225},"(",[215,291,293],{"class":292},"sHdIc","orderId",[215,295,296],{"class":225},":",[215,298,300],{"class":299},"sBMFI"," string",[215,302,303],{"class":225},")",[215,305,226],{"class":225},[215,307,309,312,315,318,321,324,327,330,333,335,339,342],{"class":217,"line":308},7,[215,310,311],{"class":278},"  const",[215,313,314],{"class":232}," provider",[215,316,317],{"class":225}," =",[215,319,320],{"class":221}," await",[215,322,323],{"class":285}," initMiniAppProvider",[215,325,289],{"class":326},"swJcz",[215,328,329],{"class":225},"{",[215,331,332],{"class":326}," timeout",[215,334,296],{"class":225},[215,336,338],{"class":337},"sbssI"," 10_000",[215,340,341],{"class":225}," }",[215,343,344],{"class":326},")\n",[215,346,348,350,353,355,357,359,362,365,367,370,373,376,378,381],{"class":217,"line":347},8,[215,349,311],{"class":278},[215,351,352],{"class":232}," result",[215,354,317],{"class":225},[215,356,320],{"class":221},[215,358,314],{"class":232},[215,360,361],{"class":225},".",[215,363,364],{"class":285},"sign",[215,366,289],{"class":326},[215,368,369],{"class":225},"`",[215,371,372],{"class":259},"Confirm checkout ",[215,374,375],{"class":225},"${",[215,377,293],{"class":232},[215,379,380],{"class":225},"}`",[215,382,344],{"class":326},[215,384,386],{"class":217,"line":385},9,[215,387,269],{"emptyLinePlaceholder":268},[215,389,391,394,397,400,402,405],{"class":217,"line":390},10,[215,392,393],{"class":221},"  if",[215,395,396],{"class":326}," (",[215,398,399],{"class":285},"isMiniAppProviderError",[215,401,289],{"class":326},[215,403,404],{"class":232},"result",[215,406,407],{"class":326},"))\n",[215,409,411,414,417,420,422,424,426,429,431,434],{"class":217,"line":410},11,[215,412,413],{"class":221},"    throw",[215,415,416],{"class":225}," new",[215,418,419],{"class":285}," Error",[215,421,289],{"class":326},[215,423,404],{"class":232},[215,425,361],{"class":225},[215,427,428],{"class":232},"error",[215,430,361],{"class":225},[215,432,433],{"class":232},"message",[215,435,344],{"class":326},[215,437,439],{"class":217,"line":438},12,[215,440,269],{"emptyLinePlaceholder":268},[215,442,444,447],{"class":217,"line":443},13,[215,445,446],{"class":221},"  return",[215,448,226],{"class":225},[215,450,452,455,457,459,461,464],{"class":217,"line":451},14,[215,453,454],{"class":326},"    publicKey",[215,456,296],{"class":225},[215,458,352],{"class":232},[215,460,361],{"class":225},[215,462,463],{"class":232},"publicKey",[215,465,236],{"class":225},[215,467,469,472,474,476,478,481],{"class":217,"line":468},15,[215,470,471],{"class":326},"    signature",[215,473,296],{"class":225},[215,475,352],{"class":232},[215,477,361],{"class":225},[215,479,480],{"class":232},"signature",[215,482,236],{"class":225},[215,484,486],{"class":217,"line":485},16,[215,487,488],{"class":225},"  }\n",[215,490,492],{"class":217,"line":491},17,[215,493,494],{"class":225},"}\n",[143,496,497],{},"Expected behavior:",[499,500,501,505],"ul",{},[502,503,504],"li",{},"Inside Nimiq Pay or the simulator, the host asks the user to approve the signature.",[502,506,507],{},"Outside the host, the promise rejects after the timeout with guidance to open the app inside Nimiq Pay.",[163,509,511],{"id":510},"render-provider-state-without-prompting","Render provider state without prompting",[143,513,514],{},"Reading the provider synchronously does not ask for account access. Use it for UI state before the user clicks a wallet action.",[205,516,519],{"className":207,"code":517,"filename":518,"language":210,"meta":211,"style":211},"import {\n  getMiniAppProvider,\n  hasMiniAppProvider,\n} from '@onmax\u002Fnimiq-mini-app-kit'\n\nexport function readMiniAppRuntimeState() {\n  const provider = getMiniAppProvider()\n\n  return {\n    available: hasMiniAppProvider(),\n    canSign: Boolean(provider),\n  }\n}\n","app\u002Fprovider-state.ts",[147,520,521,527,534,541,553,557,571,585,589,595,609,628,632],{"__ignoreMap":211},[215,522,523,525],{"class":217,"line":218},[215,524,222],{"class":221},[215,526,226],{"class":225},[215,528,529,532],{"class":217,"line":229},[215,530,531],{"class":232},"  getMiniAppProvider",[215,533,236],{"class":225},[215,535,536,539],{"class":217,"line":239},[215,537,538],{"class":232},"  hasMiniAppProvider",[215,540,236],{"class":225},[215,542,543,545,547,549,551],{"class":217,"line":247},[215,544,250],{"class":225},[215,546,253],{"class":221},[215,548,256],{"class":225},[215,550,149],{"class":259},[215,552,262],{"class":225},[215,554,555],{"class":217,"line":265},[215,556,269],{"emptyLinePlaceholder":268},[215,558,559,561,563,566,569],{"class":217,"line":272},[215,560,275],{"class":221},[215,562,282],{"class":278},[215,564,565],{"class":285}," readMiniAppRuntimeState",[215,567,568],{"class":225},"()",[215,570,226],{"class":225},[215,572,573,575,577,579,582],{"class":217,"line":308},[215,574,311],{"class":278},[215,576,314],{"class":232},[215,578,317],{"class":225},[215,580,581],{"class":285}," getMiniAppProvider",[215,583,584],{"class":326},"()\n",[215,586,587],{"class":217,"line":347},[215,588,269],{"emptyLinePlaceholder":268},[215,590,591,593],{"class":217,"line":385},[215,592,446],{"class":221},[215,594,226],{"class":225},[215,596,597,600,602,605,607],{"class":217,"line":390},[215,598,599],{"class":326},"    available",[215,601,296],{"class":225},[215,603,604],{"class":285}," hasMiniAppProvider",[215,606,568],{"class":326},[215,608,236],{"class":225},[215,610,611,614,616,619,621,624,626],{"class":217,"line":410},[215,612,613],{"class":326},"    canSign",[215,615,296],{"class":225},[215,617,618],{"class":285}," Boolean",[215,620,289],{"class":326},[215,622,623],{"class":232},"provider",[215,625,303],{"class":326},[215,627,236],{"class":225},[215,629,630],{"class":217,"line":438},[215,631,488],{"class":225},[215,633,634],{"class":217,"line":443},[215,635,494],{"class":225},[143,637,638],{},"Expected result outside Nimiq Pay:",[205,640,645],{"className":641,"code":642,"filename":643,"language":644,"meta":211,"style":211},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"available\": false,\n  \"canSign\": false\n}\n","output","json",[147,646,647,652,668,682],{"__ignoreMap":211},[215,648,649],{"class":217,"line":218},[215,650,651],{"class":225},"{\n",[215,653,654,657,660,663,665],{"class":217,"line":229},[215,655,656],{"class":225},"  \"",[215,658,659],{"class":278},"available",[215,661,662],{"class":225},"\"",[215,664,296],{"class":225},[215,666,667],{"class":225}," false,\n",[215,669,670,672,675,677,679],{"class":217,"line":239},[215,671,656],{"class":225},[215,673,674],{"class":278},"canSign",[215,676,662],{"class":225},[215,678,296],{"class":225},[215,680,681],{"class":225}," false\n",[215,683,684],{"class":217,"line":247},[215,685,494],{"class":225},[163,687,689],{"id":688},"send-a-nimiq-payment-with-order-data","Send a Nimiq payment with order data",[143,691,692,693,361],{},"Use Nimiq payment methods when the receiver expects Luna amounts. ",[147,694,695],{},"1 NIM = 100000 Luna",[205,697,700],{"className":207,"code":698,"filename":699,"language":210,"meta":211,"style":211},"import {\n  initMiniAppProvider,\n  isMiniAppProviderError,\n} from '@onmax\u002Fnimiq-mini-app-kit'\n\ninterface PayOrderInput {\n  orderId: string\n  recipient: string\n  amountLuna: number\n  feeLuna?: number\n}\n\nexport async function payOrder(input: PayOrderInput) {\n  const provider = await initMiniAppProvider({ timeout: 10_000 })\n  const txHash = await provider.sendBasicTransactionWithData({\n    recipient: input.recipient,\n    value: input.amountLuna,\n    fee: input.feeLuna ?? 0,\n    data: `order:${input.orderId}`,\n  })\n\n  if (isMiniAppProviderError(txHash))\n    throw new Error(txHash.error.message)\n\n  return txHash\n}\n","app\u002Fpay-with-nim.ts",[147,701,702,708,714,720,732,736,746,756,765,775,785,789,793,817,843,865,882,898,921,947,955,960,976,999,1004,1012],{"__ignoreMap":211},[215,703,704,706],{"class":217,"line":218},[215,705,222],{"class":221},[215,707,226],{"class":225},[215,709,710,712],{"class":217,"line":229},[215,711,233],{"class":232},[215,713,236],{"class":225},[215,715,716,718],{"class":217,"line":239},[215,717,242],{"class":232},[215,719,236],{"class":225},[215,721,722,724,726,728,730],{"class":217,"line":247},[215,723,250],{"class":225},[215,725,253],{"class":221},[215,727,256],{"class":225},[215,729,149],{"class":259},[215,731,262],{"class":225},[215,733,734],{"class":217,"line":265},[215,735,269],{"emptyLinePlaceholder":268},[215,737,738,741,744],{"class":217,"line":272},[215,739,740],{"class":278},"interface",[215,742,743],{"class":299}," PayOrderInput",[215,745,226],{"class":225},[215,747,748,751,753],{"class":217,"line":308},[215,749,750],{"class":326},"  orderId",[215,752,296],{"class":225},[215,754,755],{"class":299}," string\n",[215,757,758,761,763],{"class":217,"line":347},[215,759,760],{"class":326},"  recipient",[215,762,296],{"class":225},[215,764,755],{"class":299},[215,766,767,770,772],{"class":217,"line":385},[215,768,769],{"class":326},"  amountLuna",[215,771,296],{"class":225},[215,773,774],{"class":299}," number\n",[215,776,777,780,783],{"class":217,"line":390},[215,778,779],{"class":326},"  feeLuna",[215,781,782],{"class":225},"?:",[215,784,774],{"class":299},[215,786,787],{"class":217,"line":410},[215,788,494],{"class":225},[215,790,791],{"class":217,"line":438},[215,792,269],{"emptyLinePlaceholder":268},[215,794,795,797,799,801,804,806,809,811,813,815],{"class":217,"line":443},[215,796,275],{"class":221},[215,798,279],{"class":278},[215,800,282],{"class":278},[215,802,803],{"class":285}," payOrder",[215,805,289],{"class":225},[215,807,808],{"class":292},"input",[215,810,296],{"class":225},[215,812,743],{"class":299},[215,814,303],{"class":225},[215,816,226],{"class":225},[215,818,819,821,823,825,827,829,831,833,835,837,839,841],{"class":217,"line":451},[215,820,311],{"class":278},[215,822,314],{"class":232},[215,824,317],{"class":225},[215,826,320],{"class":221},[215,828,323],{"class":285},[215,830,289],{"class":326},[215,832,329],{"class":225},[215,834,332],{"class":326},[215,836,296],{"class":225},[215,838,338],{"class":337},[215,840,341],{"class":225},[215,842,344],{"class":326},[215,844,845,847,850,852,854,856,858,861,863],{"class":217,"line":468},[215,846,311],{"class":278},[215,848,849],{"class":232}," txHash",[215,851,317],{"class":225},[215,853,320],{"class":221},[215,855,314],{"class":232},[215,857,361],{"class":225},[215,859,860],{"class":285},"sendBasicTransactionWithData",[215,862,289],{"class":326},[215,864,651],{"class":225},[215,866,867,870,872,875,877,880],{"class":217,"line":485},[215,868,869],{"class":326},"    recipient",[215,871,296],{"class":225},[215,873,874],{"class":232}," input",[215,876,361],{"class":225},[215,878,879],{"class":232},"recipient",[215,881,236],{"class":225},[215,883,884,887,889,891,893,896],{"class":217,"line":491},[215,885,886],{"class":326},"    value",[215,888,296],{"class":225},[215,890,874],{"class":232},[215,892,361],{"class":225},[215,894,895],{"class":232},"amountLuna",[215,897,236],{"class":225},[215,899,901,904,906,908,910,913,916,919],{"class":217,"line":900},18,[215,902,903],{"class":326},"    fee",[215,905,296],{"class":225},[215,907,874],{"class":232},[215,909,361],{"class":225},[215,911,912],{"class":232},"feeLuna",[215,914,915],{"class":225}," ??",[215,917,918],{"class":337}," 0",[215,920,236],{"class":225},[215,922,924,927,929,932,935,937,939,941,943,945],{"class":217,"line":923},19,[215,925,926],{"class":326},"    data",[215,928,296],{"class":225},[215,930,931],{"class":225}," `",[215,933,934],{"class":259},"order:",[215,936,375],{"class":225},[215,938,808],{"class":232},[215,940,361],{"class":225},[215,942,293],{"class":232},[215,944,380],{"class":225},[215,946,236],{"class":225},[215,948,950,953],{"class":217,"line":949},20,[215,951,952],{"class":225},"  }",[215,954,344],{"class":326},[215,956,958],{"class":217,"line":957},21,[215,959,269],{"emptyLinePlaceholder":268},[215,961,963,965,967,969,971,974],{"class":217,"line":962},22,[215,964,393],{"class":221},[215,966,396],{"class":326},[215,968,399],{"class":285},[215,970,289],{"class":326},[215,972,973],{"class":232},"txHash",[215,975,407],{"class":326},[215,977,979,981,983,985,987,989,991,993,995,997],{"class":217,"line":978},23,[215,980,413],{"class":221},[215,982,416],{"class":225},[215,984,419],{"class":285},[215,986,289],{"class":326},[215,988,973],{"class":232},[215,990,361],{"class":225},[215,992,428],{"class":232},[215,994,361],{"class":225},[215,996,433],{"class":232},[215,998,344],{"class":326},[215,1000,1002],{"class":217,"line":1001},24,[215,1003,269],{"emptyLinePlaceholder":268},[215,1005,1007,1009],{"class":217,"line":1006},25,[215,1008,446],{"class":221},[215,1010,1011],{"class":232}," txHash\n",[215,1013,1015],{"class":217,"line":1014},26,[215,1016,494],{"class":225},[143,1018,497],{},[499,1020,1021,1024,1027],{},[502,1022,1023],{},"The host previews the recipient, amount, fee, and attached data.",[502,1025,1026],{},"The function resolves to a transaction hash when the user approves.",[502,1028,1029,1030,1033],{},"The function throws a normal ",[147,1031,1032],{},"Error"," when the provider returns an error envelope.",[163,1035,1037],{"id":1036},"check-read-only-capabilities","Check read-only capabilities",[143,1039,1040],{},"Use capability checks for optional status UI. Do not block checkout only because status methods are missing.",[205,1042,1045],{"className":207,"code":1043,"filename":1044,"language":210,"meta":211,"style":211},"import {\n  hasBlockNumberCapability,\n  hasConsensusCapability,\n  initMiniAppProvider,\n} from '@onmax\u002Fnimiq-mini-app-kit'\n\nexport async function readNimiqStatus() {\n  const provider = await initMiniAppProvider({ timeout: 10_000 })\n\n  return {\n    consensusEstablished: hasConsensusCapability(provider)\n      ? await provider.isConsensusEstablished()\n      : null,\n    blockNumber: hasBlockNumberCapability(provider)\n      ? await provider.getBlockNumber()\n      : null,\n  }\n}\n","app\u002Fnetwork-status.ts",[147,1046,1047,1053,1060,1067,1073,1085,1089,1104,1130,1134,1140,1156,1172,1180,1196,1211,1217,1221],{"__ignoreMap":211},[215,1048,1049,1051],{"class":217,"line":218},[215,1050,222],{"class":221},[215,1052,226],{"class":225},[215,1054,1055,1058],{"class":217,"line":229},[215,1056,1057],{"class":232},"  hasBlockNumberCapability",[215,1059,236],{"class":225},[215,1061,1062,1065],{"class":217,"line":239},[215,1063,1064],{"class":232},"  hasConsensusCapability",[215,1066,236],{"class":225},[215,1068,1069,1071],{"class":217,"line":247},[215,1070,233],{"class":232},[215,1072,236],{"class":225},[215,1074,1075,1077,1079,1081,1083],{"class":217,"line":265},[215,1076,250],{"class":225},[215,1078,253],{"class":221},[215,1080,256],{"class":225},[215,1082,149],{"class":259},[215,1084,262],{"class":225},[215,1086,1087],{"class":217,"line":272},[215,1088,269],{"emptyLinePlaceholder":268},[215,1090,1091,1093,1095,1097,1100,1102],{"class":217,"line":308},[215,1092,275],{"class":221},[215,1094,279],{"class":278},[215,1096,282],{"class":278},[215,1098,1099],{"class":285}," readNimiqStatus",[215,1101,568],{"class":225},[215,1103,226],{"class":225},[215,1105,1106,1108,1110,1112,1114,1116,1118,1120,1122,1124,1126,1128],{"class":217,"line":347},[215,1107,311],{"class":278},[215,1109,314],{"class":232},[215,1111,317],{"class":225},[215,1113,320],{"class":221},[215,1115,323],{"class":285},[215,1117,289],{"class":326},[215,1119,329],{"class":225},[215,1121,332],{"class":326},[215,1123,296],{"class":225},[215,1125,338],{"class":337},[215,1127,341],{"class":225},[215,1129,344],{"class":326},[215,1131,1132],{"class":217,"line":385},[215,1133,269],{"emptyLinePlaceholder":268},[215,1135,1136,1138],{"class":217,"line":390},[215,1137,446],{"class":221},[215,1139,226],{"class":225},[215,1141,1142,1145,1147,1150,1152,1154],{"class":217,"line":410},[215,1143,1144],{"class":326},"    consensusEstablished",[215,1146,296],{"class":225},[215,1148,1149],{"class":285}," hasConsensusCapability",[215,1151,289],{"class":326},[215,1153,623],{"class":232},[215,1155,344],{"class":326},[215,1157,1158,1161,1163,1165,1167,1170],{"class":217,"line":438},[215,1159,1160],{"class":225},"      ?",[215,1162,320],{"class":221},[215,1164,314],{"class":232},[215,1166,361],{"class":225},[215,1168,1169],{"class":285},"isConsensusEstablished",[215,1171,584],{"class":326},[215,1173,1174,1177],{"class":217,"line":443},[215,1175,1176],{"class":225},"      :",[215,1178,1179],{"class":225}," null,\n",[215,1181,1182,1185,1187,1190,1192,1194],{"class":217,"line":451},[215,1183,1184],{"class":326},"    blockNumber",[215,1186,296],{"class":225},[215,1188,1189],{"class":285}," hasBlockNumberCapability",[215,1191,289],{"class":326},[215,1193,623],{"class":232},[215,1195,344],{"class":326},[215,1197,1198,1200,1202,1204,1206,1209],{"class":217,"line":468},[215,1199,1160],{"class":225},[215,1201,320],{"class":221},[215,1203,314],{"class":232},[215,1205,361],{"class":225},[215,1207,1208],{"class":285},"getBlockNumber",[215,1210,584],{"class":326},[215,1212,1213,1215],{"class":217,"line":485},[215,1214,1176],{"class":225},[215,1216,1179],{"class":225},[215,1218,1219],{"class":217,"line":491},[215,1220,488],{"class":225},[215,1222,1223],{"class":217,"line":900},[215,1224,494],{"class":225},[163,1226,1228],{"id":1227},"use-custom-sources-in-tests","Use custom sources in tests",[143,1230,145,1231,1233],{},[147,1232,183],{}," when your test controls when the provider appears.",[205,1235,1238],{"className":207,"code":1236,"filename":1237,"language":210,"meta":211,"style":211},"import { expect, it } from 'vitest'\nimport { waitForMiniAppProvider } from '@onmax\u002Fnimiq-mini-app-kit'\nimport { createStubNimiqProvider } from '@onmax\u002Fnimiq-mini-app-kit\u002Fdev'\n\nit('waits for delayed mini-app injection', async () => {\n  let provider = null as ReturnType\u003Ctypeof createStubNimiqProvider> | null\n\n  setTimeout(() => {\n    provider = createStubNimiqProvider()\n  }, 10)\n\n  await expect(waitForMiniAppProvider({\n    source: () => provider,\n    timeout: 100,\n    intervalMs: 5,\n  })).resolves.toBe(provider)\n})\n","test\u002Fwait-for-provider.test.ts",[147,1239,1240,1267,1286,1306,1310,1337,1369,1373,1386,1397,1407,1411,1427,1442,1454,1466,1489],{"__ignoreMap":211},[215,1241,1242,1244,1247,1250,1253,1256,1258,1260,1262,1265],{"class":217,"line":218},[215,1243,222],{"class":221},[215,1245,1246],{"class":225}," {",[215,1248,1249],{"class":232}," expect",[215,1251,1252],{"class":225},",",[215,1254,1255],{"class":232}," it",[215,1257,341],{"class":225},[215,1259,253],{"class":221},[215,1261,256],{"class":225},[215,1263,1264],{"class":259},"vitest",[215,1266,262],{"class":225},[215,1268,1269,1271,1273,1276,1278,1280,1282,1284],{"class":217,"line":229},[215,1270,222],{"class":221},[215,1272,1246],{"class":225},[215,1274,1275],{"class":232}," waitForMiniAppProvider",[215,1277,341],{"class":225},[215,1279,253],{"class":221},[215,1281,256],{"class":225},[215,1283,149],{"class":259},[215,1285,262],{"class":225},[215,1287,1288,1290,1292,1295,1297,1299,1301,1304],{"class":217,"line":239},[215,1289,222],{"class":221},[215,1291,1246],{"class":225},[215,1293,1294],{"class":232}," createStubNimiqProvider",[215,1296,341],{"class":225},[215,1298,253],{"class":221},[215,1300,256],{"class":225},[215,1302,1303],{"class":259},"@onmax\u002Fnimiq-mini-app-kit\u002Fdev",[215,1305,262],{"class":225},[215,1307,1308],{"class":217,"line":247},[215,1309,269],{"emptyLinePlaceholder":268},[215,1311,1312,1315,1317,1320,1323,1325,1327,1329,1332,1335],{"class":217,"line":265},[215,1313,1314],{"class":285},"it",[215,1316,289],{"class":232},[215,1318,1319],{"class":225},"'",[215,1321,1322],{"class":259},"waits for delayed mini-app injection",[215,1324,1319],{"class":225},[215,1326,1252],{"class":225},[215,1328,279],{"class":278},[215,1330,1331],{"class":225}," ()",[215,1333,1334],{"class":278}," =>",[215,1336,226],{"class":225},[215,1338,1339,1342,1344,1346,1349,1352,1355,1358,1360,1363,1366],{"class":217,"line":272},[215,1340,1341],{"class":278},"  let",[215,1343,314],{"class":232},[215,1345,317],{"class":225},[215,1347,1348],{"class":225}," null",[215,1350,1351],{"class":221}," as",[215,1353,1354],{"class":299}," ReturnType",[215,1356,1357],{"class":225},"\u003Ctypeof",[215,1359,1294],{"class":232},[215,1361,1362],{"class":225},">",[215,1364,1365],{"class":225}," |",[215,1367,1368],{"class":299}," null\n",[215,1370,1371],{"class":217,"line":308},[215,1372,269],{"emptyLinePlaceholder":268},[215,1374,1375,1378,1380,1382,1384],{"class":217,"line":347},[215,1376,1377],{"class":285},"  setTimeout",[215,1379,289],{"class":326},[215,1381,568],{"class":225},[215,1383,1334],{"class":278},[215,1385,226],{"class":225},[215,1387,1388,1391,1393,1395],{"class":217,"line":385},[215,1389,1390],{"class":232},"    provider",[215,1392,317],{"class":225},[215,1394,1294],{"class":285},[215,1396,584],{"class":326},[215,1398,1399,1402,1405],{"class":217,"line":390},[215,1400,1401],{"class":225},"  },",[215,1403,1404],{"class":337}," 10",[215,1406,344],{"class":326},[215,1408,1409],{"class":217,"line":410},[215,1410,269],{"emptyLinePlaceholder":268},[215,1412,1413,1416,1418,1420,1423,1425],{"class":217,"line":438},[215,1414,1415],{"class":221},"  await",[215,1417,1249],{"class":285},[215,1419,289],{"class":326},[215,1421,1422],{"class":285},"waitForMiniAppProvider",[215,1424,289],{"class":326},[215,1426,651],{"class":225},[215,1428,1429,1432,1434,1436,1438,1440],{"class":217,"line":443},[215,1430,1431],{"class":285},"    source",[215,1433,296],{"class":225},[215,1435,1331],{"class":225},[215,1437,1334],{"class":278},[215,1439,314],{"class":232},[215,1441,236],{"class":225},[215,1443,1444,1447,1449,1452],{"class":217,"line":451},[215,1445,1446],{"class":326},"    timeout",[215,1448,296],{"class":225},[215,1450,1451],{"class":337}," 100",[215,1453,236],{"class":225},[215,1455,1456,1459,1461,1464],{"class":217,"line":468},[215,1457,1458],{"class":326},"    intervalMs",[215,1460,296],{"class":225},[215,1462,1463],{"class":337}," 5",[215,1465,236],{"class":225},[215,1467,1468,1470,1473,1475,1478,1480,1483,1485,1487],{"class":217,"line":485},[215,1469,952],{"class":225},[215,1471,1472],{"class":326},"))",[215,1474,361],{"class":225},[215,1476,1477],{"class":232},"resolves",[215,1479,361],{"class":225},[215,1481,1482],{"class":285},"toBe",[215,1484,289],{"class":326},[215,1486,623],{"class":232},[215,1488,344],{"class":326},[215,1490,1491,1493],{"class":217,"line":491},[215,1492,250],{"class":225},[215,1494,344],{"class":232},[163,1496,1498],{"id":1497},"runtime-rules","Runtime rules",[499,1500,1501,1506,1511,1517,1520],{},[502,1502,145,1503,1505],{},[147,1504,171],{}," for user actions that require the provider.",[502,1507,145,1508,1510],{},[147,1509,177],{}," for synchronous rendering decisions.",[502,1512,145,1513,1516],{},[147,1514,1515],{},"isMiniAppProviderError()"," before treating provider results as successful signatures or transaction hashes.",[502,1518,1519],{},"Do not trigger confirmation-requiring methods during page load.",[502,1521,1522],{},"Do not access private keys. The host owns the wallet.",[1524,1525,1526],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":211,"searchDepth":229,"depth":229,"links":1528},[1529,1530,1531,1532,1533,1534,1535],{"id":165,"depth":229,"text":166},{"id":191,"depth":229,"text":192},{"id":510,"depth":229,"text":511},{"id":688,"depth":229,"text":689},{"id":1036,"depth":229,"text":1037},{"id":1227,"depth":229,"text":1228},{"id":1497,"depth":229,"text":1498},"Wait for the Nimiq mini-app provider and handle unavailable host state.","md",null,{},{"title":34,"description":1536},"OpB9w2MnokBVwnqCcLB8afZJWPDxye5vFuDx3oU1CDA",[1543,1545],{"title":23,"path":24,"stem":25,"description":1544,"children":-1},"Place provider access, auth, cross-device approval, utilities, and tests in the right runtime.",{"title":38,"path":39,"stem":40,"description":1546,"children":-1},"Use the mini-app Ethereum provider and EIP-6963 discovery helpers.",1778838252701]