UNPKG

safe_chainid

Version:

safely handle chainIds

247 lines 14.8 kB
<!doctype html> <html class="default no-js"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>safe_chainid</title> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/css/main.css"> <script async src="assets/js/search.js" id="search-script"></script> </head> <body> <header> <div class="tsd-page-toolbar"> <div class="container"> <div class="table-wrap"> <div class="table-cell" id="tsd-search" data-index="assets/js/search.json" data-base="."> <div class="field"> <label for="tsd-search-field" class="tsd-widget search no-caption">Search</label> <input id="tsd-search-field" type="text" /> </div> <ul class="results"> <li class="state loading">Preparing search index...</li> <li class="state failure">The search index is not available</li> </ul> <ul class="results-priority" style="display:none"> </ul> <a href="index.html" class="title">safe_chainid</a> </div> <div class="table-cell" id="tsd-widgets"> <div id="tsd-filter"> <a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a> <div class="tsd-filter-group"> <div class="tsd-select" id="tsd-filter-visibility"> <span class="tsd-select-label">All</span> <ul class="tsd-select-list"> <li data-value="public">Public</li> <li data-value="protected">Public/Protected</li> <li data-value="private" class="selected">All</li> </ul> </div> <input type="checkbox" id="tsd-filter-inherited" checked /> <label class="tsd-widget" for="tsd-filter-inherited">Inherited</label> <input type="checkbox" id="tsd-filter-externals" checked /> <label class="tsd-widget" for="tsd-filter-externals">Externals</label> <input type="checkbox" id="tsd-filter-only-exported" /> <label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label> </div> </div> <a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a> </div> </div> </div> </div> <div class="tsd-page-title"> <div class="container"> <ul class="tsd-breadcrumb"> </ul> </div> </div> </header> <div class="container container-main"> <div class="row"> <div class="col-3 col-menu menu-sticky-wrap menu-highlight"> <nav class="tsd-navigation primary"> <ul> <li class="current "> <a href="modules.html">Exports</a> </li> </ul> </nav> </div> <div class="col-7 offset-3 col-content"> <h1>Project safe_chainid</h1> <section class="tsd-panel-group tsd-index-group"> <section class="tsd-panel tsd-index-panel"> <div class="tsd-index-content"> <section class="tsd-index-section "> <h3>Enumerations</h3> <ul class="tsd-index-list"> <li class="tsd-kind-enum"><a href="enums/SafeChainId.html" class="tsd-kind-icon">Safe<wbr>Chain<wbr>Id</a></li> </ul> </section> <section class="tsd-index-section "> <h3>Variables</h3> <ul class="tsd-index-list"> <li class="tsd-kind-variable"><a href="modules.html#MAX_SAFE_CHAIN_ID" class="tsd-kind-icon">MAX_<wbr>SAFE_<wbr>CHAIN_<wbr>ID</a></li> <li class="tsd-kind-variable"><a href="modules.html#MAX_SAFE_CHAIN_ID_HEX" class="tsd-kind-icon">MAX_<wbr>SAFE_<wbr>CHAIN_<wbr>ID_<wbr>HEX</a></li> </ul> </section> <section class="tsd-index-section "> <h3>Functions</h3> <ul class="tsd-index-list"> <li class="tsd-kind-function"><a href="modules.html#isSafeChainId" class="tsd-kind-icon">is<wbr>Safe<wbr>Chain<wbr>Id</a></li> <li class="tsd-kind-function"><a href="modules.html#normalizeChainId" class="tsd-kind-icon">normalize<wbr>Chain<wbr>Id</a></li> </ul> </section> </div> </section> </section> <section class="tsd-panel-group tsd-member-group "> <h2>Variables</h2> <section class="tsd-panel tsd-member tsd-kind-variable"> <a name="MAX_SAFE_CHAIN_ID" class="tsd-anchor"></a> <h3><span class="tsd-flag ts-flagConst">Const</span> MAX_<wbr>SAFE_<wbr>CHAIN_<wbr>ID</h3> <div class="tsd-signature tsd-kind-icon">MAX_<wbr>SAFE_<wbr>CHAIN_<wbr>ID<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"4503599627370476"</span><span class="tsd-signature-symbol"> = 4503599627370476</span></div> <aside class="tsd-sources"> <ul> <li>Defined in index.ts:33</li> </ul> </aside> <div class="tsd-comment tsd-typography tsd-comment-shorttext"> <div class="lead"> <p>MAX_SAFE_CHAIN_ID</p> </div> </div><div class="tsd-comment tsd-typography tsd-comment-tags"> <dl class="tsd-comment-tags"><dt>constant</dt> <dd><p>MAX_SAFE_CHAIN_ID</p> </dd><dt>returns</dt> <dd></dd></dl> </div> </section> <section class="tsd-panel tsd-member tsd-kind-variable"> <a name="MAX_SAFE_CHAIN_ID_HEX" class="tsd-anchor"></a> <h3><span class="tsd-flag ts-flagConst">Const</span> MAX_<wbr>SAFE_<wbr>CHAIN_<wbr>ID_<wbr>HEX</h3> <div class="tsd-signature tsd-kind-icon">MAX_<wbr>SAFE_<wbr>CHAIN_<wbr>ID_<wbr>HEX<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"4503599627370476"</span><span class="tsd-signature-symbol"> = 0xFFFFFFFFFFFEC</span></div> <aside class="tsd-sources"> <ul> <li>Defined in index.ts:40</li> </ul> </aside> <div class="tsd-comment tsd-typography tsd-comment-tags"> <dl class="tsd-comment-tags"><dt>constant</dt> <dd><p>MAX_SAFE_CHAIN_ID_HEX</p> </dd><dt>returns</dt> <dd></dd></dl> </div> </section> </section> <section class="tsd-panel-group tsd-member-group "> <h2>Functions</h2> <section class="tsd-panel tsd-member tsd-kind-function"> <a name="isSafeChainId" class="tsd-anchor"></a> <h3>is<wbr>Safe<wbr>Chain<wbr>Id</h3> <ul class="tsd-signatures tsd-kind-function"> <li class="tsd-signature tsd-kind-icon">is<wbr>Safe<wbr>Chain<wbr>Id<span class="tsd-signature-symbol">(</span>chainId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in index.ts:50</li> </ul> </aside> <div class="tsd-comment tsd-typography tsd-comment-shorttext"> <div class="lead"> <p>isSafeChainId</p> </div> </div><div class="tsd-comment tsd-typography tsd-comment-tags"> <dl class="tsd-comment-tags"><dt>function</dt> <dd><p>isSafeChainId</p> </dd></dl> </div> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5>chainId: <span class="tsd-signature-type">number</span></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-function"> <a name="normalizeChainId" class="tsd-anchor"></a> <h3>normalize<wbr>Chain<wbr>Id</h3> <ul class="tsd-signatures tsd-kind-function"> <li class="tsd-signature tsd-kind-icon">normalize<wbr>Chain<wbr>Id<span class="tsd-signature-symbol">(</span>chainId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in index.ts:72</li> </ul> </aside> <div class="tsd-comment tsd-typography tsd-comment-tags"> <dl class="tsd-comment-tags"><dt>function</dt> <dd><p>normalizeChainId</p> </dd><dt>throws</dt> <dd><p>{!safeChainId} not an integer</p> </dd></dl> </div> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5>chainId: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4> <pre><code class="language-typescript"><span style="color: #AF00DB">export</span><span style="color: #000000"> </span><span style="color: #0000FF">function</span><span style="color: #000000"> </span><span style="color: #795E26">normalizeChainId</span><span style="color: #000000">(</span><span style="color: #001080">chainId</span><span style="color: #000000">: </span><span style="color: #267F99">string</span><span style="color: #000000"> | </span><span style="color: #267F99">number</span><span style="color: #000000">): </span><span style="color: #267F99">number</span><span style="color: #000000"> {</span> <span style="color: #AF00DB">if</span><span style="color: #000000"> (</span><span style="color: #0000FF">typeof</span><span style="color: #000000"> </span><span style="color: #001080">chainId</span><span style="color: #000000"> === </span><span style="color: #A31515">&#039;string&#039;</span><span style="color: #000000">) {</span> <span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">parsedChainId</span><span style="color: #000000"> = </span><span style="color: #267F99">Number</span><span style="color: #000000">.</span><span style="color: #795E26">parseInt</span><span style="color: #000000">(</span> <span style="color: #001080">chainId</span><span style="color: #000000">,</span> <span style="color: #001080">chainId</span><span style="color: #000000">.</span><span style="color: #795E26">trim</span><span style="color: #000000">().</span><span style="color: #795E26">substring</span><span style="color: #000000">(</span><span style="color: #098658">0</span><span style="color: #000000">, </span><span style="color: #098658">2</span><span style="color: #000000">) === </span><span style="color: #A31515">&#039;0x&#039;</span><span style="color: #000000"> ? </span><span style="color: #098658">16</span><span style="color: #000000"> : </span><span style="color: #098658">10</span><span style="color: #000000">, );</span> <span style="color: #AF00DB">if</span><span style="color: #000000"> (</span><span style="color: #267F99">Number</span><span style="color: #000000">.</span><span style="color: #795E26">isNaN</span><span style="color: #000000">(</span><span style="color: #001080">parsedChainId</span><span style="color: #000000">))</span> <span style="color: #AF00DB">throw</span><span style="color: #000000"> </span><span style="color: #0000FF">new</span><span style="color: #000000"> </span><span style="color: #267F99">Error</span><span style="color: #000000">(</span><span style="color: #A31515">`!safeChainId </span><span style="color: #0000FF">${</span><span style="color: #001080">chainId</span><span style="color: #0000FF">}</span><span style="color: #A31515"> is not an integer`</span><span style="color: #000000">);</span> <span style="color: #AF00DB">return</span><span style="color: #000000"> </span><span style="color: #001080">parsedChainId</span><span style="color: #000000">;</span> </code></pre> </li> </ul> </section> </section> <!--{&quot;options&quot;:&quot;/Users/sbacha/safe_chainid&quot;,&quot;tsconfig&quot;:&quot;/Users/sbacha/safe_chainid&quot;,&quot;packages&quot;:[],&quot;entryPoints&quot;:[&quot;/Users/sbacha/safe_chainid/source/index.ts&quot;],&quot;exclude&quot;:[],&quot;externalPattern&quot;:[&quot;**/node_modules/**&quot;],&quot;excludeExternals&quot;:false,&quot;excludeNotDocumented&quot;:false,&quot;excludeInternal&quot;:false,&quot;excludePrivate&quot;:false,&quot;excludeProtected&quot;:false,&quot;disableSources&quot;:false,&quot;includes&quot;:&quot;&quot;,&quot;media&quot;:&quot;&quot;,&quot;watch&quot;:false,&quot;preserveWatchOutput&quot;:false,&quot;emit&quot;:false,&quot;out&quot;:&quot;&quot;,&quot;json&quot;:&quot;&quot;,&quot;pretty&quot;:true,&quot;theme&quot;:&quot;./node_modules/typedoc-neo-theme/bin/default&quot;,&quot;highlightTheme&quot;:&quot;light-plus&quot;,&quot;name&quot;:&quot;&quot;,&quot;includeVersion&quot;:false,&quot;excludeTags&quot;:[],&quot;readme&quot;:&quot;&quot;,&quot;defaultCategory&quot;:&quot;Other&quot;,&quot;categoryOrder&quot;:[],&quot;categorizeByGroup&quot;:true,&quot;sort&quot;:[&quot;kind&quot;,&quot;instance-first&quot;,&quot;alphabetical&quot;],&quot;gitRevision&quot;:&quot;&quot;,&quot;gitRemote&quot;:&quot;origin&quot;,&quot;gaID&quot;:&quot;&quot;,&quot;gaSite&quot;:&quot;auto&quot;,&quot;hideGenerator&quot;:false,&quot;toc&quot;:[],&quot;disableOutputCheck&quot;:false,&quot;help&quot;:false,&quot;version&quot;:false,&quot;showConfig&quot;:false,&quot;plugin&quot;:[],&quot;logger&quot;:&quot;console&quot;,&quot;logLevel&quot;:1,&quot;treatWarningsAsErrors&quot;:false,&quot;listInvalidSymbolLinks&quot;:false}--> </div> <div class="col-2 col-menu secondary-menu"> <nav class="tsd-navigation secondary menu-sticky"> <ul class="before-current"> <li class=" tsd-kind-enum root"> <a href="enums/SafeChainId.html" class="tsd-kind-icon">Safe<wbr>Chain<wbr>Id</a> </li> <li class=" tsd-kind-variable root"> <a href="modules.html#MAX_SAFE_CHAIN_ID" class="tsd-kind-icon">MAX_<wbr>SAFE_<wbr>CHAIN_<wbr>ID</a> </li> <li class=" tsd-kind-variable root"> <a href="modules.html#MAX_SAFE_CHAIN_ID_HEX" class="tsd-kind-icon">MAX_<wbr>SAFE_<wbr>CHAIN_<wbr>ID_<wbr>HEX</a> </li> <li class=" tsd-kind-function root"> <a href="modules.html#isSafeChainId" class="tsd-kind-icon">is<wbr>Safe<wbr>Chain<wbr>Id</a> </li> <li class=" tsd-kind-function root"> <a href="modules.html#normalizeChainId" class="tsd-kind-icon">normalize<wbr>Chain<wbr>Id</a> </li> </ul> </nav> </div> </div> </div> <footer class="with-border-bottom"> </footer> <div class="container tsd-generator"> <p>Generated using <a href="http://typedoc.org/" target="_blank">TypeDoc</a></p> </div> <div class="overlay"></div> <script src="assets/js/main.js"></script> </body> </html>