[{"data":1,"prerenderedAt":3796},["ShallowReactive",2],{"navigation":3,"page-en-\u002Fresources\u002Fmigration":160,"surround-en-\u002Fresources\u002Fmigration":3791},[4,28,65,99,130,151],{"title":5,"path":6,"stem":7,"children":8,"icon":27},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17,22],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"Quick Start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-rocket",{"title":23,"path":24,"stem":25,"icon":26},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F4.configuration","i-lucide-settings-2",false,{"title":29,"path":30,"stem":31,"children":32,"icon":34},"Guides","\u002Fguides","2.guides\u002F1.index",[33,35,40,45,50,55,60],{"title":29,"path":30,"stem":31,"icon":34},"i-lucide-book-open",{"title":36,"path":37,"stem":38,"icon":39},"Build a Wallet App","\u002Fguides\u002Fbuild-wallet-app","2.guides\u002F2.build-wallet-app","i-lucide-wallet",{"title":41,"path":42,"stem":43,"icon":44},"Building Transactions","\u002Fguides\u002Ftransactions","2.guides\u002F3.transactions","i-lucide-file-signature",{"title":46,"path":47,"stem":48,"icon":49},"Mint and Burn Tokens Guide","\u002Fguides\u002Fmint-burn-tokens","2.guides\u002F4.mint-burn-tokens","i-lucide-coins",{"title":51,"path":52,"stem":53,"icon":54},"Hydra Integration Examples","\u002Fguides\u002Fhydra-integration","2.guides\u002F5.hydra-integration","i-lucide-network",{"title":56,"path":57,"stem":58,"icon":59},"Utilities Cookbook","\u002Fguides\u002Futilities-cookbook","2.guides\u002F6.utilities-cookbook","i-lucide-wrench",{"title":61,"path":62,"stem":63,"icon":64},"Integrate from Cardano-CLI","\u002Fguides\u002Fcardano-cli-keys","2.guides\u002F7.cardano-cli-keys","i-lucide-key-round",{"title":66,"path":67,"stem":68,"children":69,"icon":98},"Concepts","\u002Fconcepts","3.concepts\u002F1.index",[70,73,78,83,88,93],{"title":71,"path":67,"stem":68,"icon":72},"Why Hydra?","i-lucide-circle-help",{"title":74,"path":75,"stem":76,"icon":77},"Commit to Hydra","\u002Fconcepts\u002Fcommit-to-hydra","3.concepts\u002F2.commit-to-hydra","i-lucide-arrow-down-to-line",{"title":79,"path":80,"stem":81,"icon":82},"Decommit from Hydra","\u002Fconcepts\u002Fdecommit-from-hydra","3.concepts\u002F3.decommit-from-hydra","i-lucide-arrow-up-from-line",{"title":84,"path":85,"stem":86,"icon":87},"Transactions in Hydra","\u002Fconcepts\u002Ftransactions-in-hydra","3.concepts\u002F4.transactions-in-hydra","i-lucide-arrow-left-right",{"title":89,"path":90,"stem":91,"icon":92},"Smart Contracts in Hydra","\u002Fconcepts\u002Fsmart-contracts-in-hydra","3.concepts\u002F5.smart-contracts-in-hydra","i-lucide-file-code-2",{"title":94,"path":95,"stem":96,"icon":97},"Hydra Protocol Versions","\u002Fconcepts\u002Fhydra-v2-changes","3.concepts\u002F6.hydra-v2-changes","i-lucide-git-compare","i-lucide-lightbulb",{"title":100,"path":101,"stem":102,"children":103,"icon":129},"API Reference","\u002Fapi","4.api\u002F1.index",[104,106,111,116,120,125],{"title":100,"path":101,"stem":102,"icon":105},"i-lucide-book-marked",{"title":107,"path":108,"stem":109,"icon":110},"@hydra-sdk\u002Fcore","\u002Fapi\u002Fcore","4.api\u002F2.core","i-lucide-box",{"title":112,"path":113,"stem":114,"icon":115},"@hydra-sdk\u002Fbridge","\u002Fapi\u002Fbridge","4.api\u002F3.bridge","i-lucide-cable",{"title":117,"path":118,"stem":119,"icon":44},"@hydra-sdk\u002Ftransaction","\u002Fapi\u002Ftransaction","4.api\u002F4.transaction",{"title":121,"path":122,"stem":123,"icon":124},"@hydra-sdk\u002Fcardano-wasm","\u002Fapi\u002Fcardano-wasm","4.api\u002F5.cardano-wasm","i-lucide-cpu",{"title":126,"path":127,"stem":128,"icon":59},"@hydra-sdk\u002Fcore - Utilities","\u002Fapi\u002Futilities","4.api\u002F6.utilities","i-lucide-braces",{"title":131,"icon":132,"path":133,"stem":134,"children":135,"page":27},"Resources","i-lucide-archive","\u002Fresources","5.resources",[136,141,146],{"title":137,"path":138,"stem":139,"icon":140},"Change Logs","\u002Fresources\u002Fchangelog","5.resources\u002F1.changelog","i-lucide-history",{"title":142,"path":143,"stem":144,"icon":145},"Migration","\u002Fresources\u002Fmigration","5.resources\u002F2.migration","i-lucide-arrow-right-left",{"title":147,"path":148,"stem":149,"icon":150},"Performance & Comparison","\u002Fresources\u002Fperformance","5.resources\u002F3.performance","i-lucide-gauge",{"title":152,"path":153,"stem":154,"children":155,"icon":159},"AI","\u002Fai","6.ai\u002F1.index",[156],{"title":157,"path":153,"stem":154,"icon":158},"Use with AI","i-lucide-bot","i-lucide-sparkles",{"id":161,"title":142,"body":162,"description":3784,"extension":3785,"links":3786,"meta":3787,"navigation":3788,"path":143,"seo":3789,"stem":144,"__hash__":3790},"docs_en\u002F5.resources\u002F2.migration.md",{"type":163,"value":164,"toc":3746},"minimark",[165,173,195,209,234,239,254,258,389,393,417,420,424,427,431,435,438,443,486,491,574,578,582,587,623,628,705,709,713,746,750,879,883,887,975,979,1086,1090,1094,1145,1149,1152,1307,1311,1316,1447,1451,1564,1568,1729,1733,1736,2026,2030,2034,2038,2172,2176,2429,2433,2437,2481,2485,2580,2584,2588,2691,2695,2801,2805,2809,3133,3137,3375,3379,3592,3596,3600,3669,3673,3676,3699,3703,3706,3739,3742],[166,167,169,172],"h2",{"id":168},"hydra-sdkbridge-v1x-v20",[170,171,112],"code",{}," v1.x → v2.0",[174,175,176,178,179,183,184,178,187,190,191,194],"p",{},[170,177,112],{}," ",[180,181,182],"strong",{},"2.0"," targets ",[170,185,186],{},"hydra-node",[180,188,189],{},"2.x",". It is a breaking change, and bridge ",[180,192,193],{},"1.x is end of life",".",[196,197,198],"warning",{},[174,199,200,201,204,205,208],{},"v2 is published under the ",[170,202,203],{},"next"," dist-tag — ",[170,206,207],{},"latest"," still resolves to 1.3.2.",[210,211,216],"pre",{"className":212,"code":213,"language":214,"meta":215,"style":215},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add @hydra-sdk\u002Fbridge@next\n","bash","",[170,217,218],{"__ignoreMap":215},[219,220,223,227,231],"span",{"class":221,"line":222},"line",1,[219,224,226],{"class":225},"sBMFI","pnpm",[219,228,230],{"class":229},"sfazB"," add",[219,232,233],{"class":229}," @hydra-sdk\u002Fbridge@next\n",[235,236,238],"h3",{"id":237},"why-it-breaks","Why it breaks",[174,240,241,242,245,246,249,250,253],{},"hydra-node v2 implements ADR-33 and ",[180,243,244],{},"removes the commit phase",". A head now opens directly, so there is nothing to abort and no ",[170,247,248],{},"Committed"," step; funds enter an open head through ",[180,251,252],{},"incremental deposits"," instead.",[235,255,257],{"id":256},"what-you-have-to-change","What you have to change",[259,260,261,274],"table",{},[262,263,264],"thead",{},[265,266,267,271],"tr",{},[268,269,270],"th",{},"v1.x",[268,272,273],{},"v2.0",[275,276,277,288,305,330,343,360,370],"tbody",{},[265,278,279,285],{},[280,281,282],"td",{},[170,283,284],{},"bridge.commands.abort()",[280,286,287],{},"Removed — no commit phase to abort",[265,289,290,295],{},[280,291,292],{},[170,293,294],{},"bridge.commands.initSync()",[280,296,297,298,301,302],{},"Resolves on ",[170,299,300],{},"HeadIsOpen",", not ",[170,303,304],{},"HeadIsInitializing",[265,306,307,312],{},[280,308,309,311],{},[170,310,300],{}," handlers",[280,313,314,315,318,319,322,323,326,327],{},"Reads ",[170,316,317],{},"parties","; ",[170,320,321],{},"utxo"," is gone — take the UTxO set from ",[170,324,325],{},"SnapshotConfirmed"," or ",[170,328,329],{},"querySnapshotUtxo()",[265,331,332,337],{},[280,333,334],{},[170,335,336],{},"HeadIsFinalized.utxo",[280,338,339,340],{},"Renamed to ",[170,341,342],{},"finalizedUTxO",[265,344,345,350],{},[280,346,347],{},[170,348,349],{},"HydraHeadStatus",[280,351,352,353,356,357],{},"No ",[170,354,355],{},"Initializing"," \u002F ",[170,358,359],{},"Final",[265,361,362,367],{},[280,363,364],{},[170,365,366],{},"HydraHeadInfo",[280,368,369],{},"Now a union over `Idle",[265,371,372,380],{},[280,373,374,356,377],{},[170,375,376],{},"Greetings",[170,378,379],{},"ClientMessage",[280,381,352,382,356,385,388],{},[170,383,384],{},"seq",[170,386,387],{},"timestamp"," — they are sent untimed",[235,390,392],{"id":391},"full-details","Full details",[174,394,395,396,399,400,399,403,399,406,409,410,194],{},"The complete list, including the new APIs (",[170,397,398],{},"safeClose()",", ",[170,401,402],{},"submitL2Tx()",[170,404,405],{},"pendingDeposits()",[170,407,408],{},"recoverDeposit()",") and the wire-format fixes found by testing against a live node, is in ",[411,412,416],"a",{"href":413,"rel":414},"https:\u002F\u002Fgithub.com\u002FVtechcom\u002Fhydra-sdk\u002Fblob\u002Fmaster\u002Fpackages\u002Fhydra-bridge\u002FMIGRATION-v2.md",[415],"nofollow","MIGRATION-v2.md",[418,419],"hr",{},[166,421,423],{"id":422},"migration-to-v11x-legacy","Migration to v1.1.x (legacy)",[174,425,426],{},"This guide helps you upgrade from previous versions of Hydra SDK to v1.1.x, which introduces a new utilities system and improved developer experience.",[166,428,430],{"id":429},"whats-changed","What's Changed",[235,432,434],{"id":433},"new-utilities-system","New Utilities System",[174,436,437],{},"Version 1.1.0 introduces a completely revamped utilities system with organized namespaces:",[174,439,440],{},[180,441,442],{},"Before (v1.0.x):",[210,444,448],{"className":445,"code":446,"language":447,"meta":215,"style":215},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F Individual utility imports (if available)\nimport { someUtility } from '@hydra-sdk\u002Fcore\u002Futils\u002Fsome-utility'\n","typescript",[170,449,450,456],{"__ignoreMap":215},[219,451,452],{"class":221,"line":222},[219,453,455],{"class":454},"sHwdD","\u002F\u002F Individual utility imports (if available)\n",[219,457,459,463,467,471,474,477,480,483],{"class":221,"line":458},2,[219,460,462],{"class":461},"s7zQu","import",[219,464,466],{"class":465},"sMK4o"," {",[219,468,470],{"class":469},"sTEyZ"," someUtility",[219,472,473],{"class":465}," }",[219,475,476],{"class":461}," from",[219,478,479],{"class":465}," '",[219,481,482],{"class":229},"@hydra-sdk\u002Fcore\u002Futils\u002Fsome-utility",[219,484,485],{"class":465},"'\n",[174,487,488],{},[180,489,490],{},"After (v1.1.x):",[210,492,494],{"className":445,"code":493,"language":447,"meta":215,"style":215},"\u002F\u002F Organized namespace imports\nimport { \n  ParserUtils,\n  TimeUtils,\n  DatumUtils,\n  PolicyUtils,\n  Serializer,\n  Deserializer \n} from '@hydra-sdk\u002Fcore'\n",[170,495,496,501,511,520,528,536,544,552,560],{"__ignoreMap":215},[219,497,498],{"class":221,"line":222},[219,499,500],{"class":454},"\u002F\u002F Organized namespace imports\n",[219,502,503,505,507],{"class":221,"line":458},[219,504,462],{"class":461},[219,506,466],{"class":465},[219,508,510],{"class":509},"swJcz"," \n",[219,512,514,517],{"class":221,"line":513},3,[219,515,516],{"class":469},"  ParserUtils",[219,518,519],{"class":465},",\n",[219,521,523,526],{"class":221,"line":522},4,[219,524,525],{"class":469},"  TimeUtils",[219,527,519],{"class":465},[219,529,531,534],{"class":221,"line":530},5,[219,532,533],{"class":469},"  DatumUtils",[219,535,519],{"class":465},[219,537,539,542],{"class":221,"line":538},6,[219,540,541],{"class":469},"  PolicyUtils",[219,543,519],{"class":465},[219,545,547,550],{"class":221,"line":546},7,[219,548,549],{"class":469},"  Serializer",[219,551,519],{"class":465},[219,553,555,558],{"class":221,"line":554},8,[219,556,557],{"class":469},"  Deserializer",[219,559,510],{"class":509},[219,561,563,566,568,570,572],{"class":221,"line":562},9,[219,564,565],{"class":465},"}",[219,567,476],{"class":461},[219,569,479],{"class":465},[219,571,107],{"class":229},[219,573,485],{"class":465},[166,575,577],{"id":576},"breaking-changes","Breaking Changes",[235,579,581],{"id":580},"_1-utility-function-organization","1. Utility Function Organization",[174,583,584],{},[180,585,586],{},"Before:",[210,588,590],{"className":445,"code":589,"language":447,"meta":215,"style":215},"\u002F\u002F Direct imports from utils (if they existed)\nimport { hexToBytes, bytesToHex } from '@hydra-sdk\u002Fcore\u002Futils'\n",[170,591,592,597],{"__ignoreMap":215},[219,593,594],{"class":221,"line":222},[219,595,596],{"class":454},"\u002F\u002F Direct imports from utils (if they existed)\n",[219,598,599,601,603,606,609,612,614,616,618,621],{"class":221,"line":458},[219,600,462],{"class":461},[219,602,466],{"class":465},[219,604,605],{"class":469}," hexToBytes",[219,607,608],{"class":465},",",[219,610,611],{"class":469}," bytesToHex",[219,613,473],{"class":465},[219,615,476],{"class":461},[219,617,479],{"class":465},[219,619,620],{"class":229},"@hydra-sdk\u002Fcore\u002Futils",[219,622,485],{"class":465},[174,624,625],{},[180,626,627],{},"After:",[210,629,631],{"className":445,"code":630,"language":447,"meta":215,"style":215},"\u002F\u002F Namespaced utility imports\nimport { ParserUtils } from '@hydra-sdk\u002Fcore'\n\nconst hex = ParserUtils.bytesToHex(bytes)\nconst bytes = ParserUtils.hexToBytes(hex)\n",[170,632,633,638,657,663,686],{"__ignoreMap":215},[219,634,635],{"class":221,"line":222},[219,636,637],{"class":454},"\u002F\u002F Namespaced utility imports\n",[219,639,640,642,644,647,649,651,653,655],{"class":221,"line":458},[219,641,462],{"class":461},[219,643,466],{"class":465},[219,645,646],{"class":469}," ParserUtils",[219,648,473],{"class":465},[219,650,476],{"class":461},[219,652,479],{"class":465},[219,654,107],{"class":229},[219,656,485],{"class":465},[219,658,659],{"class":221,"line":513},[219,660,662],{"emptyLinePlaceholder":661},true,"\n",[219,664,665,669,672,675,677,679,683],{"class":221,"line":522},[219,666,668],{"class":667},"spNyl","const",[219,670,671],{"class":469}," hex ",[219,673,674],{"class":465},"=",[219,676,646],{"class":469},[219,678,194],{"class":465},[219,680,682],{"class":681},"s2Zo4","bytesToHex",[219,684,685],{"class":469},"(bytes)\n",[219,687,688,690,693,695,697,699,702],{"class":221,"line":530},[219,689,668],{"class":667},[219,691,692],{"class":469}," bytes ",[219,694,674],{"class":465},[219,696,646],{"class":469},[219,698,194],{"class":465},[219,700,701],{"class":681},"hexToBytes",[219,703,704],{"class":469},"(hex)\n",[235,706,708],{"id":707},"_2-timeslot-utilities","2. Time\u002FSlot Utilities",[174,710,711],{},[180,712,586],{},[210,714,716],{"className":445,"code":715,"language":447,"meta":215,"style":215},"\u002F\u002F Manual slot calculations or external libraries\nconst currentSlot = calculateSlot(Date.now())\n",[170,717,718,723],{"__ignoreMap":215},[219,719,720],{"class":221,"line":222},[219,721,722],{"class":454},"\u002F\u002F Manual slot calculations or external libraries\n",[219,724,725,727,730,732,735,738,740,743],{"class":221,"line":458},[219,726,668],{"class":667},[219,728,729],{"class":469}," currentSlot ",[219,731,674],{"class":465},[219,733,734],{"class":681}," calculateSlot",[219,736,737],{"class":469},"(Date",[219,739,194],{"class":465},[219,741,742],{"class":681},"now",[219,744,745],{"class":469},"())\n",[174,747,748],{},[180,749,627],{},[210,751,753],{"className":445,"code":752,"language":447,"meta":215,"style":215},"import { TimeUtils, SLOT_CONFIG_NETWORK } from '@hydra-sdk\u002Fcore'\nconst currentSlot = TimeUtils.unixTimeToEnclosingSlot(\n    Date.now(), \n    SLOT_CONFIG_NETWORK.PREPROD\n)\nconst futureSlot = TimeUtils.unixTimeToEnclosingSlot(\n    Date.now() + 3600000, \n    SLOT_CONFIG_NETWORK.PREPROD\n)\n",[170,754,755,779,797,813,823,828,845,867,875],{"__ignoreMap":215},[219,756,757,759,761,764,766,769,771,773,775,777],{"class":221,"line":222},[219,758,462],{"class":461},[219,760,466],{"class":465},[219,762,763],{"class":469}," TimeUtils",[219,765,608],{"class":465},[219,767,768],{"class":469}," SLOT_CONFIG_NETWORK",[219,770,473],{"class":465},[219,772,476],{"class":461},[219,774,479],{"class":465},[219,776,107],{"class":229},[219,778,485],{"class":465},[219,780,781,783,785,787,789,791,794],{"class":221,"line":458},[219,782,668],{"class":667},[219,784,729],{"class":469},[219,786,674],{"class":465},[219,788,763],{"class":469},[219,790,194],{"class":465},[219,792,793],{"class":681},"unixTimeToEnclosingSlot",[219,795,796],{"class":469},"(\n",[219,798,799,802,804,806,809,811],{"class":221,"line":513},[219,800,801],{"class":469},"    Date",[219,803,194],{"class":465},[219,805,742],{"class":681},[219,807,808],{"class":469},"()",[219,810,608],{"class":465},[219,812,510],{"class":469},[219,814,815,818,820],{"class":221,"line":522},[219,816,817],{"class":469},"    SLOT_CONFIG_NETWORK",[219,819,194],{"class":465},[219,821,822],{"class":469},"PREPROD\n",[219,824,825],{"class":221,"line":530},[219,826,827],{"class":469},")\n",[219,829,830,832,835,837,839,841,843],{"class":221,"line":538},[219,831,668],{"class":667},[219,833,834],{"class":469}," futureSlot ",[219,836,674],{"class":465},[219,838,763],{"class":469},[219,840,194],{"class":465},[219,842,793],{"class":681},[219,844,796],{"class":469},[219,846,847,849,851,853,856,859,863,865],{"class":221,"line":546},[219,848,801],{"class":469},[219,850,194],{"class":465},[219,852,742],{"class":681},[219,854,855],{"class":469},"() ",[219,857,858],{"class":465},"+",[219,860,862],{"class":861},"sbssI"," 3600000",[219,864,608],{"class":465},[219,866,510],{"class":469},[219,868,869,871,873],{"class":221,"line":554},[219,870,817],{"class":469},[219,872,194],{"class":465},[219,874,822],{"class":469},[219,876,877],{"class":221,"line":562},[219,878,827],{"class":469},[235,880,882],{"id":881},"_3-datum-creation","3. Datum Creation",[174,884,885],{},[180,886,586],{},[210,888,890],{"className":445,"code":889,"language":447,"meta":215,"style":215},"\u002F\u002F Manual WASM operations\nimport { CardanoWASM } from '@hydra-sdk\u002Fcardano-wasm'\n\nconst datum = CardanoWASM.PlutusData.new_integer(\n  CardanoWASM.BigInt.from_str('42')\n)\n",[170,891,892,897,916,920,943,971],{"__ignoreMap":215},[219,893,894],{"class":221,"line":222},[219,895,896],{"class":454},"\u002F\u002F Manual WASM operations\n",[219,898,899,901,903,906,908,910,912,914],{"class":221,"line":458},[219,900,462],{"class":461},[219,902,466],{"class":465},[219,904,905],{"class":469}," CardanoWASM",[219,907,473],{"class":465},[219,909,476],{"class":461},[219,911,479],{"class":465},[219,913,121],{"class":229},[219,915,485],{"class":465},[219,917,918],{"class":221,"line":513},[219,919,662],{"emptyLinePlaceholder":661},[219,921,922,924,927,929,931,933,936,938,941],{"class":221,"line":522},[219,923,668],{"class":667},[219,925,926],{"class":469}," datum ",[219,928,674],{"class":465},[219,930,905],{"class":469},[219,932,194],{"class":465},[219,934,935],{"class":469},"PlutusData",[219,937,194],{"class":465},[219,939,940],{"class":681},"new_integer",[219,942,796],{"class":469},[219,944,945,948,950,953,955,958,961,964,967,969],{"class":221,"line":530},[219,946,947],{"class":469},"  CardanoWASM",[219,949,194],{"class":465},[219,951,952],{"class":469},"BigInt",[219,954,194],{"class":465},[219,956,957],{"class":681},"from_str",[219,959,960],{"class":469},"(",[219,962,963],{"class":465},"'",[219,965,966],{"class":229},"42",[219,968,963],{"class":465},[219,970,827],{"class":469},[219,972,973],{"class":221,"line":538},[219,974,827],{"class":469},[174,976,977],{},[180,978,627],{},[210,980,982],{"className":445,"code":981,"language":447,"meta":215,"style":215},"import { DatumUtils } from '@hydra-sdk\u002Fcore'\n\nconst datum = DatumUtils.mkInt(42)\nconst bytesDatum = DatumUtils.mkBytes('deadbeef')\nconst constrDatum = DatumUtils.mkConstr(0, [datum, bytesDatum])\n",[170,983,984,1003,1007,1028,1055],{"__ignoreMap":215},[219,985,986,988,990,993,995,997,999,1001],{"class":221,"line":222},[219,987,462],{"class":461},[219,989,466],{"class":465},[219,991,992],{"class":469}," DatumUtils",[219,994,473],{"class":465},[219,996,476],{"class":461},[219,998,479],{"class":465},[219,1000,107],{"class":229},[219,1002,485],{"class":465},[219,1004,1005],{"class":221,"line":458},[219,1006,662],{"emptyLinePlaceholder":661},[219,1008,1009,1011,1013,1015,1017,1019,1022,1024,1026],{"class":221,"line":513},[219,1010,668],{"class":667},[219,1012,926],{"class":469},[219,1014,674],{"class":465},[219,1016,992],{"class":469},[219,1018,194],{"class":465},[219,1020,1021],{"class":681},"mkInt",[219,1023,960],{"class":469},[219,1025,966],{"class":861},[219,1027,827],{"class":469},[219,1029,1030,1032,1035,1037,1039,1041,1044,1046,1048,1051,1053],{"class":221,"line":522},[219,1031,668],{"class":667},[219,1033,1034],{"class":469}," bytesDatum ",[219,1036,674],{"class":465},[219,1038,992],{"class":469},[219,1040,194],{"class":465},[219,1042,1043],{"class":681},"mkBytes",[219,1045,960],{"class":469},[219,1047,963],{"class":465},[219,1049,1050],{"class":229},"deadbeef",[219,1052,963],{"class":465},[219,1054,827],{"class":469},[219,1056,1057,1059,1062,1064,1066,1068,1071,1073,1076,1078,1081,1083],{"class":221,"line":530},[219,1058,668],{"class":667},[219,1060,1061],{"class":469}," constrDatum ",[219,1063,674],{"class":465},[219,1065,992],{"class":469},[219,1067,194],{"class":465},[219,1069,1070],{"class":681},"mkConstr",[219,1072,960],{"class":469},[219,1074,1075],{"class":861},"0",[219,1077,608],{"class":465},[219,1079,1080],{"class":469}," [datum",[219,1082,608],{"class":465},[219,1084,1085],{"class":469}," bytesDatum])\n",[166,1087,1089],{"id":1088},"migration-steps","Migration Steps",[235,1091,1093],{"id":1092},"step-1-update-dependencies","Step 1: Update Dependencies",[210,1095,1097],{"className":212,"code":1096,"language":214,"meta":215,"style":215},"# Update to latest version\nnpm update @hydra-sdk\u002Fcore @hydra-sdk\u002Fbridge @hydra-sdk\u002Ftransaction @hydra-sdk\u002Fcardano-wasm\n\n# Or with specific version\nnpm install @hydra-sdk\u002Fcore@^1.1.0 @hydra-sdk\u002Fcardano-wasm\n",[170,1098,1099,1104,1124,1128,1133],{"__ignoreMap":215},[219,1100,1101],{"class":221,"line":222},[219,1102,1103],{"class":454},"# Update to latest version\n",[219,1105,1106,1109,1112,1115,1118,1121],{"class":221,"line":458},[219,1107,1108],{"class":225},"npm",[219,1110,1111],{"class":229}," update",[219,1113,1114],{"class":229}," @hydra-sdk\u002Fcore",[219,1116,1117],{"class":229}," @hydra-sdk\u002Fbridge",[219,1119,1120],{"class":229}," @hydra-sdk\u002Ftransaction",[219,1122,1123],{"class":229}," @hydra-sdk\u002Fcardano-wasm\n",[219,1125,1126],{"class":221,"line":513},[219,1127,662],{"emptyLinePlaceholder":661},[219,1129,1130],{"class":221,"line":522},[219,1131,1132],{"class":454},"# Or with specific version\n",[219,1134,1135,1137,1140,1143],{"class":221,"line":530},[219,1136,1108],{"class":225},[219,1138,1139],{"class":229}," install",[219,1141,1142],{"class":229}," @hydra-sdk\u002Fcore@^1.1.0",[219,1144,1123],{"class":229},[235,1146,1148],{"id":1147},"step-2-update-imports","Step 2: Update Imports",[174,1150,1151],{},"Replace individual utility imports with namespace imports:",[210,1153,1155],{"className":445,"code":1154,"language":447,"meta":215,"style":215},"\u002F\u002F OLD - Remove these\nimport { someUtility } from '@hydra-sdk\u002Fcore\u002Futils\u002Fsome-utility'\nimport { CardanoWASM } from '@hydra-sdk\u002Fcardano-wasm'\n\n\u002F\u002F NEW - Use these instead\nimport { \n  ParserUtils,\n  TimeUtils,\n  DatumUtils,\n  PolicyUtils,\n  Serializer,\n  Deserializer,\n  Resolver,\n  Converter,\n  BuildKeys,\n  ProviderUtils,\n  CostModels \n} from '@hydra-sdk\u002Fcore'\n",[170,1156,1157,1162,1180,1198,1202,1207,1215,1221,1227,1233,1240,1247,1254,1262,1270,1278,1286,1294],{"__ignoreMap":215},[219,1158,1159],{"class":221,"line":222},[219,1160,1161],{"class":454},"\u002F\u002F OLD - Remove these\n",[219,1163,1164,1166,1168,1170,1172,1174,1176,1178],{"class":221,"line":458},[219,1165,462],{"class":461},[219,1167,466],{"class":465},[219,1169,470],{"class":469},[219,1171,473],{"class":465},[219,1173,476],{"class":461},[219,1175,479],{"class":465},[219,1177,482],{"class":229},[219,1179,485],{"class":465},[219,1181,1182,1184,1186,1188,1190,1192,1194,1196],{"class":221,"line":513},[219,1183,462],{"class":461},[219,1185,466],{"class":465},[219,1187,905],{"class":469},[219,1189,473],{"class":465},[219,1191,476],{"class":461},[219,1193,479],{"class":465},[219,1195,121],{"class":229},[219,1197,485],{"class":465},[219,1199,1200],{"class":221,"line":522},[219,1201,662],{"emptyLinePlaceholder":661},[219,1203,1204],{"class":221,"line":530},[219,1205,1206],{"class":454},"\u002F\u002F NEW - Use these instead\n",[219,1208,1209,1211,1213],{"class":221,"line":538},[219,1210,462],{"class":461},[219,1212,466],{"class":465},[219,1214,510],{"class":509},[219,1216,1217,1219],{"class":221,"line":546},[219,1218,516],{"class":469},[219,1220,519],{"class":465},[219,1222,1223,1225],{"class":221,"line":554},[219,1224,525],{"class":469},[219,1226,519],{"class":465},[219,1228,1229,1231],{"class":221,"line":562},[219,1230,533],{"class":469},[219,1232,519],{"class":465},[219,1234,1236,1238],{"class":221,"line":1235},10,[219,1237,541],{"class":469},[219,1239,519],{"class":465},[219,1241,1243,1245],{"class":221,"line":1242},11,[219,1244,549],{"class":469},[219,1246,519],{"class":465},[219,1248,1250,1252],{"class":221,"line":1249},12,[219,1251,557],{"class":469},[219,1253,519],{"class":465},[219,1255,1257,1260],{"class":221,"line":1256},13,[219,1258,1259],{"class":469},"  Resolver",[219,1261,519],{"class":465},[219,1263,1265,1268],{"class":221,"line":1264},14,[219,1266,1267],{"class":469},"  Converter",[219,1269,519],{"class":465},[219,1271,1273,1276],{"class":221,"line":1272},15,[219,1274,1275],{"class":469},"  BuildKeys",[219,1277,519],{"class":465},[219,1279,1281,1284],{"class":221,"line":1280},16,[219,1282,1283],{"class":469},"  ProviderUtils",[219,1285,519],{"class":465},[219,1287,1289,1292],{"class":221,"line":1288},17,[219,1290,1291],{"class":469},"  CostModels",[219,1293,510],{"class":509},[219,1295,1297,1299,1301,1303,1305],{"class":221,"line":1296},18,[219,1298,565],{"class":465},[219,1300,476],{"class":461},[219,1302,479],{"class":465},[219,1304,107],{"class":229},[219,1306,485],{"class":465},[235,1308,1310],{"id":1309},"step-3-replace-manual-operations","Step 3: Replace Manual Operations",[1312,1313,1315],"h4",{"id":1314},"data-conversion","Data Conversion",[210,1317,1319],{"className":445,"code":1318,"language":447,"meta":215,"style":215},"\u002F\u002F OLD\nconst hex = Buffer.from(bytes).toString('hex')\nconst bytes = Buffer.from(hex, 'hex')\n\n\u002F\u002F NEW\nimport { ParserUtils } from '@hydra-sdk\u002Fcore'\nconst hex = ParserUtils.bytesToHex(bytes)\nconst bytes = ParserUtils.hexToBytes(hex)\n",[170,1320,1321,1326,1361,1388,1392,1397,1415,1431],{"__ignoreMap":215},[219,1322,1323],{"class":221,"line":222},[219,1324,1325],{"class":454},"\u002F\u002F OLD\n",[219,1327,1328,1330,1332,1334,1337,1339,1342,1345,1347,1350,1352,1354,1357,1359],{"class":221,"line":458},[219,1329,668],{"class":667},[219,1331,671],{"class":469},[219,1333,674],{"class":465},[219,1335,1336],{"class":469}," Buffer",[219,1338,194],{"class":465},[219,1340,1341],{"class":681},"from",[219,1343,1344],{"class":469},"(bytes)",[219,1346,194],{"class":465},[219,1348,1349],{"class":681},"toString",[219,1351,960],{"class":469},[219,1353,963],{"class":465},[219,1355,1356],{"class":229},"hex",[219,1358,963],{"class":465},[219,1360,827],{"class":469},[219,1362,1363,1365,1367,1369,1371,1373,1375,1378,1380,1382,1384,1386],{"class":221,"line":513},[219,1364,668],{"class":667},[219,1366,692],{"class":469},[219,1368,674],{"class":465},[219,1370,1336],{"class":469},[219,1372,194],{"class":465},[219,1374,1341],{"class":681},[219,1376,1377],{"class":469},"(hex",[219,1379,608],{"class":465},[219,1381,479],{"class":465},[219,1383,1356],{"class":229},[219,1385,963],{"class":465},[219,1387,827],{"class":469},[219,1389,1390],{"class":221,"line":522},[219,1391,662],{"emptyLinePlaceholder":661},[219,1393,1394],{"class":221,"line":530},[219,1395,1396],{"class":454},"\u002F\u002F NEW\n",[219,1398,1399,1401,1403,1405,1407,1409,1411,1413],{"class":221,"line":538},[219,1400,462],{"class":461},[219,1402,466],{"class":465},[219,1404,646],{"class":469},[219,1406,473],{"class":465},[219,1408,476],{"class":461},[219,1410,479],{"class":465},[219,1412,107],{"class":229},[219,1414,485],{"class":465},[219,1416,1417,1419,1421,1423,1425,1427,1429],{"class":221,"line":546},[219,1418,668],{"class":667},[219,1420,671],{"class":469},[219,1422,674],{"class":465},[219,1424,646],{"class":469},[219,1426,194],{"class":465},[219,1428,682],{"class":681},[219,1430,685],{"class":469},[219,1432,1433,1435,1437,1439,1441,1443,1445],{"class":221,"line":554},[219,1434,668],{"class":667},[219,1436,692],{"class":469},[219,1438,674],{"class":465},[219,1440,646],{"class":469},[219,1442,194],{"class":465},[219,1444,701],{"class":681},[219,1446,704],{"class":469},[1312,1448,1450],{"id":1449},"time-calculations","Time Calculations",[210,1452,1454],{"className":445,"code":1453,"language":447,"meta":215,"style":215},"\u002F\u002F OLD\nconst slot = Math.floor((Date.now() - SHELLEY_START) \u002F SLOT_LENGTH) + SHELLEY_SLOT_START\n\n\u002F\u002F NEW\nimport { TimeUtils, SLOT_CONFIG_NETWORK } from '@hydra-sdk\u002Fcore'\nconst slot = TimeUtils.unixTimeToEnclosingSlot(Date.now(), SLOT_CONFIG_NETWORK.PREPROD)\n",[170,1455,1456,1460,1503,1507,1511,1533],{"__ignoreMap":215},[219,1457,1458],{"class":221,"line":222},[219,1459,1325],{"class":454},[219,1461,1462,1464,1467,1469,1472,1474,1477,1480,1482,1484,1486,1489,1492,1495,1498,1500],{"class":221,"line":458},[219,1463,668],{"class":667},[219,1465,1466],{"class":469}," slot ",[219,1468,674],{"class":465},[219,1470,1471],{"class":469}," Math",[219,1473,194],{"class":465},[219,1475,1476],{"class":681},"floor",[219,1478,1479],{"class":469},"((Date",[219,1481,194],{"class":465},[219,1483,742],{"class":681},[219,1485,855],{"class":469},[219,1487,1488],{"class":465},"-",[219,1490,1491],{"class":469}," SHELLEY_START) ",[219,1493,1494],{"class":465},"\u002F",[219,1496,1497],{"class":469}," SLOT_LENGTH) ",[219,1499,858],{"class":465},[219,1501,1502],{"class":469}," SHELLEY_SLOT_START\n",[219,1504,1505],{"class":221,"line":513},[219,1506,662],{"emptyLinePlaceholder":661},[219,1508,1509],{"class":221,"line":522},[219,1510,1396],{"class":454},[219,1512,1513,1515,1517,1519,1521,1523,1525,1527,1529,1531],{"class":221,"line":530},[219,1514,462],{"class":461},[219,1516,466],{"class":465},[219,1518,763],{"class":469},[219,1520,608],{"class":465},[219,1522,768],{"class":469},[219,1524,473],{"class":465},[219,1526,476],{"class":461},[219,1528,479],{"class":465},[219,1530,107],{"class":229},[219,1532,485],{"class":465},[219,1534,1535,1537,1539,1541,1543,1545,1547,1549,1551,1553,1555,1557,1559,1561],{"class":221,"line":538},[219,1536,668],{"class":667},[219,1538,1466],{"class":469},[219,1540,674],{"class":465},[219,1542,763],{"class":469},[219,1544,194],{"class":465},[219,1546,793],{"class":681},[219,1548,737],{"class":469},[219,1550,194],{"class":465},[219,1552,742],{"class":681},[219,1554,808],{"class":469},[219,1556,608],{"class":465},[219,1558,768],{"class":469},[219,1560,194],{"class":465},[219,1562,1563],{"class":469},"PREPROD)\n",[1312,1565,1567],{"id":1566},"datum-creation","Datum Creation",[210,1569,1571],{"className":445,"code":1570,"language":447,"meta":215,"style":215},"\u002F\u002F OLD - Complex WASM operations\nimport { CardanoWASM } from '@hydra-sdk\u002Fcardano-wasm'\nconst datum = CardanoWASM.PlutusData.new_constr_plutus_data(\n  CardanoWASM.ConstrPlutusData.new(\n    CardanoWASM.BigNum.from_str('0'),\n    list\n  )\n)\n\n\u002F\u002F NEW - Simple utility functions\nimport { DatumUtils } from '@hydra-sdk\u002Fcore'\nconst datum = DatumUtils.mkConstr(0, [field1, field2])\n",[170,1572,1573,1578,1596,1617,1633,1660,1665,1670,1674,1678,1683,1701],{"__ignoreMap":215},[219,1574,1575],{"class":221,"line":222},[219,1576,1577],{"class":454},"\u002F\u002F OLD - Complex WASM operations\n",[219,1579,1580,1582,1584,1586,1588,1590,1592,1594],{"class":221,"line":458},[219,1581,462],{"class":461},[219,1583,466],{"class":465},[219,1585,905],{"class":469},[219,1587,473],{"class":465},[219,1589,476],{"class":461},[219,1591,479],{"class":465},[219,1593,121],{"class":229},[219,1595,485],{"class":465},[219,1597,1598,1600,1602,1604,1606,1608,1610,1612,1615],{"class":221,"line":513},[219,1599,668],{"class":667},[219,1601,926],{"class":469},[219,1603,674],{"class":465},[219,1605,905],{"class":469},[219,1607,194],{"class":465},[219,1609,935],{"class":469},[219,1611,194],{"class":465},[219,1613,1614],{"class":681},"new_constr_plutus_data",[219,1616,796],{"class":469},[219,1618,1619,1621,1623,1626,1628,1631],{"class":221,"line":522},[219,1620,947],{"class":469},[219,1622,194],{"class":465},[219,1624,1625],{"class":469},"ConstrPlutusData",[219,1627,194],{"class":465},[219,1629,1630],{"class":681},"new",[219,1632,796],{"class":469},[219,1634,1635,1638,1640,1643,1645,1647,1649,1651,1653,1655,1658],{"class":221,"line":530},[219,1636,1637],{"class":469},"    CardanoWASM",[219,1639,194],{"class":465},[219,1641,1642],{"class":469},"BigNum",[219,1644,194],{"class":465},[219,1646,957],{"class":681},[219,1648,960],{"class":469},[219,1650,963],{"class":465},[219,1652,1075],{"class":229},[219,1654,963],{"class":465},[219,1656,1657],{"class":469},")",[219,1659,519],{"class":465},[219,1661,1662],{"class":221,"line":538},[219,1663,1664],{"class":469},"    list\n",[219,1666,1667],{"class":221,"line":546},[219,1668,1669],{"class":469},"  )\n",[219,1671,1672],{"class":221,"line":554},[219,1673,827],{"class":469},[219,1675,1676],{"class":221,"line":562},[219,1677,662],{"emptyLinePlaceholder":661},[219,1679,1680],{"class":221,"line":1235},[219,1681,1682],{"class":454},"\u002F\u002F NEW - Simple utility functions\n",[219,1684,1685,1687,1689,1691,1693,1695,1697,1699],{"class":221,"line":1242},[219,1686,462],{"class":461},[219,1688,466],{"class":465},[219,1690,992],{"class":469},[219,1692,473],{"class":465},[219,1694,476],{"class":461},[219,1696,479],{"class":465},[219,1698,107],{"class":229},[219,1700,485],{"class":465},[219,1702,1703,1705,1707,1709,1711,1713,1715,1717,1719,1721,1724,1726],{"class":221,"line":1249},[219,1704,668],{"class":667},[219,1706,926],{"class":469},[219,1708,674],{"class":465},[219,1710,992],{"class":469},[219,1712,194],{"class":465},[219,1714,1070],{"class":681},[219,1716,960],{"class":469},[219,1718,1075],{"class":861},[219,1720,608],{"class":465},[219,1722,1723],{"class":469}," [field1",[219,1725,608],{"class":465},[219,1727,1728],{"class":469}," field2])\n",[235,1730,1732],{"id":1731},"step-4-update-provider-usage","Step 4: Update Provider Usage",[174,1734,1735],{},"If you were using custom provider implementations:",[210,1737,1739],{"className":445,"code":1738,"language":447,"meta":215,"style":215},"\u002F\u002F OLD - Custom provider setup\nclass MyProvider {\n  async getUtxos(address) {\n    \u002F\u002F Custom implementation\n  }\n}\n\n\u002F\u002F NEW - Use built-in providers or extend base\nimport { ProviderUtils } from '@hydra-sdk\u002Fcore'\n\nconst provider = new ProviderUtils.BlockfrostProvider({\n  apiKey: 'your-blockfrost-api-key',\n  network: 'preprod'\n})\n\n\u002F\u002F Or extend a built-in provider to customize behavior\nclass MyProvider extends ProviderUtils.BlockfrostProvider {\n  constructor() {\n    super({ apiKey: 'your-blockfrost-api-key', network: 'preprod' })\n  }\n\n  \u002F\u002F Inherited `.fetcher` \u002F `.submitter` still work\n  async getUtxos(address: string) {\n    return this.fetcher.fetchAddressUTxOs(address)\n  }\n}\n",[170,1740,1741,1746,1757,1775,1780,1785,1790,1794,1799,1818,1822,1846,1863,1877,1883,1887,1892,1909,1918,1957,1962,1967,1973,1993,2016,2021],{"__ignoreMap":215},[219,1742,1743],{"class":221,"line":222},[219,1744,1745],{"class":454},"\u002F\u002F OLD - Custom provider setup\n",[219,1747,1748,1751,1754],{"class":221,"line":458},[219,1749,1750],{"class":667},"class",[219,1752,1753],{"class":225}," MyProvider",[219,1755,1756],{"class":465}," {\n",[219,1758,1759,1762,1765,1767,1771,1773],{"class":221,"line":513},[219,1760,1761],{"class":667},"  async",[219,1763,1764],{"class":509}," getUtxos",[219,1766,960],{"class":465},[219,1768,1770],{"class":1769},"sHdIc","address",[219,1772,1657],{"class":465},[219,1774,1756],{"class":465},[219,1776,1777],{"class":221,"line":522},[219,1778,1779],{"class":454},"    \u002F\u002F Custom implementation\n",[219,1781,1782],{"class":221,"line":530},[219,1783,1784],{"class":465},"  }\n",[219,1786,1787],{"class":221,"line":538},[219,1788,1789],{"class":465},"}\n",[219,1791,1792],{"class":221,"line":546},[219,1793,662],{"emptyLinePlaceholder":661},[219,1795,1796],{"class":221,"line":554},[219,1797,1798],{"class":454},"\u002F\u002F NEW - Use built-in providers or extend base\n",[219,1800,1801,1803,1805,1808,1810,1812,1814,1816],{"class":221,"line":562},[219,1802,462],{"class":461},[219,1804,466],{"class":465},[219,1806,1807],{"class":469}," ProviderUtils",[219,1809,473],{"class":465},[219,1811,476],{"class":461},[219,1813,479],{"class":465},[219,1815,107],{"class":229},[219,1817,485],{"class":465},[219,1819,1820],{"class":221,"line":1235},[219,1821,662],{"emptyLinePlaceholder":661},[219,1823,1824,1826,1829,1831,1834,1836,1838,1841,1843],{"class":221,"line":1242},[219,1825,668],{"class":667},[219,1827,1828],{"class":469}," provider ",[219,1830,674],{"class":465},[219,1832,1833],{"class":465}," new",[219,1835,1807],{"class":469},[219,1837,194],{"class":465},[219,1839,1840],{"class":681},"BlockfrostProvider",[219,1842,960],{"class":469},[219,1844,1845],{"class":465},"{\n",[219,1847,1848,1851,1854,1856,1859,1861],{"class":221,"line":1249},[219,1849,1850],{"class":509},"  apiKey",[219,1852,1853],{"class":465},":",[219,1855,479],{"class":465},[219,1857,1858],{"class":229},"your-blockfrost-api-key",[219,1860,963],{"class":465},[219,1862,519],{"class":465},[219,1864,1865,1868,1870,1872,1875],{"class":221,"line":1256},[219,1866,1867],{"class":509},"  network",[219,1869,1853],{"class":465},[219,1871,479],{"class":465},[219,1873,1874],{"class":229},"preprod",[219,1876,485],{"class":465},[219,1878,1879,1881],{"class":221,"line":1264},[219,1880,565],{"class":465},[219,1882,827],{"class":469},[219,1884,1885],{"class":221,"line":1272},[219,1886,662],{"emptyLinePlaceholder":661},[219,1888,1889],{"class":221,"line":1280},[219,1890,1891],{"class":454},"\u002F\u002F Or extend a built-in provider to customize behavior\n",[219,1893,1894,1896,1898,1901,1903,1905,1907],{"class":221,"line":1288},[219,1895,1750],{"class":667},[219,1897,1753],{"class":225},[219,1899,1900],{"class":667}," extends",[219,1902,1807],{"class":225},[219,1904,194],{"class":465},[219,1906,1840],{"class":225},[219,1908,1756],{"class":465},[219,1910,1911,1914,1916],{"class":221,"line":1296},[219,1912,1913],{"class":667},"  constructor",[219,1915,808],{"class":465},[219,1917,1756],{"class":465},[219,1919,1921,1924,1926,1929,1932,1934,1936,1938,1940,1942,1945,1947,1949,1951,1953,1955],{"class":221,"line":1920},19,[219,1922,1923],{"class":469},"    super",[219,1925,960],{"class":509},[219,1927,1928],{"class":465},"{",[219,1930,1931],{"class":509}," apiKey",[219,1933,1853],{"class":465},[219,1935,479],{"class":465},[219,1937,1858],{"class":229},[219,1939,963],{"class":465},[219,1941,608],{"class":465},[219,1943,1944],{"class":509}," network",[219,1946,1853],{"class":465},[219,1948,479],{"class":465},[219,1950,1874],{"class":229},[219,1952,963],{"class":465},[219,1954,473],{"class":465},[219,1956,827],{"class":509},[219,1958,1960],{"class":221,"line":1959},20,[219,1961,1784],{"class":465},[219,1963,1965],{"class":221,"line":1964},21,[219,1966,662],{"emptyLinePlaceholder":661},[219,1968,1970],{"class":221,"line":1969},22,[219,1971,1972],{"class":454},"  \u002F\u002F Inherited `.fetcher` \u002F `.submitter` still work\n",[219,1974,1976,1978,1980,1982,1984,1986,1989,1991],{"class":221,"line":1975},23,[219,1977,1761],{"class":667},[219,1979,1764],{"class":509},[219,1981,960],{"class":465},[219,1983,1770],{"class":1769},[219,1985,1853],{"class":465},[219,1987,1988],{"class":225}," string",[219,1990,1657],{"class":465},[219,1992,1756],{"class":465},[219,1994,1996,1999,2002,2005,2007,2010,2012,2014],{"class":221,"line":1995},24,[219,1997,1998],{"class":461},"    return",[219,2000,2001],{"class":465}," this.",[219,2003,2004],{"class":469},"fetcher",[219,2006,194],{"class":465},[219,2008,2009],{"class":681},"fetchAddressUTxOs",[219,2011,960],{"class":509},[219,2013,1770],{"class":469},[219,2015,827],{"class":509},[219,2017,2019],{"class":221,"line":2018},25,[219,2020,1784],{"class":465},[219,2022,2024],{"class":221,"line":2023},26,[219,2025,1789],{"class":465},[166,2027,2029],{"id":2028},"common-migration-patterns","Common Migration Patterns",[235,2031,2033],{"id":2032},"pattern-1-metadata-creation","Pattern 1: Metadata Creation",[174,2035,2036],{},[180,2037,586],{},[210,2039,2041],{"className":445,"code":2040,"language":447,"meta":215,"style":215},"const metadata = {\n  721: {\n    [policyId]: {\n      [tokenName]: {\n        name: Buffer.from(name).toString('hex'),\n        image: Buffer.from(image).toString('hex')\n      }\n    }\n  }\n}\n",[170,2042,2043,2054,2063,2078,2092,2124,2154,2159,2164,2168],{"__ignoreMap":215},[219,2044,2045,2047,2050,2052],{"class":221,"line":222},[219,2046,668],{"class":667},[219,2048,2049],{"class":469}," metadata ",[219,2051,674],{"class":465},[219,2053,1756],{"class":465},[219,2055,2056,2059,2061],{"class":221,"line":458},[219,2057,2058],{"class":861},"  721",[219,2060,1853],{"class":465},[219,2062,1756],{"class":465},[219,2064,2065,2068,2071,2074,2076],{"class":221,"line":513},[219,2066,2067],{"class":509},"    [",[219,2069,2070],{"class":469},"policyId",[219,2072,2073],{"class":509},"]",[219,2075,1853],{"class":465},[219,2077,1756],{"class":465},[219,2079,2080,2083,2086,2088,2090],{"class":221,"line":522},[219,2081,2082],{"class":509},"      [",[219,2084,2085],{"class":469},"tokenName",[219,2087,2073],{"class":509},[219,2089,1853],{"class":465},[219,2091,1756],{"class":465},[219,2093,2094,2097,2099,2101,2103,2105,2108,2110,2112,2114,2116,2118,2120,2122],{"class":221,"line":530},[219,2095,2096],{"class":509},"        name",[219,2098,1853],{"class":465},[219,2100,1336],{"class":469},[219,2102,194],{"class":465},[219,2104,1341],{"class":681},[219,2106,2107],{"class":469},"(name)",[219,2109,194],{"class":465},[219,2111,1349],{"class":681},[219,2113,960],{"class":469},[219,2115,963],{"class":465},[219,2117,1356],{"class":229},[219,2119,963],{"class":465},[219,2121,1657],{"class":469},[219,2123,519],{"class":465},[219,2125,2126,2129,2131,2133,2135,2137,2140,2142,2144,2146,2148,2150,2152],{"class":221,"line":538},[219,2127,2128],{"class":509},"        image",[219,2130,1853],{"class":465},[219,2132,1336],{"class":469},[219,2134,194],{"class":465},[219,2136,1341],{"class":681},[219,2138,2139],{"class":469},"(image)",[219,2141,194],{"class":465},[219,2143,1349],{"class":681},[219,2145,960],{"class":469},[219,2147,963],{"class":465},[219,2149,1356],{"class":229},[219,2151,963],{"class":465},[219,2153,827],{"class":469},[219,2155,2156],{"class":221,"line":546},[219,2157,2158],{"class":465},"      }\n",[219,2160,2161],{"class":221,"line":554},[219,2162,2163],{"class":465},"    }\n",[219,2165,2166],{"class":221,"line":562},[219,2167,1784],{"class":465},[219,2169,2170],{"class":221,"line":1235},[219,2171,1789],{"class":465},[174,2173,2174],{},[180,2175,627],{},[210,2177,2179],{"className":445,"code":2178,"language":447,"meta":215,"style":215},"import { ParserUtils, DatumUtils } from '@hydra-sdk\u002Fcore'\n\nconst metadata = {\n  721: {\n    [policyId]: {\n      [tokenName]: {\n        name: ParserUtils.stringToHex(name),\n        image: ParserUtils.stringToHex(image)\n      }\n    }\n  }\n}\n\n\u002F\u002F Or create as datum\nconst metadataDatum = DatumUtils.mkMap([\n  [DatumUtils.mkBytes(ParserUtils.stringToHex(\"name\")), \n   DatumUtils.mkBytes(ParserUtils.stringToHex(name))],\n  [DatumUtils.mkBytes(ParserUtils.stringToHex(\"image\")), \n   DatumUtils.mkBytes(ParserUtils.stringToHex(image))]\n])\n",[170,2180,2181,2203,2207,2217,2225,2237,2249,2266,2281,2285,2289,2293,2297,2301,2306,2325,2358,2378,2407,2424],{"__ignoreMap":215},[219,2182,2183,2185,2187,2189,2191,2193,2195,2197,2199,2201],{"class":221,"line":222},[219,2184,462],{"class":461},[219,2186,466],{"class":465},[219,2188,646],{"class":469},[219,2190,608],{"class":465},[219,2192,992],{"class":469},[219,2194,473],{"class":465},[219,2196,476],{"class":461},[219,2198,479],{"class":465},[219,2200,107],{"class":229},[219,2202,485],{"class":465},[219,2204,2205],{"class":221,"line":458},[219,2206,662],{"emptyLinePlaceholder":661},[219,2208,2209,2211,2213,2215],{"class":221,"line":513},[219,2210,668],{"class":667},[219,2212,2049],{"class":469},[219,2214,674],{"class":465},[219,2216,1756],{"class":465},[219,2218,2219,2221,2223],{"class":221,"line":522},[219,2220,2058],{"class":861},[219,2222,1853],{"class":465},[219,2224,1756],{"class":465},[219,2226,2227,2229,2231,2233,2235],{"class":221,"line":530},[219,2228,2067],{"class":509},[219,2230,2070],{"class":469},[219,2232,2073],{"class":509},[219,2234,1853],{"class":465},[219,2236,1756],{"class":465},[219,2238,2239,2241,2243,2245,2247],{"class":221,"line":538},[219,2240,2082],{"class":509},[219,2242,2085],{"class":469},[219,2244,2073],{"class":509},[219,2246,1853],{"class":465},[219,2248,1756],{"class":465},[219,2250,2251,2253,2255,2257,2259,2262,2264],{"class":221,"line":546},[219,2252,2096],{"class":509},[219,2254,1853],{"class":465},[219,2256,646],{"class":469},[219,2258,194],{"class":465},[219,2260,2261],{"class":681},"stringToHex",[219,2263,2107],{"class":469},[219,2265,519],{"class":465},[219,2267,2268,2270,2272,2274,2276,2278],{"class":221,"line":554},[219,2269,2128],{"class":509},[219,2271,1853],{"class":465},[219,2273,646],{"class":469},[219,2275,194],{"class":465},[219,2277,2261],{"class":681},[219,2279,2280],{"class":469},"(image)\n",[219,2282,2283],{"class":221,"line":562},[219,2284,2158],{"class":465},[219,2286,2287],{"class":221,"line":1235},[219,2288,2163],{"class":465},[219,2290,2291],{"class":221,"line":1242},[219,2292,1784],{"class":465},[219,2294,2295],{"class":221,"line":1249},[219,2296,1789],{"class":465},[219,2298,2299],{"class":221,"line":1256},[219,2300,662],{"emptyLinePlaceholder":661},[219,2302,2303],{"class":221,"line":1264},[219,2304,2305],{"class":454},"\u002F\u002F Or create as datum\n",[219,2307,2308,2310,2313,2315,2317,2319,2322],{"class":221,"line":1272},[219,2309,668],{"class":667},[219,2311,2312],{"class":469}," metadataDatum ",[219,2314,674],{"class":465},[219,2316,992],{"class":469},[219,2318,194],{"class":465},[219,2320,2321],{"class":681},"mkMap",[219,2323,2324],{"class":469},"([\n",[219,2326,2327,2330,2332,2334,2337,2339,2341,2343,2346,2349,2351,2354,2356],{"class":221,"line":1280},[219,2328,2329],{"class":469},"  [DatumUtils",[219,2331,194],{"class":465},[219,2333,1043],{"class":681},[219,2335,2336],{"class":469},"(ParserUtils",[219,2338,194],{"class":465},[219,2340,2261],{"class":681},[219,2342,960],{"class":469},[219,2344,2345],{"class":465},"\"",[219,2347,2348],{"class":229},"name",[219,2350,2345],{"class":465},[219,2352,2353],{"class":469},"))",[219,2355,608],{"class":465},[219,2357,510],{"class":469},[219,2359,2360,2363,2365,2367,2369,2371,2373,2376],{"class":221,"line":1288},[219,2361,2362],{"class":469},"   DatumUtils",[219,2364,194],{"class":465},[219,2366,1043],{"class":681},[219,2368,2336],{"class":469},[219,2370,194],{"class":465},[219,2372,2261],{"class":681},[219,2374,2375],{"class":469},"(name))]",[219,2377,519],{"class":465},[219,2379,2380,2382,2384,2386,2388,2390,2392,2394,2396,2399,2401,2403,2405],{"class":221,"line":1296},[219,2381,2329],{"class":469},[219,2383,194],{"class":465},[219,2385,1043],{"class":681},[219,2387,2336],{"class":469},[219,2389,194],{"class":465},[219,2391,2261],{"class":681},[219,2393,960],{"class":469},[219,2395,2345],{"class":465},[219,2397,2398],{"class":229},"image",[219,2400,2345],{"class":465},[219,2402,2353],{"class":469},[219,2404,608],{"class":465},[219,2406,510],{"class":469},[219,2408,2409,2411,2413,2415,2417,2419,2421],{"class":221,"line":1920},[219,2410,2362],{"class":469},[219,2412,194],{"class":465},[219,2414,1043],{"class":681},[219,2416,2336],{"class":469},[219,2418,194],{"class":465},[219,2420,2261],{"class":681},[219,2422,2423],{"class":469},"(image))]\n",[219,2425,2426],{"class":221,"line":1959},[219,2427,2428],{"class":469},"])\n",[235,2430,2432],{"id":2431},"pattern-2-transaction-timing","Pattern 2: Transaction Timing",[174,2434,2435],{},[180,2436,586],{},[210,2438,2440],{"className":445,"code":2439,"language":447,"meta":215,"style":215},"\u002F\u002F Manual slot calculation\nconst validFrom = getCurrentSlot()\nconst validUntil = validFrom + 7200 \u002F\u002F 1 hour in slots\n",[170,2441,2442,2447,2462],{"__ignoreMap":215},[219,2443,2444],{"class":221,"line":222},[219,2445,2446],{"class":454},"\u002F\u002F Manual slot calculation\n",[219,2448,2449,2451,2454,2456,2459],{"class":221,"line":458},[219,2450,668],{"class":667},[219,2452,2453],{"class":469}," validFrom ",[219,2455,674],{"class":465},[219,2457,2458],{"class":681}," getCurrentSlot",[219,2460,2461],{"class":469},"()\n",[219,2463,2464,2466,2469,2471,2473,2475,2478],{"class":221,"line":513},[219,2465,668],{"class":667},[219,2467,2468],{"class":469}," validUntil ",[219,2470,674],{"class":465},[219,2472,2453],{"class":469},[219,2474,858],{"class":465},[219,2476,2477],{"class":861}," 7200",[219,2479,2480],{"class":454}," \u002F\u002F 1 hour in slots\n",[174,2482,2483],{},[180,2484,627],{},[210,2486,2488],{"className":445,"code":2487,"language":447,"meta":215,"style":215},"import { TimeUtils, SLOT_CONFIG_NETWORK } from '@hydra-sdk\u002Fcore'\n\nconst validFrom = TimeUtils.unixTimeToEnclosingSlot(Date.now(), SLOT_CONFIG_NETWORK.PREPROD)\nconst validUntil = TimeUtils.unixTimeToEnclosingSlot(Date.now() + 3600000, SLOT_CONFIG_NETWORK.PREPROD)\n",[170,2489,2490,2512,2516,2546],{"__ignoreMap":215},[219,2491,2492,2494,2496,2498,2500,2502,2504,2506,2508,2510],{"class":221,"line":222},[219,2493,462],{"class":461},[219,2495,466],{"class":465},[219,2497,763],{"class":469},[219,2499,608],{"class":465},[219,2501,768],{"class":469},[219,2503,473],{"class":465},[219,2505,476],{"class":461},[219,2507,479],{"class":465},[219,2509,107],{"class":229},[219,2511,485],{"class":465},[219,2513,2514],{"class":221,"line":458},[219,2515,662],{"emptyLinePlaceholder":661},[219,2517,2518,2520,2522,2524,2526,2528,2530,2532,2534,2536,2538,2540,2542,2544],{"class":221,"line":513},[219,2519,668],{"class":667},[219,2521,2453],{"class":469},[219,2523,674],{"class":465},[219,2525,763],{"class":469},[219,2527,194],{"class":465},[219,2529,793],{"class":681},[219,2531,737],{"class":469},[219,2533,194],{"class":465},[219,2535,742],{"class":681},[219,2537,808],{"class":469},[219,2539,608],{"class":465},[219,2541,768],{"class":469},[219,2543,194],{"class":465},[219,2545,1563],{"class":469},[219,2547,2548,2550,2552,2554,2556,2558,2560,2562,2564,2566,2568,2570,2572,2574,2576,2578],{"class":221,"line":522},[219,2549,668],{"class":667},[219,2551,2468],{"class":469},[219,2553,674],{"class":465},[219,2555,763],{"class":469},[219,2557,194],{"class":465},[219,2559,793],{"class":681},[219,2561,737],{"class":469},[219,2563,194],{"class":465},[219,2565,742],{"class":681},[219,2567,855],{"class":469},[219,2569,858],{"class":465},[219,2571,862],{"class":861},[219,2573,608],{"class":465},[219,2575,768],{"class":469},[219,2577,194],{"class":465},[219,2579,1563],{"class":469},[235,2581,2583],{"id":2582},"pattern-3-policy-script-creation","Pattern 3: Policy Script Creation",[174,2585,2586],{},[180,2587,586],{},[210,2589,2591],{"className":445,"code":2590,"language":447,"meta":215,"style":215},"\u002F\u002F Manual WASM operations for policy\nimport { CardanoWASM } from '@hydra-sdk\u002Fcardano-wasm'\n\nconst keyHash = CardanoWASM.Ed25519KeyHash.from_hex(publicKeyHash)\nconst scriptPubkey = CardanoWASM.ScriptPubkey.new(keyHash)\nconst policy = CardanoWASM.NativeScript.new_script_pubkey(scriptPubkey)\n",[170,2592,2593,2598,2616,2620,2644,2667],{"__ignoreMap":215},[219,2594,2595],{"class":221,"line":222},[219,2596,2597],{"class":454},"\u002F\u002F Manual WASM operations for policy\n",[219,2599,2600,2602,2604,2606,2608,2610,2612,2614],{"class":221,"line":458},[219,2601,462],{"class":461},[219,2603,466],{"class":465},[219,2605,905],{"class":469},[219,2607,473],{"class":465},[219,2609,476],{"class":461},[219,2611,479],{"class":465},[219,2613,121],{"class":229},[219,2615,485],{"class":465},[219,2617,2618],{"class":221,"line":513},[219,2619,662],{"emptyLinePlaceholder":661},[219,2621,2622,2624,2627,2629,2631,2633,2636,2638,2641],{"class":221,"line":522},[219,2623,668],{"class":667},[219,2625,2626],{"class":469}," keyHash ",[219,2628,674],{"class":465},[219,2630,905],{"class":469},[219,2632,194],{"class":465},[219,2634,2635],{"class":469},"Ed25519KeyHash",[219,2637,194],{"class":465},[219,2639,2640],{"class":681},"from_hex",[219,2642,2643],{"class":469},"(publicKeyHash)\n",[219,2645,2646,2648,2651,2653,2655,2657,2660,2662,2664],{"class":221,"line":530},[219,2647,668],{"class":667},[219,2649,2650],{"class":469}," scriptPubkey ",[219,2652,674],{"class":465},[219,2654,905],{"class":469},[219,2656,194],{"class":465},[219,2658,2659],{"class":469},"ScriptPubkey",[219,2661,194],{"class":465},[219,2663,1630],{"class":681},[219,2665,2666],{"class":469},"(keyHash)\n",[219,2668,2669,2671,2674,2676,2678,2680,2683,2685,2688],{"class":221,"line":538},[219,2670,668],{"class":667},[219,2672,2673],{"class":469}," policy ",[219,2675,674],{"class":465},[219,2677,905],{"class":469},[219,2679,194],{"class":465},[219,2681,2682],{"class":469},"NativeScript",[219,2684,194],{"class":465},[219,2686,2687],{"class":681},"new_script_pubkey",[219,2689,2690],{"class":469},"(scriptPubkey)\n",[174,2692,2693],{},[180,2694,627],{},[210,2696,2698],{"className":445,"code":2697,"language":447,"meta":215,"style":215},"import { PolicyUtils } from '@hydra-sdk\u002Fcore'\n\nconst policy = PolicyUtils.buildPolicyScriptFromPubkey({\n  type: 'sig',\n  keyHash: publicKeyHash\n})\n\n\u002F\u002F Or from address\nconst policy = PolicyUtils.buildMintingPolicyScriptFromAddress(address)\n",[170,2699,2700,2719,2723,2742,2758,2768,2774,2778,2783],{"__ignoreMap":215},[219,2701,2702,2704,2706,2709,2711,2713,2715,2717],{"class":221,"line":222},[219,2703,462],{"class":461},[219,2705,466],{"class":465},[219,2707,2708],{"class":469}," PolicyUtils",[219,2710,473],{"class":465},[219,2712,476],{"class":461},[219,2714,479],{"class":465},[219,2716,107],{"class":229},[219,2718,485],{"class":465},[219,2720,2721],{"class":221,"line":458},[219,2722,662],{"emptyLinePlaceholder":661},[219,2724,2725,2727,2729,2731,2733,2735,2738,2740],{"class":221,"line":513},[219,2726,668],{"class":667},[219,2728,2673],{"class":469},[219,2730,674],{"class":465},[219,2732,2708],{"class":469},[219,2734,194],{"class":465},[219,2736,2737],{"class":681},"buildPolicyScriptFromPubkey",[219,2739,960],{"class":469},[219,2741,1845],{"class":465},[219,2743,2744,2747,2749,2751,2754,2756],{"class":221,"line":522},[219,2745,2746],{"class":509},"  type",[219,2748,1853],{"class":465},[219,2750,479],{"class":465},[219,2752,2753],{"class":229},"sig",[219,2755,963],{"class":465},[219,2757,519],{"class":465},[219,2759,2760,2763,2765],{"class":221,"line":530},[219,2761,2762],{"class":509},"  keyHash",[219,2764,1853],{"class":465},[219,2766,2767],{"class":469}," publicKeyHash\n",[219,2769,2770,2772],{"class":221,"line":538},[219,2771,565],{"class":465},[219,2773,827],{"class":469},[219,2775,2776],{"class":221,"line":546},[219,2777,662],{"emptyLinePlaceholder":661},[219,2779,2780],{"class":221,"line":554},[219,2781,2782],{"class":454},"\u002F\u002F Or from address\n",[219,2784,2785,2787,2789,2791,2793,2795,2798],{"class":221,"line":562},[219,2786,668],{"class":667},[219,2788,2673],{"class":469},[219,2790,674],{"class":465},[219,2792,2708],{"class":469},[219,2794,194],{"class":465},[219,2796,2797],{"class":681},"buildMintingPolicyScriptFromAddress",[219,2799,2800],{"class":469},"(address)\n",[166,2802,2804],{"id":2803},"testing-your-migration","Testing Your Migration",[235,2806,2808],{"id":2807},"_1-basic-functionality-test","1. Basic Functionality Test",[210,2810,2812],{"className":445,"code":2811,"language":447,"meta":215,"style":215},"import { \n  AppWallet, \n  NETWORK_ID,\n  ParserUtils,\n  TimeUtils,\n  DatumUtils \n} from '@hydra-sdk\u002Fcore'\n\n\u002F\u002F Test wallet creation (should work as before)\nconst wallet = new AppWallet({\n  networkId: NETWORK_ID.PREPROD,\n  key: { type: 'mnemonic', words: AppWallet.brew() }\n})\n\n\u002F\u002F Test new utilities\nconst hex = ParserUtils.stringToHex('test')\nconst slot = TimeUtils.resolveSlotNo('preprod')\nconst datum = DatumUtils.mkInt(42)\n\nconsole.log('Migration test passed:', {\n  address: wallet.getAccount(0, 0).baseAddressBech32,\n  hex,\n  slot,\n  datumHex: datum.to_hex()\n})\n",[170,2813,2814,2822,2831,2838,2844,2850,2856,2868,2872,2877,2895,2912,2951,2957,2961,2966,2991,3016,3036,3040,3063,3096,3103,3110,3127],{"__ignoreMap":215},[219,2815,2816,2818,2820],{"class":221,"line":222},[219,2817,462],{"class":461},[219,2819,466],{"class":465},[219,2821,510],{"class":509},[219,2823,2824,2827,2829],{"class":221,"line":458},[219,2825,2826],{"class":469},"  AppWallet",[219,2828,608],{"class":465},[219,2830,510],{"class":509},[219,2832,2833,2836],{"class":221,"line":513},[219,2834,2835],{"class":469},"  NETWORK_ID",[219,2837,519],{"class":465},[219,2839,2840,2842],{"class":221,"line":522},[219,2841,516],{"class":469},[219,2843,519],{"class":465},[219,2845,2846,2848],{"class":221,"line":530},[219,2847,525],{"class":469},[219,2849,519],{"class":465},[219,2851,2852,2854],{"class":221,"line":538},[219,2853,533],{"class":469},[219,2855,510],{"class":509},[219,2857,2858,2860,2862,2864,2866],{"class":221,"line":546},[219,2859,565],{"class":465},[219,2861,476],{"class":461},[219,2863,479],{"class":465},[219,2865,107],{"class":229},[219,2867,485],{"class":465},[219,2869,2870],{"class":221,"line":554},[219,2871,662],{"emptyLinePlaceholder":661},[219,2873,2874],{"class":221,"line":562},[219,2875,2876],{"class":454},"\u002F\u002F Test wallet creation (should work as before)\n",[219,2878,2879,2881,2884,2886,2888,2891,2893],{"class":221,"line":1235},[219,2880,668],{"class":667},[219,2882,2883],{"class":469}," wallet ",[219,2885,674],{"class":465},[219,2887,1833],{"class":465},[219,2889,2890],{"class":681}," AppWallet",[219,2892,960],{"class":469},[219,2894,1845],{"class":465},[219,2896,2897,2900,2902,2905,2907,2910],{"class":221,"line":1242},[219,2898,2899],{"class":509},"  networkId",[219,2901,1853],{"class":465},[219,2903,2904],{"class":469}," NETWORK_ID",[219,2906,194],{"class":465},[219,2908,2909],{"class":469},"PREPROD",[219,2911,519],{"class":465},[219,2913,2914,2917,2919,2921,2924,2926,2928,2931,2933,2935,2938,2940,2942,2944,2947,2949],{"class":221,"line":1249},[219,2915,2916],{"class":509},"  key",[219,2918,1853],{"class":465},[219,2920,466],{"class":465},[219,2922,2923],{"class":509}," type",[219,2925,1853],{"class":465},[219,2927,479],{"class":465},[219,2929,2930],{"class":229},"mnemonic",[219,2932,963],{"class":465},[219,2934,608],{"class":465},[219,2936,2937],{"class":509}," words",[219,2939,1853],{"class":465},[219,2941,2890],{"class":469},[219,2943,194],{"class":465},[219,2945,2946],{"class":681},"brew",[219,2948,855],{"class":469},[219,2950,1789],{"class":465},[219,2952,2953,2955],{"class":221,"line":1256},[219,2954,565],{"class":465},[219,2956,827],{"class":469},[219,2958,2959],{"class":221,"line":1264},[219,2960,662],{"emptyLinePlaceholder":661},[219,2962,2963],{"class":221,"line":1272},[219,2964,2965],{"class":454},"\u002F\u002F Test new utilities\n",[219,2967,2968,2970,2972,2974,2976,2978,2980,2982,2984,2987,2989],{"class":221,"line":1280},[219,2969,668],{"class":667},[219,2971,671],{"class":469},[219,2973,674],{"class":465},[219,2975,646],{"class":469},[219,2977,194],{"class":465},[219,2979,2261],{"class":681},[219,2981,960],{"class":469},[219,2983,963],{"class":465},[219,2985,2986],{"class":229},"test",[219,2988,963],{"class":465},[219,2990,827],{"class":469},[219,2992,2993,2995,2997,2999,3001,3003,3006,3008,3010,3012,3014],{"class":221,"line":1288},[219,2994,668],{"class":667},[219,2996,1466],{"class":469},[219,2998,674],{"class":465},[219,3000,763],{"class":469},[219,3002,194],{"class":465},[219,3004,3005],{"class":681},"resolveSlotNo",[219,3007,960],{"class":469},[219,3009,963],{"class":465},[219,3011,1874],{"class":229},[219,3013,963],{"class":465},[219,3015,827],{"class":469},[219,3017,3018,3020,3022,3024,3026,3028,3030,3032,3034],{"class":221,"line":1296},[219,3019,668],{"class":667},[219,3021,926],{"class":469},[219,3023,674],{"class":465},[219,3025,992],{"class":469},[219,3027,194],{"class":465},[219,3029,1021],{"class":681},[219,3031,960],{"class":469},[219,3033,966],{"class":861},[219,3035,827],{"class":469},[219,3037,3038],{"class":221,"line":1920},[219,3039,662],{"emptyLinePlaceholder":661},[219,3041,3042,3045,3047,3050,3052,3054,3057,3059,3061],{"class":221,"line":1959},[219,3043,3044],{"class":469},"console",[219,3046,194],{"class":465},[219,3048,3049],{"class":681},"log",[219,3051,960],{"class":469},[219,3053,963],{"class":465},[219,3055,3056],{"class":229},"Migration test passed:",[219,3058,963],{"class":465},[219,3060,608],{"class":465},[219,3062,1756],{"class":465},[219,3064,3065,3068,3070,3073,3075,3078,3080,3082,3084,3087,3089,3091,3094],{"class":221,"line":1964},[219,3066,3067],{"class":509},"  address",[219,3069,1853],{"class":465},[219,3071,3072],{"class":469}," wallet",[219,3074,194],{"class":465},[219,3076,3077],{"class":681},"getAccount",[219,3079,960],{"class":469},[219,3081,1075],{"class":861},[219,3083,608],{"class":465},[219,3085,3086],{"class":861}," 0",[219,3088,1657],{"class":469},[219,3090,194],{"class":465},[219,3092,3093],{"class":469},"baseAddressBech32",[219,3095,519],{"class":465},[219,3097,3098,3101],{"class":221,"line":1969},[219,3099,3100],{"class":469},"  hex",[219,3102,519],{"class":465},[219,3104,3105,3108],{"class":221,"line":1975},[219,3106,3107],{"class":469},"  slot",[219,3109,519],{"class":465},[219,3111,3112,3115,3117,3120,3122,3125],{"class":221,"line":1995},[219,3113,3114],{"class":509},"  datumHex",[219,3116,1853],{"class":465},[219,3118,3119],{"class":469}," datum",[219,3121,194],{"class":465},[219,3123,3124],{"class":681},"to_hex",[219,3126,2461],{"class":469},[219,3128,3129,3131],{"class":221,"line":2018},[219,3130,565],{"class":465},[219,3132,827],{"class":469},[235,3134,3136],{"id":3135},"_2-data-conversion-test","2. Data Conversion Test",[210,3138,3140],{"className":445,"code":3139,"language":447,"meta":215,"style":215},"import { ParserUtils } from '@hydra-sdk\u002Fcore'\n\nconst testData = [\n  'Hello World',\n  '🚀 Hydra SDK',\n  'Special chars: åøæ'\n]\n\ntestData.forEach(str => {\n  const hex = ParserUtils.stringToHex(str)\n  const back = Buffer.from(hex, 'hex').toString('utf8')\n  \n  console.assert(str === back, `Conversion failed for: ${str}`)\n})\n\nconsole.log('Data conversion tests passed')\n",[170,3141,3142,3160,3164,3176,3188,3199,3208,3213,3217,3237,3260,3304,3309,3346,3352,3356],{"__ignoreMap":215},[219,3143,3144,3146,3148,3150,3152,3154,3156,3158],{"class":221,"line":222},[219,3145,462],{"class":461},[219,3147,466],{"class":465},[219,3149,646],{"class":469},[219,3151,473],{"class":465},[219,3153,476],{"class":461},[219,3155,479],{"class":465},[219,3157,107],{"class":229},[219,3159,485],{"class":465},[219,3161,3162],{"class":221,"line":458},[219,3163,662],{"emptyLinePlaceholder":661},[219,3165,3166,3168,3171,3173],{"class":221,"line":513},[219,3167,668],{"class":667},[219,3169,3170],{"class":469}," testData ",[219,3172,674],{"class":465},[219,3174,3175],{"class":469}," [\n",[219,3177,3178,3181,3184,3186],{"class":221,"line":522},[219,3179,3180],{"class":465},"  '",[219,3182,3183],{"class":229},"Hello World",[219,3185,963],{"class":465},[219,3187,519],{"class":465},[219,3189,3190,3192,3195,3197],{"class":221,"line":530},[219,3191,3180],{"class":465},[219,3193,3194],{"class":229},"🚀 Hydra SDK",[219,3196,963],{"class":465},[219,3198,519],{"class":465},[219,3200,3201,3203,3206],{"class":221,"line":538},[219,3202,3180],{"class":465},[219,3204,3205],{"class":229},"Special chars: åøæ",[219,3207,485],{"class":465},[219,3209,3210],{"class":221,"line":546},[219,3211,3212],{"class":469},"]\n",[219,3214,3215],{"class":221,"line":554},[219,3216,662],{"emptyLinePlaceholder":661},[219,3218,3219,3222,3224,3227,3229,3232,3235],{"class":221,"line":562},[219,3220,3221],{"class":469},"testData",[219,3223,194],{"class":465},[219,3225,3226],{"class":681},"forEach",[219,3228,960],{"class":469},[219,3230,3231],{"class":1769},"str",[219,3233,3234],{"class":667}," =>",[219,3236,1756],{"class":465},[219,3238,3239,3242,3245,3248,3250,3252,3254,3256,3258],{"class":221,"line":1235},[219,3240,3241],{"class":667},"  const",[219,3243,3244],{"class":469}," hex",[219,3246,3247],{"class":465}," =",[219,3249,646],{"class":469},[219,3251,194],{"class":465},[219,3253,2261],{"class":681},[219,3255,960],{"class":509},[219,3257,3231],{"class":469},[219,3259,827],{"class":509},[219,3261,3262,3264,3267,3269,3271,3273,3275,3277,3279,3281,3283,3285,3287,3289,3291,3293,3295,3297,3300,3302],{"class":221,"line":1242},[219,3263,3241],{"class":667},[219,3265,3266],{"class":469}," back",[219,3268,3247],{"class":465},[219,3270,1336],{"class":469},[219,3272,194],{"class":465},[219,3274,1341],{"class":681},[219,3276,960],{"class":509},[219,3278,1356],{"class":469},[219,3280,608],{"class":465},[219,3282,479],{"class":465},[219,3284,1356],{"class":229},[219,3286,963],{"class":465},[219,3288,1657],{"class":509},[219,3290,194],{"class":465},[219,3292,1349],{"class":681},[219,3294,960],{"class":509},[219,3296,963],{"class":465},[219,3298,3299],{"class":229},"utf8",[219,3301,963],{"class":465},[219,3303,827],{"class":509},[219,3305,3306],{"class":221,"line":1249},[219,3307,3308],{"class":509},"  \n",[219,3310,3311,3314,3316,3319,3321,3323,3326,3328,3330,3333,3336,3339,3341,3344],{"class":221,"line":1256},[219,3312,3313],{"class":469},"  console",[219,3315,194],{"class":465},[219,3317,3318],{"class":681},"assert",[219,3320,960],{"class":509},[219,3322,3231],{"class":469},[219,3324,3325],{"class":465}," ===",[219,3327,3266],{"class":469},[219,3329,608],{"class":465},[219,3331,3332],{"class":465}," `",[219,3334,3335],{"class":229},"Conversion failed for: ",[219,3337,3338],{"class":465},"${",[219,3340,3231],{"class":469},[219,3342,3343],{"class":465},"}`",[219,3345,827],{"class":509},[219,3347,3348,3350],{"class":221,"line":1264},[219,3349,565],{"class":465},[219,3351,827],{"class":469},[219,3353,3354],{"class":221,"line":1272},[219,3355,662],{"emptyLinePlaceholder":661},[219,3357,3358,3360,3362,3364,3366,3368,3371,3373],{"class":221,"line":1280},[219,3359,3044],{"class":469},[219,3361,194],{"class":465},[219,3363,3049],{"class":681},[219,3365,960],{"class":469},[219,3367,963],{"class":465},[219,3369,3370],{"class":229},"Data conversion tests passed",[219,3372,963],{"class":465},[219,3374,827],{"class":469},[235,3376,3378],{"id":3377},"_3-time-utilities-test","3. Time Utilities Test",[210,3380,3382],{"className":445,"code":3381,"language":447,"meta":215,"style":215},"import { TimeUtils, SLOT_CONFIG_NETWORK } from '@hydra-sdk\u002Fcore'\n\nconst networks = ['MAINNET', 'PREPROD', 'PREVIEW'] as const\n\nnetworks.forEach(network => {\n  const slot = TimeUtils.unixTimeToEnclosingSlot(Date.now(), SLOT_CONFIG_NETWORK[network])\n  console.assert(typeof slot === 'number' && slot > 0, `Invalid slot for network: ${network}`)\n})\n\nconsole.log('Time utilities tests passed')\n",[170,3383,3384,3406,3410,3455,3459,3477,3514,3563,3569,3573],{"__ignoreMap":215},[219,3385,3386,3388,3390,3392,3394,3396,3398,3400,3402,3404],{"class":221,"line":222},[219,3387,462],{"class":461},[219,3389,466],{"class":465},[219,3391,763],{"class":469},[219,3393,608],{"class":465},[219,3395,768],{"class":469},[219,3397,473],{"class":465},[219,3399,476],{"class":461},[219,3401,479],{"class":465},[219,3403,107],{"class":229},[219,3405,485],{"class":465},[219,3407,3408],{"class":221,"line":458},[219,3409,662],{"emptyLinePlaceholder":661},[219,3411,3412,3414,3417,3419,3422,3424,3427,3429,3431,3433,3435,3437,3439,3441,3444,3446,3449,3452],{"class":221,"line":513},[219,3413,668],{"class":667},[219,3415,3416],{"class":469}," networks ",[219,3418,674],{"class":465},[219,3420,3421],{"class":469}," [",[219,3423,963],{"class":465},[219,3425,3426],{"class":229},"MAINNET",[219,3428,963],{"class":465},[219,3430,608],{"class":465},[219,3432,479],{"class":465},[219,3434,2909],{"class":229},[219,3436,963],{"class":465},[219,3438,608],{"class":465},[219,3440,479],{"class":465},[219,3442,3443],{"class":229},"PREVIEW",[219,3445,963],{"class":465},[219,3447,3448],{"class":469},"] ",[219,3450,3451],{"class":461},"as",[219,3453,3454],{"class":667}," const\n",[219,3456,3457],{"class":221,"line":522},[219,3458,662],{"emptyLinePlaceholder":661},[219,3460,3461,3464,3466,3468,3470,3473,3475],{"class":221,"line":530},[219,3462,3463],{"class":469},"networks",[219,3465,194],{"class":465},[219,3467,3226],{"class":681},[219,3469,960],{"class":469},[219,3471,3472],{"class":1769},"network",[219,3474,3234],{"class":667},[219,3476,1756],{"class":465},[219,3478,3479,3481,3484,3486,3488,3490,3492,3494,3497,3499,3501,3503,3505,3507,3510,3512],{"class":221,"line":538},[219,3480,3241],{"class":667},[219,3482,3483],{"class":469}," slot",[219,3485,3247],{"class":465},[219,3487,763],{"class":469},[219,3489,194],{"class":465},[219,3491,793],{"class":681},[219,3493,960],{"class":509},[219,3495,3496],{"class":469},"Date",[219,3498,194],{"class":465},[219,3500,742],{"class":681},[219,3502,808],{"class":509},[219,3504,608],{"class":465},[219,3506,768],{"class":469},[219,3508,3509],{"class":509},"[",[219,3511,3472],{"class":469},[219,3513,2428],{"class":509},[219,3515,3516,3518,3520,3522,3524,3527,3529,3531,3533,3536,3538,3541,3543,3546,3548,3550,3552,3555,3557,3559,3561],{"class":221,"line":546},[219,3517,3313],{"class":469},[219,3519,194],{"class":465},[219,3521,3318],{"class":681},[219,3523,960],{"class":509},[219,3525,3526],{"class":465},"typeof",[219,3528,3483],{"class":469},[219,3530,3325],{"class":465},[219,3532,479],{"class":465},[219,3534,3535],{"class":229},"number",[219,3537,963],{"class":465},[219,3539,3540],{"class":465}," &&",[219,3542,3483],{"class":469},[219,3544,3545],{"class":465}," >",[219,3547,3086],{"class":861},[219,3549,608],{"class":465},[219,3551,3332],{"class":465},[219,3553,3554],{"class":229},"Invalid slot for network: ",[219,3556,3338],{"class":465},[219,3558,3472],{"class":469},[219,3560,3343],{"class":465},[219,3562,827],{"class":509},[219,3564,3565,3567],{"class":221,"line":554},[219,3566,565],{"class":465},[219,3568,827],{"class":469},[219,3570,3571],{"class":221,"line":562},[219,3572,662],{"emptyLinePlaceholder":661},[219,3574,3575,3577,3579,3581,3583,3585,3588,3590],{"class":221,"line":1235},[219,3576,3044],{"class":469},[219,3578,194],{"class":465},[219,3580,3049],{"class":681},[219,3582,960],{"class":469},[219,3584,963],{"class":465},[219,3586,3587],{"class":229},"Time utilities tests passed",[219,3589,963],{"class":465},[219,3591,827],{"class":469},[166,3593,3595],{"id":3594},"troubleshooting","Troubleshooting",[235,3597,3599],{"id":3598},"common-issues","Common Issues",[3601,3602,3603,3624,3643],"ol",{},[3604,3605,3606,3609,3617,3620,3623],"li",{},[180,3607,3608],{},"Import Errors",[210,3610,3615],{"className":3611,"code":3613,"language":3614},[3612],"language-text","Error: Module not found: @hydra-sdk\u002Fcore\u002Futils\u002F...\n","text",[170,3616,3613],{"__ignoreMap":215},[3618,3619],"br",{},[180,3621,3622],{},"Solution",": Use namespace imports instead of deep imports.",[3604,3625,3626,3629,3635,3637,3639,3640],{},[180,3627,3628],{},"Type Errors with Utilities",[210,3630,3633],{"className":3631,"code":3632,"language":3614},[3612],"Error: Property 'stringToHex' does not exist on type...\n",[170,3634,3632],{"__ignoreMap":215},[3618,3636],{},[180,3638,3622],{},": Import the correct namespace: ",[170,3641,3642],{},"ParserUtils.stringToHex",[3604,3644,3645,3648,3654,3656,3658,3659,399,3662,3665,3666],{},[180,3646,3647],{},"Slot Calculation Issues",[210,3649,3652],{"className":3650,"code":3651,"language":3614},[3612],"Error: Invalid network parameter\n",[170,3653,3651],{"__ignoreMap":215},[3618,3655],{},[180,3657,3622],{},": Use exact network strings: ",[170,3660,3661],{},"'mainnet'",[170,3663,3664],{},"'preprod'",", or ",[170,3667,3668],{},"'preview'",[235,3670,3672],{"id":3671},"getting-help","Getting Help",[174,3674,3675],{},"If you encounter issues during migration:",[3601,3677,3678,3684,3690,3696],{},[3604,3679,3680,3681],{},"Check the ",[411,3682,3683],{"href":127},"Utilities API Reference",[3604,3685,3686,3687],{},"Review ",[411,3688,3689],{"href":57},"Working with Utilities Guide",[3604,3691,3692,3693],{},"Look at ",[411,3694,3695],{"href":57},"Utilities Examples",[3604,3697,3698],{},"Join our community Discord for support",[166,3700,3702],{"id":3701},"benefits-of-v110","Benefits of v1.1.0",[174,3704,3705],{},"After migration, you'll enjoy:",[3707,3708,3709,3715,3721,3727,3733],"ul",{},[3604,3710,3711,3714],{},[180,3712,3713],{},"Better Developer Experience",": Organized, predictable utility functions",[3604,3716,3717,3720],{},[180,3718,3719],{},"Type Safety",": Comprehensive TypeScript definitions",[3604,3722,3723,3726],{},[180,3724,3725],{},"Performance",": Optimized utility implementations",[3604,3728,3729,3732],{},[180,3730,3731],{},"Maintainability",": Cleaner, more readable code",[3604,3734,3735,3738],{},[180,3736,3737],{},"Future-Proof",": Foundation for upcoming features",[174,3740,3741],{},"The migration effort pays off with significantly improved development experience and code quality.",[3743,3744,3745],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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}",{"title":215,"searchDepth":222,"depth":458,"links":3747},[3748,3754,3755,3758,3763,3769,3774,3779,3783],{"id":168,"depth":458,"text":3749,"children":3750},"@hydra-sdk\u002Fbridge v1.x → v2.0",[3751,3752,3753],{"id":237,"depth":513,"text":238},{"id":256,"depth":513,"text":257},{"id":391,"depth":513,"text":392},{"id":422,"depth":458,"text":423},{"id":429,"depth":458,"text":430,"children":3756},[3757],{"id":433,"depth":513,"text":434},{"id":576,"depth":458,"text":577,"children":3759},[3760,3761,3762],{"id":580,"depth":513,"text":581},{"id":707,"depth":513,"text":708},{"id":881,"depth":513,"text":882},{"id":1088,"depth":458,"text":1089,"children":3764},[3765,3766,3767,3768],{"id":1092,"depth":513,"text":1093},{"id":1147,"depth":513,"text":1148},{"id":1309,"depth":513,"text":1310},{"id":1731,"depth":513,"text":1732},{"id":2028,"depth":458,"text":2029,"children":3770},[3771,3772,3773],{"id":2032,"depth":513,"text":2033},{"id":2431,"depth":513,"text":2432},{"id":2582,"depth":513,"text":2583},{"id":2803,"depth":458,"text":2804,"children":3775},[3776,3777,3778],{"id":2807,"depth":513,"text":2808},{"id":3135,"depth":513,"text":3136},{"id":3377,"depth":513,"text":3378},{"id":3594,"depth":458,"text":3595,"children":3780},[3781,3782],{"id":3598,"depth":513,"text":3599},{"id":3671,"depth":513,"text":3672},{"id":3701,"depth":458,"text":3702},"Upgrade paths for Hydra SDK — bridge v1.x → v2.0, and the earlier v1.1.x utilities system.","md",null,{},{"icon":145},{"title":142,"description":3784},"gIAhVk3QVJkc4LVSsN8jGAAMnWms-9Ey3iOJ2Ybie8A",[3792,3794],{"title":137,"path":138,"stem":139,"description":3793,"icon":140,"children":-1},"Learn about the changes and updates in each version of the Hydra SDK",{"title":147,"path":148,"stem":149,"description":3795,"icon":150,"children":-1},"Why Hydra SDK uses WebAssembly, with benchmarks against JavaScript-based Cardano SDKs.",1784812307137]