optional max rpc calls after tld crawl for resolver

This commit is contained in:
stjet
2024-11-24 23:48:41 +00:00
parent 327a80c8c8
commit bb7e857b5e
39 changed files with 149 additions and 138 deletions

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
*Version 1.0.0 release-candidate 2* *Version 1.0.0 release-candidate 3*
Very similar to [Airtune's Banano NFT protocol](https://github.com/Airtune/73-meta-tokens) Very similar to [Airtune's Banano NFT protocol](https://github.com/Airtune/73-meta-tokens)
@@ -120,7 +120,7 @@ Domain metadata can be anything. However, in order for domain metadata to be eas
A domain name cannot have the `.`, `\u0000`, or `"` characters in it. Domain names are all lowercase. A domain name cannot have the `.`, `\u0000`, or `"` characters in it. Domain names are all lowercase.
> Maybe alphanumeric only? > Currently, it is recommended that registrars only issue lowercase, alphanumeric domain names. Likewise, applications supporting BNS domains may safely assume that domain names will only be lowercase and alphanumeric. This may become required in a later version of the protocol.
# Implementation # Implementation
@@ -142,7 +142,7 @@ Also, for the convenience of the user (so they can do a Domain Resovler and Doma
Domain owners will need some specialised software to manage domains. Generating/storing Domain Accounts, transferring domains, and setting/changing their resolved address are all simple. Changing domain metadata is a bit more complicated and involves uploading the metadata file to IPFS. The demo client supports converting IPFS Cid v0 into metadata hashes, and then declaring that metadata hash. Domain owners will need some specialised software to manage domains. Generating/storing Domain Accounts, transferring domains, and setting/changing their resolved address are all simple. Changing domain metadata is a bit more complicated and involves uploading the metadata file to IPFS. The demo client supports converting IPFS Cid v0 into metadata hashes, and then declaring that metadata hash.
As BNS domains can be burned if sent/received improperly, **it is important that TLD and Domain Accounts are not imported into regular wallets** which may do things like auto-receive. As such, it is recommended that BNS wallets (and wallet-like software) generate seeds for TLD and Domain Accounts in a unique (that is, not 64 hex characters) format, so that those seeds cannot be easily imported into regular wallets by uninformed users. Obviously, BNS wallets should also accept that unique seed format. Arbitrarily, because base32 is annoying, the recommended unique seed format is a simple change of the hex characters 0-9 to g-p and A-F to q-v. This will be called the "BNS Seed Format", or the "BSF Hex". As BNS domains can be burned if sent/received improperly, **it is important that TLD and Domain Accounts are not imported into regular wallets** which may do things like auto-receive. As such, it is recommended that BNS wallets (and wallet-like software) generate seeds for TLD and Domain Accounts in a unique (that is, not 64 hex characters) format, so that those seeds cannot be easily imported into regular wallets by uninformed users. Obviously, BNS wallets should also accept that unique seed format. Arbitrarily, because base32 is annoying, **the recommended unique seed format is a simple change of the hex characters 0-9 to g-p and A-F to q-v. This will be called the "BNS Seed Format", or the "BSF Hex".**
## Non-BNS wallets ## Non-BNS wallets

View File

@@ -3,6 +3,26 @@
--dark-hl-0: #9CDCFE; --dark-hl-0: #9CDCFE;
--light-hl-1: #000000; --light-hl-1: #000000;
--dark-hl-1: #D4D4D4; --dark-hl-1: #D4D4D4;
--light-hl-2: #800000;
--dark-hl-2: #808080;
--light-hl-3: #800000;
--dark-hl-3: #569CD6;
--light-hl-4: #000000FF;
--dark-hl-4: #D4D4D4;
--light-hl-5: #E50000;
--dark-hl-5: #9CDCFE;
--light-hl-6: #0000FF;
--dark-hl-6: #CE9178;
--light-hl-7: #AF00DB;
--dark-hl-7: #C586C0;
--light-hl-8: #A31515;
--dark-hl-8: #CE9178;
--light-hl-9: #0000FF;
--dark-hl-9: #569CD6;
--light-hl-10: #0070C1;
--dark-hl-10: #4FC1FF;
--light-hl-11: #795E26;
--dark-hl-11: #DCDCAA;
--light-code-background: #FFFFFF; --light-code-background: #FFFFFF;
--dark-code-background: #1E1E1E; --dark-code-background: #1E1E1E;
} }
@@ -10,27 +30,77 @@
@media (prefers-color-scheme: light) { :root { @media (prefers-color-scheme: light) { :root {
--hl-0: var(--light-hl-0); --hl-0: var(--light-hl-0);
--hl-1: var(--light-hl-1); --hl-1: var(--light-hl-1);
--hl-2: var(--light-hl-2);
--hl-3: var(--light-hl-3);
--hl-4: var(--light-hl-4);
--hl-5: var(--light-hl-5);
--hl-6: var(--light-hl-6);
--hl-7: var(--light-hl-7);
--hl-8: var(--light-hl-8);
--hl-9: var(--light-hl-9);
--hl-10: var(--light-hl-10);
--hl-11: var(--light-hl-11);
--code-background: var(--light-code-background); --code-background: var(--light-code-background);
} } } }
@media (prefers-color-scheme: dark) { :root { @media (prefers-color-scheme: dark) { :root {
--hl-0: var(--dark-hl-0); --hl-0: var(--dark-hl-0);
--hl-1: var(--dark-hl-1); --hl-1: var(--dark-hl-1);
--hl-2: var(--dark-hl-2);
--hl-3: var(--dark-hl-3);
--hl-4: var(--dark-hl-4);
--hl-5: var(--dark-hl-5);
--hl-6: var(--dark-hl-6);
--hl-7: var(--dark-hl-7);
--hl-8: var(--dark-hl-8);
--hl-9: var(--dark-hl-9);
--hl-10: var(--dark-hl-10);
--hl-11: var(--dark-hl-11);
--code-background: var(--dark-code-background); --code-background: var(--dark-code-background);
} } } }
:root[data-theme='light'] { :root[data-theme='light'] {
--hl-0: var(--light-hl-0); --hl-0: var(--light-hl-0);
--hl-1: var(--light-hl-1); --hl-1: var(--light-hl-1);
--hl-2: var(--light-hl-2);
--hl-3: var(--light-hl-3);
--hl-4: var(--light-hl-4);
--hl-5: var(--light-hl-5);
--hl-6: var(--light-hl-6);
--hl-7: var(--light-hl-7);
--hl-8: var(--light-hl-8);
--hl-9: var(--light-hl-9);
--hl-10: var(--light-hl-10);
--hl-11: var(--light-hl-11);
--code-background: var(--light-code-background); --code-background: var(--light-code-background);
} }
:root[data-theme='dark'] { :root[data-theme='dark'] {
--hl-0: var(--dark-hl-0); --hl-0: var(--dark-hl-0);
--hl-1: var(--dark-hl-1); --hl-1: var(--dark-hl-1);
--hl-2: var(--dark-hl-2);
--hl-3: var(--dark-hl-3);
--hl-4: var(--dark-hl-4);
--hl-5: var(--dark-hl-5);
--hl-6: var(--dark-hl-6);
--hl-7: var(--dark-hl-7);
--hl-8: var(--dark-hl-8);
--hl-9: var(--dark-hl-9);
--hl-10: var(--dark-hl-10);
--hl-11: var(--dark-hl-11);
--code-background: var(--dark-code-background); --code-background: var(--dark-code-background);
} }
.hl-0 { color: var(--hl-0); } .hl-0 { color: var(--hl-0); }
.hl-1 { color: var(--hl-1); } .hl-1 { color: var(--hl-1); }
.hl-2 { color: var(--hl-2); }
.hl-3 { color: var(--hl-3); }
.hl-4 { color: var(--hl-4); }
.hl-5 { color: var(--hl-5); }
.hl-6 { color: var(--hl-6); }
.hl-7 { color: var(--hl-7); }
.hl-8 { color: var(--hl-8); }
.hl-9 { color: var(--hl-9); }
.hl-10 { color: var(--hl-10); }
.hl-11 { color: var(--hl-11); }
pre, code { background: var(--code-background); } pre, code { background: var(--code-background); }

View File

@@ -1 +1 @@
window.searchData = "data:application/octet-stream;base64,H4sIAAAAAAAAA62cbXPbyA2A/4vyVedo3/iSb0nP6d30cr1xrp20ngyHluiYE1nSkHJyqcf/vbvUSgRIQFxK+qSRiQVAPAD2RaSfJ9X6ez15c/s8+VquFpM3kZ5OVvljMXkzKVbz9aLIFuvHvFxlzR+nk6dqaS/dP63m23K9ql/3ha4eto9LKzlf5nVdWN2TycuUUL8oAtT3hULVPxR/Zdt1dpfXhUkIzej6WKWrOquLYpHdr6vHfHtEOxYMNdMZ5jRZhYQZWjDUTFkH3ElfKPguyi/lqvHpyX4meVXlP6h7IMSCTTT0jsQHXg9VOi8X2beZG5QvFlVR14Tinkyoci/uRu50EMp7MkeVK3lQ/ts//35Q9y2vyvxuWdSv7V9DFfxy/Sn72y9vbz4Sag7XQpW9+/g+O6YQXQ9V+ufN298/Zh9+/Z1QeLg2UtnbT7yyt59Clb2/ub7+73X2x7/eZf+4/g+hEQuMVHtz/Qev0l48qk7IpL3n335+O5+vn1Ztsfsxr9tLR7UZ0Xo3t/m6rZ7m23U1pO4VlgWqp5NNXhXWIeQdcH8mQQEtl1lZ10/FYtAgEh1hT850G68vxTarN8W8vC/ngxY7wufYHHGfPfFTY1tthm9xJ9Na2NaLn8r6p3L1UFTltjE/hmanw7IoD3JnWO7FeL0pVlm+shNbtV5ty2I4h7lRl/Tqoaxtifxw6h8bY0FeUaPOoQRaxs/N6ovrGujqRRpHX2NQ78BuMgm3W0mGmDxIjrOGcM6r/Psy6P684Bl3RhUvYWlM/QbZ5UqYsD22ioNiHFbIhDfn1XKwb8PlzPh2ekWz3EBR3xT1evmNiNT+wkVKGSkLquKDXyPSHFvpZvgY7dvlInvMN5ty9WXACpYMtobSo9pdH7qfg9RZVuxWd/71e14tartQeAiz2RsTHlVyyfkhX+Vfjk6zXuLCC1CodeQ6dO8ykzDf7cKrOLaURqYP0uOtIqTNSo88OhlwgBp4pi/3VVH8L9iBg/SZVqtiXpRE6TBmW/EzeQcty5FpZmUetiIbiELg5gT5w+5RLubR+Bgd2cGc6tWIjQ3OlJP2N0NZM7jNwSlz8m4ngM6YTU8P0iX2PgE+jtkC9Xy8xE6I4MltiLg5jRK6/PZo9MxG+j5ucuMdGJjfxtgO2agh22P2a2GTSzbah97A833ZVvmqvi+q8c70R57vzaKwOqrDCuKx2OaLfJuPwcRquLh3+0Xsdn26f0jH+R4yiyXenYH10hjbAYcRuJv0ziSC95wnTMdHiurUE4sTJ2Xek7POLy4yNfO+XfA04yIT9HFPL3S2QXhqos40/W65nn89uFeutkV1n88PHjaXj/96gg4IfmyKEGWvvOCxst15xhi6C3X71V5yjKl+mP70swVvci9xqWAhfSHxOrjImVsHGxvq5kOmBuhga31AwwlOONBndtPZBPf88AKXIgbVhQDb+3daEJG1U2LYN98P4YfuCqbnxl7iUkFE+kKieHCRMbdfQmUPOTjXG7DbHXSOAwMcseFTQBIOUMXQOdAmEirgZHtUOaAD4ZB6GDjb3l1f9B48GTBNjDvHjcG6hLZPK8z+iXWP53u8VO65sbt+KZZAWwhJ79xpAYS2Tglfz7icpbEwklr4tDnk7gqtHo4/s9QHwt/QCAjLxYCaVzuRY8HnlKODcEb70TPv4+r9mnXIQit2ipG7p2pVDMboIHWKifAuc1J3OXOaGj89TV4+T62eRfHX5M3zxLaVulyv7FV5pa5SK35fFsuFe8Z1nyDz9eOjU/DZX/t34U7MnMRO5PVsMr2dTbW4ilL5+fP0dj+iudD8oRET9pugxAQSk/abpMQkElP2m6LEFBLT9pumxDQSM/abocQMEovst4gSi5BYbL/FlFiMxBL7LaHEEiRmodymlFiKw+uiLUgOogOiIUGjwCyEi7kgaQiMQ7iwCxKIwESEi7wgmQgMRbjgCxKLwFyEi78gyQiMRjgEgoQjMB3hKIhkKpOrGMthPMJhEOlURVcm0VgSE5IOg5xRkhITkg6DFKRkp1qacpF9LyXmIx0EqaZqdhXPIiyJ+UgHwTYiShLzkQ6CNKQk5iMdBEnykZiPjJmoS0xHOggynip1JUWKJTEf6SDIhIwl5qNmTCwVpqMEG0uF6SjJxlJ12pliY6kwH9XwIRuCwnyUYWKpMB0VcfeN2SiHQJEdRmE6yiFQZIdRmI5yCBTZYRSmox0ERXYYjflowdy3xnS0Q6A0lRka09HNbEN2It2ZbxwCFZE6MR3tICiyE2nMR0dsh9GYkI7ZDqMxIZ2wHUZjQjplskNjPmbGVoXBfIxgq8JgQkayVWEwIdMQImdTgwkZzWSH6SwJDJsdBvMxEduLDOZjmgoia9dgPu4lnFtN1prBfIzDoMlaM5hQ5DBostYiTCgSbBZHmFAk2e4aYUKRYvIownwizeZRhAlFhs2jqLNui9g8ijChyGHQZJeJMKGoIaSnMr6aSUw9woSihpAhJTGhuCFEzpMxJhQL1nqMCcUOg6aXo5hQrFg/Y8wobpbVZLXFmFFseD8xozjirXeW1w0jsopizCjmGcWYUexAGLJzxphRMmP9TDCjxIEwZGUmmFEiWT8TzChxIIyk/Ewwo0TzfmJGSbP7IXM+wYySiPcTM0pi3npnF+RAGHI/kGBGScr22QQzSh0IQ87XKWaUNozIiksxo9SBMGQdpZhR2jAiqyPFjFLN0kwxo9Sw+ZnuGDW7erud3xaLX3e7e7s/P5xBPE8yv+e3rdWfMTxP7NL/zfPLdGKXrc2nnaibT9to7edLu/d335xN4n28VnPaKk658eCptXagACNFunPBrmxoFZ2XGFstcask5saS71i2KqJWBWt+dwLZjrFJ3g7yzsc+rnG0+0x8XBPtP1kHmVdZgbnWGgfprr53o7L5Q14h9O0TUzbOkhvtD8vaYSYBYBUzjHgNtNUAFCTcePgwFnAZDBXJLnoy9llrfKrss5cLiH80A9QA0Co9s4gLCPsIDoAiWn2Gy/0jj8oATQBRNOM19d4FByEDEeMU+BNqEBFQPdLH2eyzl72jRk2+f9MJaAOFJLlKQqMf948FtkoUgGS4tNsp6RclaHIRV2xgLMpWA2os4fJ1N3j/vBEYDCwn5uhgMpNAK4yPO354SBuMBiGLuWrYj97//gd8B6mTHM+d7eH5B2AdUI+53KX+TUKrYtZq4BT0Q66AXe07bMS5vxuebZ7usq8Fav4CNHLBkfPDq2KDhgIPBJfv3ae2QbmAuEvfzDSXeMzzQEAbuA/pW6TyE5KRPjzHnCSeiwLaQXFIH2zltRrve8RFDz9MD5QC7tLPlZrLfnpqg12PY9/5JxfAPjA/MLb7HyBAGrZKuG51+LEL1BxovClnnPrXE0AF6JOsgt6LLMBxoEBzri/XX1C8ATHBlWrnZyngMRgd+/k35XzvumtAsaUcaqI5KhBpzRnrPpIMhoPObLjcPLx8BsaBzFRcUTMvkAEtIEUVNx/3f3oEUQMKEt8NUm6KoCYHCe5fsQM3uK5hYfkmoXx9K7+60Pv1F5d5zS/c4EZAtqZc5qHXDUEUQd4pjqEdSyxpBMgeMTyUWs+ABqFZx/FqEO5puObQTMX2btE2QYA2LThafiTOcwHcFCyT7sPywGcQY8Pl++6ZETAIuBv55WfsZ5PYz2Gx/3viEynh5rD9axUg9HDXtJ+syBZgd9GbclMsy5UVvv388vJ/xAukq/NJAAA="; window.searchData = "data:application/octet-stream;base64,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";

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,2 +1,2 @@
<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>address_to_cid_v0 | bns</title><meta name="description" content="Documentation for bns"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">bns</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">bns</a></li><li><a href="address_to_cid_v0.html">address_to_cid_v0</a></li></ul><h1>Function address_to_cid_v0</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="address_to_cid_v0" class="tsd-anchor"></a><span class="tsd-kind-call-signature">address_<wbr/>to_<wbr/>cid_<wbr/>v0</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">address</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><a href="#address_to_cid_v0" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Banano address to IPFS CID v0</p> <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>address_to_cid_v0 | bns</title><meta name="description" content="Documentation for bns"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">bns</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">bns</a></li><li><a href="address_to_cid_v0.html">address_to_cid_v0</a></li></ul><h1>Function address_to_cid_v0</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="address_to_cid_v0" class="tsd-anchor"></a><span class="tsd-kind-call-signature">address_<wbr/>to_<wbr/>cid_<wbr/>v0</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">address</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><a href="#address_to_cid_v0" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Banano address to IPFS CID v0</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">address</span>: <span class="tsd-signature-symbol">`</span><span class="tsd-signature-type">ban_</span><span class="tsd-signature-symbol">${</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">`</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">`</span><span class="tsd-signature-type">nano_</span><span class="tsd-signature-symbol">${</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">`</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/stjet/bns/blob/a601972c5bc17d2d55d7021f259d966e1f9399ce/util.ts#L80">util.ts:80</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>bns</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">address</span>: <span class="tsd-signature-symbol">`</span><span class="tsd-signature-type">ban_</span><span class="tsd-signature-symbol">${</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">`</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">`</span><span class="tsd-signature-type">nano_</span><span class="tsd-signature-symbol">${</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">`</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/stjet/bns/blob/327a80c8c8cf356965f8f9d5d9286864d2ebbd2f/util.ts#L80">util.ts:80</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>bns</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,2 +1,2 @@
<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>cid_v0_to_address | bns</title><meta name="description" content="Documentation for bns"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">bns</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">bns</a></li><li><a href="cid_v0_to_address.html">cid_v0_to_address</a></li></ul><h1>Function cid_v0_to_address</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="cid_v0_to_address" class="tsd-anchor"></a><span class="tsd-kind-call-signature">cid_<wbr/>v0_<wbr/>to_<wbr/>address</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">cid_v0</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/banani.Address.html" class="tsd-signature-type tsd-kind-type-alias">Address</a><a href="#cid_v0_to_address" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>IPFS CID v0 to Banano address</p> <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>cid_v0_to_address | bns</title><meta name="description" content="Documentation for bns"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">bns</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">bns</a></li><li><a href="cid_v0_to_address.html">cid_v0_to_address</a></li></ul><h1>Function cid_v0_to_address</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="cid_v0_to_address" class="tsd-anchor"></a><span class="tsd-kind-call-signature">cid_<wbr/>v0_<wbr/>to_<wbr/>address</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">cid_v0</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/banani.Address.html" class="tsd-signature-type tsd-kind-type-alias">Address</a><a href="#cid_v0_to_address" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>IPFS CID v0 to Banano address</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">cid_v0</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/banani.Address.html" class="tsd-signature-type tsd-kind-type-alias">Address</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/stjet/bns/blob/a601972c5bc17d2d55d7021f259d966e1f9399ce/util.ts#L75">util.ts:75</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>bns</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">cid_v0</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/banani.Address.html" class="tsd-signature-type tsd-kind-type-alias">Address</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/stjet/bns/blob/327a80c8c8cf356965f8f9d5d9286864d2ebbd2f/util.ts#L75">util.ts:75</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>bns</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,10 @@
<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>bns</title><meta name="description" content="Documentation for bns"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">bns</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h2>bns</h2></div><div class="tsd-panel tsd-typography"><p>See the <a href="https://bns.prussia.dev">docs</a> or <a href="https://bns.prussia.dev/browser_test">demo</a></p> <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>bns</title><meta name="description" content="Documentation for bns"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">bns</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h2>bns</h2></div><div class="tsd-panel tsd-typography"><p>See the <a href="bns_protocol.md">protocol specification</a>, <a href="https://bns.prussia.dev">docs</a> or <a href="https://bns.prussia.dev/browser_test">demo</a></p>
<a id="md:installing" class="tsd-anchor"></a><h2><a href="#md:installing">Installing</a></h2><pre><code class="language-js"><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-0">i</span><span class="hl-1"> </span><span class="hl-0">banani</span><span class="hl-1">-</span><span class="hl-0">bns</span> <a id="md:installing" class="tsd-anchor"></a><h2><a href="#md:installing">Installing</a></h2><a id="md:npm" class="tsd-anchor"></a><h3><a href="#md:npm">NPM</a></h3><pre><code class="language-js"><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-0">i</span><span class="hl-1"> </span><span class="hl-0">banani</span><span class="hl-1">-</span><span class="hl-0">bns</span>
</code><button>Copy</button></pre> </code><button>Copy</button></pre>
</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#md:installing"><span>Installing</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html" class="current"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-1"></use></svg><span>bns</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base="."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> <a id="md:web" class="tsd-anchor"></a><h3><a href="#md:web">Web</a></h3><p>Add the<code>bns-browser.js</code> file in this browser to your site. Then, in your <code>&lt;head&gt;</code>, add:</p>
<pre><code class="language-html"><span class="hl-2">&lt;</span><span class="hl-3">script</span><span class="hl-4"> </span><span class="hl-5">src</span><span class="hl-4">=</span><span class="hl-6">&quot;/path/to/bns-browser.js&quot;</span><span class="hl-2">&gt;&lt;/</span><span class="hl-3">script</span><span class="hl-2">&gt;</span>
</code><button>Copy</button></pre>
<p>You can now access the library through <code>window.bns</code> in your scripts.</p>
<a id="md:example" class="tsd-anchor"></a><h2><a href="#md:example">Example</a></h2><a id="md:resolving" class="tsd-anchor"></a><h3><a href="#md:resolving">Resolving</a></h3><pre><code class="language-js"><span class="hl-7">import</span><span class="hl-1"> { </span><span class="hl-0">banani</span><span class="hl-1">, </span><span class="hl-0">Resolver</span><span class="hl-1"> } </span><span class="hl-7">from</span><span class="hl-1"> </span><span class="hl-8">&quot;banani-bns&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-9">const</span><span class="hl-1"> </span><span class="hl-10">rpc</span><span class="hl-1"> = </span><span class="hl-9">new</span><span class="hl-1"> </span><span class="hl-0">banani</span><span class="hl-1">.</span><span class="hl-11">RPC</span><span class="hl-1">(</span><span class="hl-8">&quot;https://kaliumapi.appditto.com/api&quot;</span><span class="hl-1">);</span><br/><span class="hl-9">const</span><span class="hl-1"> </span><span class="hl-10">tld_mapping</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-8">&quot;mictest&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-8">&quot;ban_1dzpfrgi8t4byzmdeidh57p14h5jwbursf1t3ztbmeqnqqdcbpgp9x8j3cw6&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-8">&quot;jtv&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-8">&quot;ban_3gipeswotbnyemcc1dejyhy5a1zfgj35kw356dommbx4rdochiteajcsay56&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-8">&quot;ban&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-8">&quot;ban_1fdo6b4bqm6pp1w55duuqw5ebz455975o4qcp8of85fjcdw9qhuzxsd3tjb9&quot;</span><span class="hl-1">,</span><br/><span class="hl-1">};</span><br/><br/><span class="hl-9">const</span><span class="hl-1"> </span><span class="hl-10">resolver</span><span class="hl-1"> = </span><span class="hl-9">new</span><span class="hl-1"> </span><span class="hl-11">Resolver</span><span class="hl-1">(</span><span class="hl-0">rpc</span><span class="hl-1">, </span><span class="hl-0">tld_mapping</span><span class="hl-1">);</span><br/><br/><span class="hl-0">console</span><span class="hl-1">.</span><span class="hl-11">log</span><span class="hl-1">(</span><span class="hl-7">await</span><span class="hl-1"> </span><span class="hl-0">resolver</span><span class="hl-1">.</span><span class="hl-11">resolve</span><span class="hl-1">(</span><span class="hl-8">&quot;nishina247&quot;</span><span class="hl-1">, </span><span class="hl-8">&quot;mictest&quot;</span><span class="hl-1">));</span>
</code><button>Copy</button></pre>
</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#md:installing"><span>Installing</span></a><ul><li><a href="#md:npm"><span>NPM</span></a></li><li><a href="#md:web"><span>Web</span></a></li></ul><a href="#md:example"><span>Example</span></a><ul><li><a href="#md:resolving"><span>Resolving</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html" class="current"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-1"></use></svg><span>bns</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base="."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,82 +0,0 @@
import * as bns from "../main.js";
import * as fs from "fs";
import * as crypto from "crypto";
(async () => {
console.log("cid v0 to address", bns.cid_v0_to_address("QmbzTMo42KADUbLwc43KR9Se6aV3N6wfKqFbSr2qN1gJqR") === "ban_3kpq7d4kp9hd45jf8jh6zjztcewwfqaxafcr3b45whrxhce1sfinai3pk6w3");
console.log("address to cidv0", bns.address_to_cid_v0("ban_3kpq7d4kp9hd45jf8jh6zjztcewwfqaxafcr3b45whrxhce1sfinai3pk6w3") === "QmbzTMo42KADUbLwc43KR9Se6aV3N6wfKqFbSr2qN1gJqR");
const test_seed = fs.readFileSync("./.secret", "utf-8").trim();
const rpc = new bns.banani.RPC("https://kaliumapi.appditto.com/api"); //for sending cause it does work
//let rpc2 = new bns.banani.RPC("https://api.banano.trade/proxy", true); //for resolver cause it supports raw account history
const rpc2 = rpc;
let tld_wallet = new bns.banani.Wallet(rpc, test_seed);
console.log(await new bns.Resolver(rpc2, { "test": tld_wallet.address }).resolve("chicken", "test")); //freeze test
console.log(await new bns.Resolver(rpc2, { "test": tld_wallet.address }).resolve_backwards_ish("ban_1119d44eg3fey3mxpk8mshn7gf5dfzsuiaz1ypoh5nqy8bxbao54zzc5rnka", "test"));
let tld = new bns.TLDAccountManager(rpc, tld_wallet);
await tld.receive();
const rand_wallet = bns.banani.Wallet.gen_random_wallet(rpc);
const rand_name = `rc-test${String(Math.random()).replaceAll(".", "")}`;
const issue_hash = await tld.issue_domain_name(rand_name, rand_wallet.address);
const rand_dam = new bns.DomainAccountManager(rpc, rand_wallet);
await rand_dam.receive_domain(issue_hash);
await rand_dam.declare_domain_resolve_to("ban_3346kkobb11qqpo17imgiybmwrgibr7yi34mwn5j6uywyke8f7fnfp94uyps");
await rand_dam.declare_domain_metadata("6".repeat(64));
await rand_dam.declare_domain_resolve_to("ban_1burnbabyburndiscoinferno111111111111111111111111111aj49sw3w");
const rand_wallet2 = bns.banani.Wallet.gen_random_wallet(rpc);
const transfer_hash = await rand_dam.transfer_domain(rand_name, rand_wallet2.address);
const rand_dam2 = new bns.DomainAccountManager(rpc, rand_wallet2);
await rand_dam2.receive_domain(transfer_hash);
await rand_dam2.declare_domain_metadata("2".repeat(64));
/*
//freeze test
await rand_dam2.freeze();
const rand_wallet3 = bns.banani.Wallet.gen_random_wallet(rpc);
console.log(rand_wallet3.seed);
const transfer_hash2 = await rand_dam2.transfer_domain(rand_name, rand_wallet3.address);
const rand_dam3 = new bns.DomainAccountManager(rpc, rand_wallet3);
await rand_dam3.receive_domain(transfer_hash2);
await rand_dam3.declare_domain_metadata("4".repeat(64));
await rand_dam3.declare_domain_resolve_to("ban_3fzpw7pb9xt64qhwi47oa47x9zj713fkshntdk5y7khmn54n18szb7ymybdt");
*/
//await rand_dam2.declare_domain_resolve_to("ban_1o7ija3mdbmpzt8qfnck583tn99fiupgbyzxtbk5h4g6j57a7rawge6yzxqp");
const resolver = new bns.Resolver(rpc2, { "test": tld_wallet.address });
console.log(`${rand_name}.test`, await resolver.resolve(rand_name, "test"));
console.log("tld issued", await (new bns.TLDAccount(rpc2, tld_wallet.address)).get_all_issued())
//let d_wallet = new bns.banani.Wallet(rpc, test_seed, 1);
//
/**/
})();

View File

@@ -1,6 +1,6 @@
{ {
"name": "banani-bns", "name": "banani-bns",
"version": "0.0.8", "version": "0.0.9",
"description": "JS/TS library for the Banano cryptocurrency's currently unofficial Banano Name System (BNS)", "description": "JS/TS library for the Banano cryptocurrency's currently unofficial Banano Name System (BNS)",
"main": "main.js", "main": "main.js",
"scripts": { "scripts": {

View File

@@ -109,25 +109,33 @@ export class TLDAccount extends Account {
export class DomainAccount extends Account { export class DomainAccount extends Account {
domain?: Domain; domain?: Domain;
rpc_calls: number;
max_rpc_calls?: number;
constructor(rpc: RPC, address: Address, domain?: Domain) { constructor(rpc: RPC, address: Address, domain?: Domain, max_rpc_calls?: number) {
super(rpc, address); super(rpc, address);
this.domain = domain; this.domain = domain;
this.max_rpc_calls = max_rpc_calls;
this.rpc_calls = 0;
} }
async crawl(crawl_size = 500): Promise<Domain> { async crawl(crawl_size = 500): Promise<Domain> {
let open_hash, frontier_hash; let open_hash, frontier_hash;
try { try {
[open_hash, frontier_hash] = await this.get_open_and_frontier(); [open_hash, frontier_hash] = await this.get_open_and_frontier();
this.rpc_calls += 1;
} catch { } catch {
if (LOG) { if (LOG) {
console.log("Not yet received"); console.log("Not yet received");
} }
return this.domain; return this.domain;
} }
if (this.rpc_calls === this.max_rpc_calls) throw new Error("Max RPC calls reached");
let head_hash = open_hash; let head_hash = open_hash;
while (true) { while (true) {
const { history } = await this.get_history_from_open(head_hash, crawl_size) as AccountHistoryRawRPC; const { history } = await this.get_history_from_open(head_hash, crawl_size) as AccountHistoryRawRPC;
this.rpc_calls += 1;
if (this.rpc_calls === this.max_rpc_calls) throw new Error("Max RPC calls reached");
for (const block of history) { for (const block of history) {
const amount = BigInt(block.amount ?? 0); //amount is 0 if change rep only, apparently const amount = BigInt(block.amount ?? 0); //amount is 0 if change rep only, apparently
if (block.height === "1") { if (block.height === "1") {
@@ -188,10 +196,12 @@ export class DomainAccount extends Account {
export class Resolver { export class Resolver {
readonly rpc: RPC; readonly rpc: RPC;
tld_mapping: Record<string, Address>; tld_mapping: Record<string, Address>;
max_rpc_calls_after_tld?: number;
constructor(rpc: RPC, tld_mapping: Record<string, Address>) { constructor(rpc: RPC, tld_mapping: Record<string, Address>, max_rpc_calls_after_tld?: number) {
this.rpc = rpc; this.rpc = rpc;
this.tld_mapping = tld_mapping; this.tld_mapping = tld_mapping;
this.max_rpc_calls_after_tld = max_rpc_calls_after_tld;
} }
async resolve(domain_name: string, tld: string, crawl_size = 500): Promise<Domain | undefined> { async resolve(domain_name: string, tld: string, crawl_size = 500): Promise<Domain | undefined> {
@@ -200,11 +210,13 @@ export class Resolver {
const tld_account = new TLDAccount(this.rpc, this.tld_mapping[tld]); const tld_account = new TLDAccount(this.rpc, this.tld_mapping[tld]);
let domain = await tld_account.get_specific(domain_name, crawl_size); let domain = await tld_account.get_specific(domain_name, crawl_size);
if (!domain) return domain; if (!domain) return domain;
let max_rpc_calls_after_tld = this.max_rpc_calls_after_tld;
while (true) { while (true) {
const current_domain_account = (domain.history[domain.history.length - 1] as DomainTransfer).to; const current_domain_account = (domain.history[domain.history.length - 1] as DomainTransfer).to;
const domain_account = new DomainAccount(this.rpc, current_domain_account, domain); const domain_account = new DomainAccount(this.rpc, current_domain_account, domain, max_rpc_calls_after_tld);
const old_l = domain.history.length; const old_l = domain.history.length;
domain = await domain_account.crawl(crawl_size); domain = await domain_account.crawl(crawl_size);
max_rpc_calls_after_tld -= domain_account.rpc_calls;
if (domain.history[domain.history.length - 1].type !== "transfer" || domain.burned || old_l === domain.history.length) break; //if length unchanged, means transfer unreceived if (domain.history[domain.history.length - 1].type !== "transfer" || domain.burned || old_l === domain.history.length) break; //if length unchanged, means transfer unreceived
} }
return domain; return domain;