HTML preprocessors can make writing HTML more powerful or convenient. For instance, Markdown is designed to be easier to write and read for text documents and you could write a loop in Pug.
In CodePen, whatever you write in the HTML editor is what goes within the <body>
tags in a basic HTML5 template. So you don't have access to higher-up elements like the <html>
tag. If you want to add classes there that can affect the whole document, this is the place to do it.
In CodePen, whatever you write in the HTML editor is what goes within the <body>
tags in a basic HTML5 template. If you need things in the <head>
of the document, put that code here.
The resource you are linking to is using the 'http' protocol, which may not work when the browser is using https.
CSS preprocessors help make authoring CSS easier. All of them offer things like variables and mixins to provide convenient abstractions.
It's a common practice to apply CSS to a page that styles elements such that they are consistent across all browsers. We offer two of the most popular choices: normalize.css and a reset. Or, choose Neither and nothing will be applied.
To get the best cross-browser support, it is a common practice to apply vendor prefixes to CSS properties and values that require them to work. For instance -webkit-
or -moz-
.
We offer two popular choices: Autoprefixer (which processes your CSS server-side) and -prefix-free (which applies prefixes via a script, client-side).
Any URL's added here will be added as <link>
s in order, and before the CSS in the editor. You can use the CSS from another Pen by using it's URL and the proper URL extention.
You can apply CSS to your Pen from any stylesheet on the web. Just put a URL to it here and we'll apply it, in the order you have them, before the CSS in the Pen itself.
You can also link to another Pen here (use the .css
URL Extension) and we'll pull the CSS from that Pen and include it. If it's using a matching preprocessor, use the appropriate URL Extension and we'll combine the code before preprocessing, so you can use the linked Pen as a true dependency.
JavaScript preprocessors can help make authoring JavaScript easier and more convenient.
Babel includes JSX processing.
Any URL's added here will be added as <script>
s in order, and run before the JavaScript in the editor. You can use the URL of any other Pen and it will include the JavaScript from that Pen.
You can apply a script from anywhere on the web to your Pen. Just put a URL to it here and we'll add it, in the order you have them, before the JavaScript in the Pen itself.
If the script you link to has the file extension of a preprocessor, we'll attempt to process it before applying.
You can also link to another Pen here, and we'll pull the JavaScript from that Pen and include it. If it's using a matching preprocessor, we'll combine the code before preprocessing, so you can use the linked Pen as a true dependency.
Search for and use JavaScript packages from npm here. By selecting a package, an import
statement will be added to the top of the JavaScript editor for this package.
Using packages here is powered by Skypack, which makes packages from npm not only available on a CDN, but prepares them for native JavaScript ES6 import
usage.
All packages are different, so refer to their docs for how they work.
If you're using React / ReactDOM, make sure to turn on Babel for the JSX processing.
If active, Pens will autosave every 30 seconds after being saved once.
If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.
If enabled, your code will be formatted when you actively save your Pen. Note: your code becomes un-folded during formatting.
Visit your global Editor Settings.
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400&display=swap" rel="stylesheet">
<link rel="stylesheet" href="./style.css">
</head>
<nav id="navbar" , "navbar_header">
<header>
<h3>Waya Labs Docs</h3>
</header>
<li><a class="nav-link" href="#Introduction">Introduction</a>
<li><a class="nav-link" href="#Principles">Principles</a>
<li><a class="nav-link" href="#EVM_Compatible_Development">EVM Compatible Development</a>
<li><a class="nav-link" href="#The_Avalanche_Network">The Avalanche Network</a>
<li><a class="nav-link" href="#Avalanche_Network_RPC">Avalanche Network RPC</a>
<li><a class="nav-link" href="#Add_Avalanche_Network_Programmatically">Add Avalanche Network Programmatically</a>
<li><a class="nav-link" href="#Data_Structure">Data Structure</a>
<li>
</nav>
<body>
<main id="main-doc">
<section id="Introduction" class="main-section">
<header>
<h3>Introduction</h3>
</header>
<article>
<p>
Waya Labs is a research and development Hub focus on blockchain innovation
to drive mass adoption by building a Digital Sovereign Ecosystem (DSE) by
integrating distributed web3 protocols to create a censorship resistance
ecosystem for our community.
</p>
<p>
Researching and testing creative and successful smart contract use cases are
key to identify what works and what could be improved. allowing new solutions
and utilities to emerge in a constant testing and development of new ways to
participate in the blockchain revolution.
</p>
<ul>
<li>
Our distributed applications will be designed with multiple insentive
based protocols such as work to earn for team members, learn to earn to attract
new users, and participate to earn to reward our community members and NFT holders
with access to special incubator presale allocations and a weekly lottery for
hodlers.
</li>
<li>
To ensure digital sovereignty it is necessary for each element of Waya Labs
ecosystem to operate as a distributed web3 protocol to minimize the risks
of a single point of failure. the initial versions might hace some centralized
web3 protocols temporarily, each new version will integrate decentralized interoperability
to replace previous centralized funtions.
</li>
</ul>
</article>
</section>
<section id="Principles" class="main-section">
<header>
<h3>Principles</h3>
</header>
<article>
<p>Research and development will focus on the following principles:</p>
<ul>
<li>
<b>Digital Sovereign Ecosystems:</b> Build Waya Labs ecosystem on distributed networks, protocols and storage to ensure digital sovereignty for our participating community.
</li>
<li>
<b>Participatory Value Creation:</b> Waya Labs Team members and community will earn by participating in various forms to earn rewards, like liquidity staking, community building and work to earn initiative.
</li>
<li>
<b>Universal Basic Equity:</b> Community participation and deflationary tokenomics linked to automated NFT protocols will ensure value creation and build long lasting equity upside.
</li>
</ul>
</article>
</section>
<section id="EVM_Compatible_Development" class="main-section">
<header>
<h3>EVM Compatible Development</h3>
</header>
<article>
<p>
Ethereum has proven to be the leading blockchain platform to develop
smart contracts, althought transaction fees remain high it is without
a doubt the leader, altough some emerging chains are stablishing as
some sustainable alternatives considering energy consumption, security
and scalability abilities.
</p>
<p>
Research of scalability problems in emerging Layer.1 protocols were
key to identifying the blockchain we’ve chosen to build on.
</p>
</article>
</section>
<section id="The_Avalanche_Network" class="main-section">
<header>
<h3>The Avalanche Network</h3>
</header>
<article>
<p>
<b>Scalability:</b> designed to be massively scalable. Tri-chain structure
with the core consensus engine is able to support a global network
of potentially hundreds of millions of internet-connected, low latencies
and very high transactions per second.
</p>
<p>
<b>Security:</b> designed with robust high security. Avalanche provides a very
strong guarantee of safety when the attacker is below a certain threshold,
which can be parametrized by the system designer; it provides graceful
degradation when the attacker exceeds this threshold. It can uphold safety
guarantees even when the attacker exceeds 80%. It is the first permission-less
system to exceeds 51% attack safety threshold using the*SNOW consensus.
</p>
<p>
<b>Decentralization:</b> commitment to multiple client implementations and no
centralized control of any kind. The ecosystem is designed to avoid
divisions between classes of users with different interests. Most importantly
there is no distinction between miners, developers, and users, allowing
private or public subnets to be created in a compatible environment with any
programming language, each subnet then becomes a validator, and can also host
it's own blockchain design and decentralized network.
</p>
<p>
<b>Governance:</b> Avalanche is an inclusive platform, which enables anyone to
connect to its network and participate in validation and governance. Any
token holder can have a vote in selecting key financial parameters and in
choosing how the system evolves.
</p>
<p>
<b>Interoperability:</b> designed to be a universal and flexible infrastructure
for a multitude of blockchains/assets, where the base $AVAX is used for security
and as a unit of account for exchange. The Avalanche C-chain is a EVM dedicated
for Smart contracts and dApp environments.
</p>
</article>
</section>
<section id="Avalanche_Network_RPC" class="main-section">
<header>
<h3>Avalanche Network RPC</h3>
</header>
<article>
You can access C-Chain through MetaMask, by defining a custom network.
Go to MetaMask, log in, click the network dropdown, and select 'Custom RPC'.
Data for Avalanche is as follows.
<p>Avalanche Mainnet Settings:</p>
<code>Network Name: Avalanche Mainnet C-Chain
New RPC URL: https://api.avax.network/ext/bc/C/rpc
ChainID: 43114
Symbol: AVAX
Explorer: https://snowtrace.io/
</code>
<p>Avalanche Testnet Settings:</p>
<code>Network Name: Avalanche FUJI C-Chain
New RPC URL: https://api.avax-test.network/ext/bc/C/rpc
ChainID: 43113
Symbol: AVAX
Explorer: https://testnet.snowtrace.io/
</code>
</article>
</section>
<section id="Add_Avalanche_Network_Programmatically" class="main-section">
<header>
<h3>Add Avalanche Network Programmatically</h3>
</header>
<article>
EIP-3035 is an Ethereum Improvement Proposal that defines an RPC method
for adding Ethereum-compatible chains to wallet applications.
<p>To add the Avalanche network to Metamask, we need to prepare t
he data structures that will be contain all the necessary data.
</p>
</article>
</section>
<section id="Data_Structure" class="main-section">
<header>
<h3>Data Structure</h3>
</header>
<article>
<p>
Main network data:
</P>
<code>export const AVALANCHE_MAINNET_PARAMS = {
chainId: '0xA86A',
chainName: 'Avalanche Mainnet C-Chain',
nativeCurrency: {
name: 'Avalanche',
symbol: 'AVAX',
decimals: 18
},
rpcUrls: ['https://api.avax.network/ext/bc/C/rpc'],
blockExplorerUrls: ['https://snowtrace.io/']
}
</code>
<p> Test network data: </P>
<code>export const AVALANCHE_TESTNET_PARAMS = {
chainId: '0xA869',
chainName: 'Avalanche Testnet C-Chain',
nativeCurrency: {
name: 'Avalanche',
symbol: 'AVAX',
decimals: 18
},
rpcUrls: ['https://api.avax-test.network/ext/bc/C/rpc'],
blockExplorerUrls: ['https://testnet.snowtrace.io/']
}
</code>
<p>
To add the network to MetaMask, we need to call the wallet_addEthereumChain method,
exposed by the web3 provider.</p>
<code> function addAvalancheNetwork() {
injected.getProvider().then(provider => {
provider
.request({
method: 'wallet_addEthereumChain',
params: [AVALANCHE_MAINNET_PARAMS]
})
.catch((error: any) => {
console.log(error)
})
})
}
</code>
<p>Where injected is initialized as a web3-react/injected-connector used to
interface with MetaMask APIs. Usage for other popular web frameworks is similar.
<code>To add the test network replace:
AVALANCHE_MAINNET_PARAMS with AVALANCHE_TESTNET_PARAMS
</code>
Typical usage pattern would be to expose a button calling that method if you get
Wrong Network or Error connecting errors when attempting to establish a connection
to MetaMask.
</p>
</article>
</section>
</main>
</body>
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap");
html,
body {
width: 100%;
height: 100%;
color: #1f1f1fd2;
background-color: #1f1f1fd2;
font-family: "Roboto", sans-serif;
line-height: 1.5;
overflow-x: hidden;
}
header {
color: #da5700;
font-size: 30px;
margin: 10px;
font-size: 1.8em;
font-weight: thin;
}
#navbar {
position: fixed;
background-color: #1f1f1fd2;
min-width: 290px;
top: 0;
left: 0;
width: 300px;
height: 100%;
margin-bottom: 10px;
}
#navbar header {
color: #da5700;
font-size: 20px;
font-size: 1.6em;
}
#navbar ul {
overflow-y: auto;
width: 100%;
height: 200px;
border: 1px;
}
#navbar ul li {
list-style: none;
position: relative;
left: -20px;
padding: 15px;
border-bottom: dotted 1px;
}
#navbar li {
color: #da5700;
border-top: 1px solid;
list-style: none;
position: relative;
width: 100%;
}
#navbar a {
display: block;
padding: 4px;
color: #fff;
text-decoration: none;
cursor: pointer;
}
#main-doc header {
position: center;
font-size: 30px;
margin: 10px;
padding: 0px;
font-size: 1.8em;
font-weight: thin;
}
#main-doc {
position: relative;
margin-left: 10px;
padding: 20px;
margin-bottom: 110px;
}
section article {
color: #fcf7fb;
margin: 15px;
font-size: 0.96em;
}
section li {
margin: 15px 0px 0px 20px;
}
code {
color: #b0bd02;
display: block;
text-align: left;
white-space: pre-line;
position: relative;
word-break: normal;
word-wrap: normal;
line-height: 2;
background-color: #000000;
padding: 15px;
margin: 10px;
border-radius: 10px;
}
@media only screen and (max-width: 800px) {
/* For mobile phones: */
.text {
font-size: 16px;
}
#navbar ul {
border: 1px solid;
height: 207px;
}
code {
overflow-x: scroll;
}
#navbar {
background-color: #1f1f1fd2;
position: relative;
top: 0;
padding: 0;
margin: 0;
}
#main-doc {
position: relative;
margin-left: 0px;
padding: 20px;
padding-left: 50px;
}
}
@media only screen and (min-width: 1200px) {
/* for laptop desktop */
#main-doc {
position: relative;
margin-left: 10px;
padding: 10px;
}
#navbar {
position: fixed;
}
code {
margin-left: -20px;
width: 100%;
padding: 15px;
padding-left: 10px;
padding-right: 45px;
min-width: 233px;
}
}
// hacked by @wayaman
// eslint-disable-next-line no-unused-vars
const projectName = "technical-docs-page";
Also see: Tab Triggers